一种基于步进电机的新型运动控制系统
航天“星星指向跟踪控制系统”中的运动控制部分,为基于稀土永磁步进电机的双自由度(俯仰、方位)位置伺服系统。系统总体设计思想使用计算机控制2台步进电机,每台步进电机代表天线运动的一个自由度,使天线指向任意给定位置,指向位置由旋转变压器测量。
系统单个自由度由2路模拟电压给定目标位置,经微型计算机采样、A/D转换,再按一定控制规律控制稀土永磁步进电机,实现高精度的位置伺服精度。
控制软件用VD++6.0编写,通过软件操作,改变Intel 8253计数器工作状态,实现步进电机调速及位置伺服控制,具体实现方法:
(1)步进电机起动
步进电机驱动器使能端加载合适的控制信号后,起动步进电机只需对Intel8253所选用的计数器写入方式3控制字,然后写入所需计数值。计数器便会连续输出频率f=f0/N的脉冲信号,驱动器就能驱动步进电机按一定转速运行。
设nBase为Intel8253基址,LSB和MSB分别为要写入的计数值的低8位和高8位数据,C++操作程序如下:
outp(nBase+3,0x36);//0#计数器工作于方式3
outp(nBase,LSB);//0#计数器写入计数值低8位
outp(nBase,MSB);//0#计数器写入计数值高8位
(2)步进电机转速调节
只需对8253的计数器写入新的计数值,计数器输出频率就会发生相应变化,进而改变驱动器产生的时序脉冲的频率,实现了步进电机转速的调节。
由前面算式可以知道,电机转速为:
n=kf=kf0/N
注意在步进电机运行过程中要始终保持8253计数器门控端GATE为高电平。C++操作程序为:
outp(nBase,newLSB);//0#计数器写入新计数值低8位
outp(nBase,newMSB);//0#计数器写入新计数值高8位
(3)步进电机转动停止
以步进电机为执行机构的位置伺服系统,当执行机构运行到目标位置后,步进电机需停止转动并保持在该位置,这时切断提供给步进电机驱动器的脉冲信号f0,步进电机停止转动,同时仍有一定保持转矩。有两种方法:
一是将8253计数器的门控端GATE置为低电平,这时GATE端需定义为计算机系统的一个数字输出(DO)通道;二是将8253计数器工作方式改变为其他方式,而不写入新的计数值,这时8253计数器因等待新计数值的写入而停止工作,这种情况下,GATE门控端只需接高电平。
运动控制系统中,采用了第二种方法,通过改变计数器工作方式使Intel 8253停止输出数字脉冲信号。程序为:outp(nBase+3,0x36);//0#计数器设为方式0,等待写入计数值,停止输出。
上一篇:传感器在数控机床上的应用
下一篇:交流电机控制系统的控制算法综述