低速伺服系统在机械加工、通讯、雷达、火炮、航天航空等领域的研发和应用中不断深入和扩展,系统低速性能和精度要求也不断提高。基于模拟器件设计的直流电机控制电路,在电网电压波动和元件参数分散性条件下,各触发器移相特征不一致,破坏了三相触发脉冲对称性,控制效果大受影响,此外,模拟电路中元器件的老化也会导致工作不正常。
本文设计的全数宇、低速电机随动控制系统以单片机最小系统为基础,对目标电机和被控电机速度均采用光电数字式测量,通过单片机P1控制算法以及一定同相措施对可控硅实施调节,达到调压控速目的,使得整个系统具有较好低速性能和控制精度,同时,有效解决了模拟控制电路易受元件影响的缺陷,提高了工作稳定性,延长了使用寿命。
系统概述
系统结构框图如下图所示,由单片机最小系统、人机交互模块、电机模块、信号输入模块以及信号输出模块等模块组成。
单片机最小系统包括 ATMEL公司的AT89C52、复位电路以及扩展有EEPROM 存储器的看门狗芯片 X5045P;人机交互模块配置了典型工业仪表用的 128*64液晶板,右列 5个按键作为操作输入,按键与单片机之间通过74LSl65连接。
电机模块包括一个目标电机和一个被控电机,其中,目标电机通过调节电位器改变速度,被控电机通过单片机控制以跟随目标电机变化。本次设计使用了额定转速为 60转/ 分的直流减速电机,此类电机的特点是电机有很大力矩,负载变化对电机转速影响很小,同时其转速相对较慢,能够有效地通过肉眼观察电机的转速情况。
信号输入模块获取目标电机与被控电机的速度信号和交流电过零信号,信号输出模块则驱动可控硅控制被控电机转动。
测量环节
对跟踪控制系统而言,首要任务是测量待跟随量和被控量)即系统中的目标电机和被控电机的转速。本文采用光电传感测速,两电机的转动轴上各套有如下图所示的套件,
套件横跨红外光电门,转轴每旋转一周,套件凹槽透光一次;当目标电机和被控电机的光电信号被采集后,通过74LSOO将目标电机和被控电机信号合并送入单片机中断引脚 P3.3,同时,为区分两个中断,将两个电机光电检测信号再分别接入PO.0和 PO.1 引脚,相邻两次中断计时反映了电机转速,本文使用 74LSl4进行信号处理,74LSl4为具有斯密特触发功能的集成电路,能够消除光电信号采集中的干扰,如毛刺现象,速度测量模块电路如下图所示。
电机额定转速为 60转/ 分,则电机转速信号的两次中断的间隔在 1s左右,定时器 1 计时长度不能直接满足需要,因此] 将定时器 1 设为一定值,每次计数溢出将计数单元值加一,根据计数单元值则可计算出电机转速,实际测试中发现,将定时器 1 的定时值选为 1Oms 时,既能保证测速精度,同时又具有一定的抗干扰性能。
执行环节
系统采用交流调压方式控制直流电机转速。通过降压变压器将 220V交流电变换到适合电机工作的电压范围,然后使用双向可控硅对变压后的交流电实施所需的通、断控制,最后通过双向整流与滤波电路将交流电变为直流电送入电机。
可控硅交流调压控速原理:设计中采用交流电过零检测电路,即-交流电穿越零电压时进行检测,当测量到电压过零时,产生一个外部中断,在中断处理子程序中启动计时器 0并从某个预定初始值开始计时,同时控制可控硅导通,在计时器产生溢出中断时,溢出中断子程序中关闭可控硅。执行环节中相应电压波形的典型变化如下图所示。
工频电源周期为 1/50s=20ms,经全波整流后信号周期为10ms,由于对过零电压检测需要一定波形宽度,且可控硅的执行有一定延时,所以可控硅输出波形最大宽度不能达到10ms。
通过测试,发现计数器0初值范围在 1~6230 以内,可控硅能正常工作,且能够实现调节电机从不能起动到全速运行的全过程。
程序中定时器0工作在方式 1,用 To表示定时器0计数初值的十进制值,定时器 0置入的初值计算方法为:
TH 0=(65536-To )/ 256
TL 0=(65536-To) % 256
这样,通过外部函数改变To的值就可以调节电机的转速了。
1.P1控制算法
系统中控制器采用P1控制算法,其离散增量算式为:
△u(k)=Kp△e(k)+Kie(k),式中,△u(k)、△e(k)、e(k)分别为第k步控制信号增量、偏差信号增量和偏差信号;kp、Ki分别为比例增益和积分增益。
为克服积分饱和,本文采用积分分离P1控制算法,当误差信号小于给定误差时计算积分控制量。由于被控电机通过To起作用,同时,To的变化范围设定为1~6230,而速度的变化范围为O~60,因此比例系数为:Kp=6230/60=103.8,本文取Kp=100,积分增益K1的值通常取得很小。
2.同速过程分析
将目标电机和被控电机的测速中断计数分别用N1、N2表示,则目标电机和被控电机的转速分别为:Vm=6000/N1,Vs=6000/N2,式中,Vm,Vs分别为目标电机和被控电机的转速。
如果Vm>Vs,且To-100(Vm-Vs)>1,那么To-=100(Vm-Vs);如果Vm<Vs,且To+100(Vs-Vm)<6230,那么To+=100(Vs-Vm)。
同时须注意到山值的调节依赖于两个电机都能正常转动的情况,即N1和N2都不为零;目标电机是无需担心,因为它完全受人为控制,一般是不会将其速度调节至零;对于被控电机而言,其初始速度很可能为零,或者为其它某一接近零的值,这就意味着可能需要很长一段时间,才能检测到它旋转一圈,针对此情况,可在软件中设置强行转动,即当To的值在6230附近时,强行将To值变小,从而提前开始同速的时间。
双电机同速时特点为:To值对应于目标电机速度,因此开始的时候应尽量使To的值向最终值贴近,这里可使用一个巧妙算法,目标电机速度对额定速度百分比PERC=Vm/60=100/N1,则被控电机To值大致为To=6230(1-PERC)
由于控制被控电机的电流含有谐波分量信号,因此所计算的To值与最终To值会有一些偏差(一般偏小),但是通过这样计算之后,电机速度同步过程时间会缩短很多。
3.同相措施
本设计要求两个电机不但同速,而且同相,同速是同相的基础,实现同速之后方能实现同相。当两个电机达到同速后,所产生相位差是恒定的,对N1计数完毕到N2开始计数这段时间进行计时,假设计数值为N3,要使两个电机同相,可以简单理解为使N3值变为零。若不考虑相差一个360度相位角,增大或减小被
控电机速度都可以达到同相效果,我们选择速度在30转/分以上用减小速度来达到同相,反之则选择增加速度来达到同相。具体措施是:
(1)速度大于30转/分的区间,将被控电机速度设为零,即To=6230,等待时间计数(N1-N3)后,再将速度值恢复为同速时的值,两个电机即实现同相。
(2)速度小于30转/分的区间,将被控电机速度设为最大值,即To=1,等待时间Vm×N3/(60-Vm)后,再将速度值恢复为同速时的值,两个电机即达到同相。
但是以上方法限于理想状况,事实上,由于惯性作用,电机速度不可能会有瞬间变化,也就并不能这么简单的达到同相,对于同相控制,积分起到关键作用。利用比例积分思想的同相算法如下:
(3)速度大于30转/分,减小被控电机的速度,并且To变化值与(N1-N3)/N1成比例,同时与(6230-To)成比例,因此To+=(6230-To)×(N1-N3)/N1。
(3)速度小于30转/分,增大被控电机速度,To的变化值与N3/N1成比例,同时与To成比例,所以To-=To×N3/N1。
以上算法每执行一次,需将To恢复为同速时的数值,即恢复电机同速转动,如此调节电机的速度与相位,直到N3变为零。
小结
对电机随动系统实现了一种基于单片机的控制,它克服了传统模拟控制电路易受电网参数波动以及原件参数分散性的影响,实验表明,这种控制方法在低速随动控制系统中能够保证满意性能。