想要一个电动机变速控制器的原理方框图和VHDL语言描述,要能够在DDS里实现控制

如题所述

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