采用Atmega128单片机和电机控制芯片实现直流电机高精度控制

工业控制

1090人已加入

描述

本控制系统以永磁式直流力矩电机为对象,其额定工作电压为27 V,堵转电流为5 A,最大转速为900 r/min。

控制系统硬件平台采用ATMEL公司的Atmega128单片机和ALTERA公司的EPM7128系列CPLD芯片以及直流电机控制芯片HIP4080。在硬件平台上运行电机转动角度和速度的控制程序,实现高精度控制,并在PC机界面上观察电机状态。该系统具有精度高和通用性良好等特点,在性价比方面有很大优势,可以应用于教学实验。

1 控制系统的硬件设计

1.1 系统硬件结构

本系统主要由微控制器外围电路、旋转编码器信号检测电路和电机驱动电路构成。系统的硬件结构如图1所示。电机的控制逻辑由Atmega128实现。单片机采集CPLD对旋转编码器脉冲的计数值,得到电机转动角度进而计算速度,将来自PC机的目标转动角度和目标速度代入控制算法中运算,根据运算结果向驱动电路发送PWM和方向信号,驱动电机向期望的方向转动或者运行在期望的速度上。

电机

1.2 微控制器外围电路的硬件设计

主要由Atmega128、下载电路和串口通信电路等组成。单片机实现控制功能,并通过串口接收PC机的指令并将电机的转动角度和速度发送给PC机实时显示。

Atmega128单片机是一种高性能、低功耗的8位微处理器,指令大多数可以在一个时钟周期内完成,执行速度快,其接口丰富,性价比高。

1.3 旋转编码器信号检测电路的硬件设计

该电路的功能是采集编码器信号,计算电机的角度和速度并传输给单片机。该电路设计采用三个思路:(1)采用分立元器件及一些门电路,但使用的元件较多,影响电路的稳定性; (2)脉冲信号直接连接到单片机的计数器输入端,由软件进行鉴向和计数,但加重了单片机负担,还可能会出现漏计或误计现象;(3)采用编码器专用芯片,如奎克半导体的编码器四倍频和计数芯片,但专用芯片价格颇高,不经济。

因此,本文选用CPLD芯片EPM7128SLC84,用—片芯片实现增量式编码器信号四倍频和双向计数,简化硬件电路设计,提高系统的精度和可靠性。该芯片具有128个逻辑宏单元,完全满足需要;它具有ISP在系统可编程功能,可以对硬件进行重新配置,方便系统后期扩展。

如图2所示,光耦将旋转编码器A、B两相脉冲信号与CPLD的信号隔离,防止EPM7128和旋转编码器的工作电压不匹配。EPM7128对A、B两相脉冲信号进行四倍频和双向可逆计数的硬件描述程序。图中Lock是单片机发送给EPM7128的计数值锁存信号,Chose0和Chose1是位选信号,控制EPM7128将锁存的计数值的高8位和低8位分时发送到数据线Data0~Data7上。若编码器输出脉冲数为N,则系统的精度可以达到π/2N弧度。

电机

1.4 电机的驱动电路硬件设计

用单片机的PWM输出对电机控制是实现电机数字控制的常用手段。目前常用的电机控制专用芯片是NS公司的LMD18200,其工作电压55 V,连续输出电流3 A,可接收300 kHz的PWM脉冲,但是本系统选用的直流力矩电机经常工作在堵转状态,LMD18200不能提供持续的5 A电流,若将LMD18200并联来增大电流驱动能力,又有烧坏芯片的风险,所以本文选择由一片HIP4080、4片MOS管IRF540构成的电机驱动电路,如图3所示。

电机

HIP4080是一款专门用于控制H桥的高频全桥驱动芯片,正常工作电压12 V,可接收高达1 MHz的PWM信号[3]。该芯片可以控制H桥工作在单极性驱动方式,可以使H桥输出电流波动比较小,功率损耗更低。H桥由4片MOS管IRF540搭成,IRF540最大耐压100 V,最大驱动电流是28 A,胜任直流力矩电机经常工作在堵转状态。如图3所示,HIP4080接收单片机的PWM、电机转向DIR和制动信号DIS,控制H桥电路MOS管的导通时间和导通次序,从而控制电机两端电压的大小和方向,实现电机的调速。

图4所示是驱动电路接入负载时,输入PWM信号的占空比和输出电压的实测关系曲线。可以看出该电路的输入输出关系线性度良好,适用于直流力矩电机的驱动。

电机

综上所述,微控制器、编码器信号检测电路和电机驱动电路采用数字电路实现。

2 控制系统的软件设计

本系统的软件主要包括控制性能验证程序设计和PC机上界面的VC程序设计。

2.1 控制精度验证程序

基于以上硬件平台,采用普通算法编写电机转动角度和速度的控制程序,观察控制效果,验证控制性能。

2.1.1电机转动角度控制程序

如图5所示,转动角度控制中Atmega128的串口接收PC机发来的电机目标转动角度。在主程序中将EPM7128发送来的电机的当前转动角度与目标转动角度比较,控制电机相应的转动或制动,直到电机转到指定位置。

电机

2.1.2电机的速度控制程序

如图6所示,电机速度控制中,ATmega128接收PC机发来的电机目标速度,根据速度方向驱动电机转向,其定时器计算出实际速度后和目标速度比较,相应地增大或减小PWM占空比,改变速度大小,直到电机运行在期望的速度上。

电机

程序运行后,实际测得角度控制的稳态误差在±0.005 7 rad,速度控制的动态误差在±0.013 1 rad/s,具有较高的精度和稳定性。在实际使用中,可以采用先进算法编制控制程序,进一步提高系统的控制性能。

作为比较,将相同的控制算法在PC上实现,通过全数字直流伺服驱动器上驱动电机,测得角度控制的稳态误差是±0.004 rad,速度控制的动态误差是±0.008 rad/s。可见本系统的控制精度与伺服驱动器的控制精度接近,而成本低于后者,具有很大优势。

2.2 PC机控制界面的VC程序设计

PC机控制界面将目标转动角度和速度发送给单片机,同时接收单片机发来的实时角度和速度并以曲线形式显示。控制界面基于对话框的结构,使用VC自带的MSComm控件和单片机通信。该控件重要属性设置如下:

①本文使用PC机的串口1通信,故串口编号CommPort设置为1;

②设单片机发来的一个有效角度或速度数据的字节数为n,则从输入缓冲区一次读取的字节数InputLen属性设置为n;

③输入缓冲区长度InBufferSize设置为n的整数倍,防止读取数据出错;

④产生接收事件的阈值RThreadshold设置为n,表示缓冲区中有一个及以上有效数据时就接收;

⑤输出缓冲区长度OutBufferSize设置为n的整数倍;

⑥产生发送事件的阈值RThreadshold设置为n。

以上属性设置完毕后打开串口,在事件驱动函数中接收数据,依次将其转换为绘图设备区域中Y轴上的像素值,同时顺序连接各点绘制曲线并更新,实时表示电机转动角度和速度的变化。如图7所示,是电机速度控制界面的截图,横轴表示时间,纵轴表示转速,曲线的跳跃是电机速度方向的改变。

电机

本文提出一种直流电机高精度数字控制系统的实现方法,设计了PC机上的控制界面。该系统硬件结构简单可靠、性价比高,系统可以达到很高的控制精度,并进行了软件验证,采用先进算法后可以进一步提高控制性能。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分