作品简介:
本设计采用AT89C52单片机作为整个系统控制的核心。采用PID算法中的增量公式PI该方法完成了的精确控制,采用红外检测模块收集电机转速,调整反馈信号,作为电机闭环控制的依据。人机界面ZLG7290实现按键控制和电机转速的显示。
?? 本设计的主要特点是:
● ZLG7290 I2C接口显示电路。ZLG7290带键盘抖动,防止按键盘命令出错。I2C提供键盘中断信号,方便处理器接口。
● 信号调整电路可使反馈信号成为标准方波,便于速度调整。
● 大多数程序都是用非阻塞式编程实现的main使用函数SuperLoop,以各种中断作为控制手段,使函数能够快速反应和执行,提高系统的实时响应速度。
● 电路增加了PID 当负载发生变化时,闭环控制系统会自动调整PWM 端部占空比保持电机速度稳定。
一、方案比较
1.控制器的选择:
方案一:模拟PID 通过硬件(电子元件、气动、液压元件)实现控制器的功能。
方案二:数字PID控制器,并将其移植到计算机控制系统中,用软件实现原始硬件实现的功能PID控制器具有灵活性强的优点,可根据试验和经验在线调整参数,更好地控制性能。
我们最终采用了方案2,因为方案2可以获得更好的性能,缺点是电机低速时很难控制精度。
2.测速传感器方案的选择:
方案一: 增量旋转编码器:通过内部两个光敏接收管转换角度码盘的顺序和相位关系,增加和减少角度码盘的角度位移。优点是:方波可以直接、准确地产生,非常准确,但价格昂贵。
方案二: 一般光传感器,以通过在电机轴上放置黑白码盘来实现测量电路。缺点是测试精度低,黑白交界处产生的波形不规则,使测量误差大。
方案三:MC-C2513 脉冲表专用模块采用直射双光速光电传感器采样。该型号脉冲采样板主要具有以下功能:能有效消除抖动误差。在采集脉冲时,由于转盘抖动和上下电,脉冲数不会计算。输出脉冲宽度可供选择,可自动确定转盘的旋转方向,分别输出正转脉冲信号和反转脉冲信号。而且价格相对便宜。
3.单片机的选择:
方案1:51系列单片机,即最常用的AT89C52.优点是内部结构简单,价格便宜。缺点是:没有PWM 使用定时器配合软件输出功能。
方案二:AVR系列的单片机,AVR单片机的定时和计数器功能大大增强,有三个PWM输出口。AVR单片机内部结构有硬件通道,可直接产生方波信号。
我们最终采用了方案一,因为AT89C52是我们最熟悉的设备,可以很好地控制和调试。
4.转速显示电路:
方案一:ZLG7290 I2C总线传输的优点是I2C串行接口提供键盘中断信号,方便与处理器的接口。通过读取寄存器的值,增加了连击记数器,可以区分单击键和连击键。 增加功能寄存器,同时按下2个以上按钮,扩展按钮数量。
方案2:8279电路 。缺点是无I2C总线传输要求外围设备多,控制麻烦,性价比低。
我们最终采用了方案一,因为ZLG7290 I2C占用I/O口少,控制方便。
5.电机驱动调速模块:
方案1:使用电阻网络或数字电位器调整电机的分压,以达到调速的目的。然而,电阻网络只能实现分级调速,而数字电阻的组件更昂贵。更重要的问题是,一般电机的电阻很小,但电流很大。分压不仅降低了效率,而且很难实现。
方案2:继电器用于控制电机的开关,并通过开关切换调整电机的转速。该方案的优点是电路相对简单,缺点是继电器响应时间慢,机械结构易损坏,可靠性差。
方案三:H型由达林顿管组成PWM电路。用单片机控制达林顿管,使其在可调开关状态下工作,准确调整电机转速。由于该电路在管道饱和截止模式下工作,效率非常高,H型电路保证了转速和方向的简单控制,具有很强的稳定性。它被广泛使用PWM 调速技术,承载能力大。
方案四:使用专用电机驱动芯片L298N,控制方便。
我们最终使用了方案4,其优点是外围元件少,电路简单,控制方便。
6 软件设计理念的比较:
方案1:当需要延迟时,使用阻塞式编程理念for循环,需要等待状态是while这将导致循环cpu大量浪费时间,甚至系统没有响应。
方案二:采用非阻塞式编程理念。跳过需要判断的位置,实现系统的实时响应。
我们采用方案2,可以减少响应时间,提高代码效率。
7 数字PID 算法比较:
方案1:位置算法。其输出控制对应于系统的输出。因此,每个输出都与过去的状态有关,计算量大
方案二:增量算法。与位置算法相比,只输出控制量的增量有其优点:1 在增量算法中,计算误差对控制量很小。 可实现无冲击切换。 可靠性高。
由于增量式的计算量远小于位置式,因此我们最终采用了方案2。
二、设计与论证
经过仔细的讨论和比较,我们决定了系统各主模块的最终方案如下:
(1)电机驱动调速模块:专用电机驱动芯片L298N
(2)控制器的选择是:AT89C52。
(3)测速传感器为:红外光电传感器。
(4)选择键盘和速度显示电路模块ZLG7290 I2C 电路。
1.软件设计系统
① 使用了这个程序PID增量控制模式PI控制方法能有效稳定电机.。
② 发挥部分1已经实现
③ 模糊算法用于实现发挥部分3,即线性变化扭矩(即恒加扭矩(类似于恒加速度的概念)
加速物体,测试达到目的速度所需的时间,以确定物体的惯性扭矩。
在不同的恒定负载下,通过查表确定PID在不进入电机系统的情况下,控制系数以实现更快的瞬态响应时间。
④ 本程序采用C语言编程,程序简单易懂,大部分程序采用非阻塞编程实现。main使用函数SuperLoop,快速响应和执行函数;采用各种中断作为控制手段,提高系统的实时响应速度;采用独特的文件级结构,各级结构相对隔离,有利于在编程过程中保持清晰的思维;使用标准命名方法,函数从大写开始,数据从小写开始。
3.设计和实现其他功能:
⑴ 可同时显示电机转速的理论值和实际值,便于比较和控制精度。
⑵ 电机的转速方向可由一个LED 转向显示可以使表示更加清晰。
⑶ 在发挥部分(1)中实现曲线时LED 上,可以显示其转速,可以详细显示转速与时间的关系。
⑷ 实现发挥部分(3)时,速度为120 转/分突变为400 转/分,所需时间明显间 秒内。完成题目要求。
⑸ 电机转速的分辨率达到1 转/分。
⑹ 发挥部分(1)(3)可以通过按钮实现。LED 显示其题号。
三、理论分析与计算(略)
四、电路图及相关设计文件(略)
五、实际测试
⒈ 测试设备: 20M数字示波器,频率计
2. 测试结果分析:
(1) 通过PID 电机转速控制精度几乎达到理想状态,但当电机转速小于70时 转/分,其控制精度下降,不能满足主题要求,主要原因是:由于其测量是动态测量,电机不断调整转速,电机有明显的抖动。
(2)电机转速在恒定负载下为120 转/分突变为400 转/分的稳态响应时间明显小于0.5秒.
(3)电路很好地完成了发挥部分(1) 与电机正反转。
(4)我们用LED逆时针转表示电机的正反转;当我们实现发挥部分时,我们在LED相应的题号显示在上面;当电机过载时,我们在LED上显示错误E以上是我们的特色创新。
⑸ 多次测量取平均值后,电机的控制精度达到了发挥部分≤1%。
六、设计总结
⑴ 本来打算用MC-C2513 当信号高于10时,脉冲表专用模块测量电机转速。hz 过滤掉编码器的处理芯片, 这与电路的使用不一致。因此,我们找到了拆卸机的红外发射和接收设备,制作了一个传感器,连接电机和编码盘,并通过信号调整电路。
⑵ 通过这个实验,我们学会并很好地应用了非阻塞编程的想法,大大提高了代码的执行效率。我也学会了PID 控制算法使电机控制更加准确、键盘显示模块、电机驱动电路优化等。该电路还可以做一些更好的改进,液晶显示器可以做一个更好的人机界面的菜单。
⑶ 我们在调PID系数的时候,电机在低速(≤在70转/分的情况下,传感器反馈的波形极不稳定,因此,PID系数很难同时满足高速和低速。因此,我们最终使用手动模拟步进来控制低速直流电机的速度。
⑷ 本设计的缺点是电机在低速时难以控制精度。但是,如果采用多组PID系数就可以达到要求,也就是说,在高速用一组PID低速使用另一组系数 PID系数。也可采用手动模拟成步进电机控制低速时的转速。这种模拟方法是固定的PWM当单片机检测到预设脉冲数时,让电机通过改变延迟时间长度来控制转速。
◆◆
评论读取中...
登录后请发表评论!
◆◆
修改失败后请尝试