杨海光 刘文怡 朱思敏 张会新
(电子测试技术重点实验室1,山西 太原 030051;中北大学仪器科学与动态测试教育部重点实验室2,山西 太原 030051)
步进电机。系统总体结构框图如图1所示。
随着航空航天和飞行武器的快速发展,物体姿态的控制精度和反应速度成为精确与快速打击的关键因素。本文基于快速与精确调整设备姿态的目的,采用步进电机配合倾角传感器[1-2],实现了简易精确的姿态角度测量控制系统,为低成本、高精度测控系统的发展提供了参考。
本文将倾角传感器镶嵌在步进电机的转轴上,控制计算机下发定位角度;通过FPGA将定位角度与当前实际角度进行对比运算,以控制输出脉冲个数的方式来控制角位移量,从而达到准确定位的目的;并将倾角传感器的实际测量值反馈给上位机进行实时监测,进而达到对电机转轴偏转水平面角度的测量。
图1 系统总体结构框图Fig.1 The overall structure of system
ROB100上电(12 V)即工作,并立刻通过RS-232串口输出倾角数据,波特率为57600 bit/s,输出的数据格式为每帧7个字节。数据帧格式如表1所示。
表1 数据帧格式Tab.1 Format of the data frame
本设计主要可分为5个部分,分别为数据产生单元——外接的数字式倾角传感器、主控单元——FPGA、控制终端——上位机、驱动单元——功率放大器(步进电机驱动芯片)、执行单元——永磁式减速型
表1中,X轴方向表示横滚角,Y轴方向表示俯仰角,本设计选用的是X轴方向的角度数据实现测量与定位的控制。经试验证明,Y轴方向的控制与X轴的原理相同。
数据通过RS-232接口异步串行进入FPGA。通过FPGA内部逻辑运算和处理,将实际测量角度反馈给上位机进行实时监测。上位机下发定位角度,将角度转换的脉冲数通过脉冲分配器输出;再经电机驱动芯片的功率放大后给到电机上,使电机旋转到设定的位置,并在当前位置保持动态平衡。
外部电源给传感器供电,供电电压为12 V。传感器上电后下发倾角数据,通过串口逐位进入MAX3232中。MAX3232将12 V的电平数据转化为5 V的电平数据后串行进入FPGA。RS-232串口通信原理图如图2所示。
图2 RS-232串口通信原理图Fig.2 Principle of RS-232 serial port communication
通过对底层逻辑程序的编写,对串行进入FPGA内部的倾角数据进行采集、编码、计算,最终将倾角数据转化为脉冲个数,并根据电机工作原理重新分配输出。FPGA将处理后的数据经ULN2003电机驱动芯片输出给步进电机。
驱动电路如图3所示。
图3 驱动电路Fig.3 Driving circuit
本设计选用的步进电机型号为24BYJ48-5V,共有4对磁极即4相,5根线依次为红、橙(A)、黄(B)、粉(C)、蓝(D)五种颜色。其中蓝线和黄线是一对,橙线和粉线是一对,红线是这两组线圈抽头的公共线。蓝线和黄线、橙线和粉线接控制脉冲输出,所以只需要4个输出接口。通过内部逻辑程序的管脚分配,选用的是驱动芯片的前4个管脚,输出管脚即OUT1~OUT4。红线接+5 V的直流电源。
步进电机是纯粹的数字控制电动机,是将电脉冲信号转换成角位移的执行元件。步进电机转子的转角与输入的电脉冲数成正比,其转速与输入的脉冲频率成正比,而电动机的旋转方向则由脉冲的分配顺序决定[4]。
2.2.1 步进电机技术指标
不同的步进电机有不同的启动频率和频率上限,工作频率应介于两者之间,电机才能在非过载的情况下正常旋转。经过多次计算和试验,本设计将旋转频率设定为625Hz,选用的电机步距角为5.625°/64,所以旋转一周需要4096个脉冲,每一个脉冲电机旋转的角度约为0.088°。步进电机的运行方式为4相8拍,即A-ABB-BC-C-CD-D-DA-A,8个状态为一个循环[5-7]。
2.2.2 倾角传感器技术指标
选用的传感器量程为-90°~90°。倾角传感器产生的是二进制数据,解码方式如下。
①接收的16位整数≤32768时,倾角值=16位整数×90/32768(正角)。
② 接收的16位整数>32768时,倾角值=(16位整数-65535)×90/32768(负角)。
由于16位数每变化一位,角度值也会随之变化,所以倾角传感器的精度理论值为(1/32768)°。
2.2.3 角度与脉冲个数的转换
由上述分析可知,步进电机的精度为0.088°。为便于底层逻辑程序编写时换算,将这个角度表示为N;倾角传感器的精度为(1/32768)°,将这个角度表示为n,N/n约等于32。所以当倾角传感器产生的数据变化约32个精度单位时,电机变化一个精度单位,即将产生的角度数据转化成整数与32循环作差。当数据减到小于32时,停止作差循环。通过计数器将“32”的个数进行累加,即为实际输出的脉冲数。对于实际位置偏离参考面的上下两侧,则通过控制步进电机的旋转方式来实现调整要求[8]。
本设计应用VHDL作为逻辑程序编辑语言,在此重点介绍计算器和脉冲分配器的设计与实现。通过对底层逻辑程序编写,经综合编译后生成的顶层图如图4所示。
图4 计算器和脉冲分配器逻辑程序顶层图Fig.4 Top layer of the logical program of calculator and pulse distributor
3.1.1 计算器
计算模块连接通信的主要引脚的功能如下。
clk表示时钟信号,使模块正常工作的时钟。rst表示复位信号,低电平有效。复位后计算器处于初始状态。datain表示倾角传感器下发的数据,计算器内部进行运算处理。wrin表示写数据信号,每发生一次由低到高的变化就写入一组数据。busy表示忙碌等待信号,脉冲分配器反馈给计算器的信号。当脉冲分配器处于工作执行状态时,计算器停止数据的下发。cntoutX表示脉冲个数信号(最高位控制旋转方向,剩下的为数据位),由计算器内部计算转换产生,输出给脉冲分配器,再由脉冲分配器分配启动脉冲,最终由步进电机执行相应的步数。
以上信号中,除cntoutX为输出信号外,其余均为输入信号。
3.1.2 脉冲分配器
脉冲分配模块连接通信的主要引脚的功能如下。
clk32表示时钟信号,驱动准备时钟1.25 MHz。rst表示复位信号,低电平有效。复位后脉冲分配器处于初始状态。cntin表示脉冲个数信号,接收计算器给出的脉冲个数及旋转方向。busy表示忙碌等待信号,脉冲分配器产生,当脉冲分配器处于忙碌状态时,输出为高电平。data表示执行信号,脉冲分配器输出给步进电机时电机正常运转的执行脉冲。
以上信号中,除data为输出信号外,其余均为输入信号。
为了直观显示,全面地表示出算法实现的过程,这里以45°所在的平面为参考平面,详细介绍了算法的运用与实现。角度示意图如图5所示。
倾角传感器输出的角度落在第一象限并且大于45°时,用传感器角度减去45°,即为调整角度,旋转方向设定为顺时针;当倾角传感器输出的角度落在第一象限并且小于45°时,用45°减去传感器角度,即为调整角度,旋转方向设定为逆时针;当倾角传感器输出的角度落在第四象限时,计算角度的方法为65535减去接收到的16位数据,将这个数据转化成角度,即为倾角传感器在第四象限中的实际角度(符号忽略不计),再加上参考面设定的45°,即为需要调整的角度,旋转方向设定为逆时针。
图5 角度示意图Fig.5 Schematic diagram of angle
通过对本设计的研究,将开环器件步进电机与倾角传感器有效结合,最终实现了带反馈的闭环可控系统,提高了电机的实用性。
本设计逻辑简单、可靠性好,设计理念可以有效地应用在各种需要维持动态平衡状态的摆翼或舵盘上,也可以根据需求测量出实际应用中的俯仰角或横滚角,具有广泛的应用情景。
[1]汪厚新.采用FPGA的步进电机控制系统研究[D].成都:西南交通大学,2006.
[2]张维胜.倾角传感器原理和发展[J].传感器世界,2002,8(1):18-21.
[3]陈晓鸽,昂军.Protel 99SE标准实例教程[M].北京:机械工业出版社,2010:139-183.
[4]王美川,王紫婷.基于FPGA控制的步进电机驱动设计[J].电子测量技术,2008,31(6):184-187.
[5]吴云,陆锷,赵海洋,等.基于FPGA的步进电机细分驱动器的设计[J].自动化仪表,2009,30(10):61-63.
[6]林海波.基于单片机的步进电机均匀细分驱动器的实现[J].自动化仪表,2004,25(9):60-63.
[7]陈锡侯,陈涛,彭东林,等.基于时间细分技术的高精度自动定位控制方法研究[J].自动化仪表,2011,32(4):26-28.
[8]谌慧铭,汤晓华,郭小进.转子微扬度测量仪的研制[J].自动化仪表,2008,29(10):47-50.