基于AVR的直流电机高精度数字控制系统
本控制系统以永磁式直流力矩电机为对象,其额定工作电压为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],其接口丰富,性价比高。
1.3 旋转编码器信号检测电路的硬件设计
该电路的功能是采集编码器信号,计算电机的角度和速度并传输给单片机。该电路设计采用三个思路[2]:(1)采用分立元器件及一些门电路,但使用的元件较多,影响电路的稳定性; (2)脉冲信号直接连接到单片机的计数器输入端,由软件进行鉴向和计数,但加重了单片机负担,还可能会出现漏计或误计现象;(3)采用编码器专用芯片,如奎克半导体的编码器四倍频和计数芯片,但专用芯片价格颇高,不经济。
因此,本文选用CPLD芯片EPM7128SLC84,用—片芯片实现增量式编码器信号四倍频和双向计数,简化硬件电路设计,提高系统的精度和可靠性。该芯片具有128个逻辑宏单元,完全满足需要;它具有ISP在系统可编程功能,可以对硬件进行重新配置,方便系统后期扩展。
如图2所示,光耦将旋转编码器A、B两相脉冲信号与CPLD的信号隔离,防止EPM7128和旋转编码器的工作电压不匹配。EPM7128对A、B两相脉冲信号进行四倍频和双向可逆计数的硬件描述程序可参考文献[2]。图中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占空比,改变速度大小,直到电机运行在期望的速度上。
单片机 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)