基于AVR的直流电机高精度数字控制系统
程序运行后,实际测得角度控制的稳态误差在±0.005 7 rad,速度控制的动态误差在±0.013 1 rad/s,具有较高的精度和稳定性。在实际使用中,可以采用先进算法编制控制程序,进一步提高系统的控制性能。 本文提出一种直流电机高精度数字控制系统的实现方法,设计了PC机上的控制界面。该系统硬件结构简单可靠、性价比高,系统可以达到很高的控制精度,并进行了软件验证,采用先进算法后可以进一步提高控制性能。
作为比较,将相同的控制算法在PC上实现,通过全数字直流伺服驱动器上驱动电机,测得角度控制的稳态误差是±0.004 rad,速度控制的动态误差是±0.008 rad/s。可见本系统的控制精度与伺服驱动器的控制精度接近,而成本低于后者,具有很大优势。
2.2 PC机控制界面的VC程序设计
PC机控制界面将目标转动角度和速度发送给单片机,同时接收单片机发来的实时角度和速度并以曲线形式显示。控制界面基于对话框的结构,使用VC自带的MSComm控件和单片机通信[4]。该控件重要属性设置如下:
①本文使用PC机的串口1通信,故串口编号CommPort设置为1;
②设单片机发来的一个有效角度或速度数据的字节数为n,则从输入缓冲区一次读取的字节数InputLen属性设置为n;
③输入缓冲区长度InBufferSize设置为n的整数倍,防止读取数据出错;
④产生接收事件的阈值RThreadshold设置为n,表示缓冲区中有一个及以上有效数据时就接收;
⑤输出缓冲区长度OutBufferSize设置为n的整数倍;
⑥产生发送事件的阈值RThreadshold设置为n。
以上属性设置完毕后打开串口,在事件驱动函数中接收数据,依次将其转换为绘图设备区域中Y轴上的像素值,同时顺序连接各点绘制曲线并更新,实时表示电机转动角度和速度的变化。如图7所示,是电机速度控制界面的截图,横轴表示时间,纵轴表示转速,曲线的跳跃是电机速度方向的改变。
参考文献
[1] ATMEL. ATmega128 Data Sheet.Rev.2467R-AVR-06/08.
[2] 史晓娟,李海芹.基于CPLD的四倍频鉴相计数电路在运动控制器中的应用[J].制造技术与机床,2008(6):85-87.
[3] INTERSIL. HIP4080A Data Sheet. www.int-ersil.com.
[4] 张筠莉,刘书智.Visual C++实践与提高.串口通信与工程应用篇[M].北京:中国铁道出版社,2006:21-45.
单片机 51单片机 MCU 单片机视频教程 单片机开发 ARM单片机 AVR单片机 PIC单片机 Atmel stm32 单片机学习 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)