三轴惯性陀螺测试转台控制系统的研制
摘要:介绍了三轴惯性陀螺测试转台的工作方式及其控制系统的功能,研究了以8051单片机为系统控制核心的转台控制器的硬件及软件设计问题,提出了采用8051单片机及Intel 8254定时/计数器对步进电机进行开环位置及速度控制的解决方案。
关键词:陀螺测试转台 单片机 步进电机 运动控制
导航系统是飞行器的重要组成部分。javascript:window.open(this.src);" style="cursor:pointer;"/>惯性陀螺仪表普遍应用于各种类型的飞行器的导航系统中,它反映了飞行器的飞行姿态以及其它重要导航信息,保证了人为或自动驾驶仪对飞行器进行控制的安全性与准确性。为了确保惯性陀螺仪表工作的可靠性,需要对仪表进行定期的校验,用测试转台测试陀螺仪表是比较常用的方法。某机场所使用的测试转台大部分存在老化严重以及功能单一的问题,尤其是部分转台还是老式的手动转台,很难保证校准精度,所以需要研制新型数字化的低成本的高精度陀螺测试转台及其控制系统。
1 陀螺测试转台及其控制系统介绍
陀螺测试转台主要由高精度转台及其控制系统组成。三轴转台由ψ轴转台、θ轴转台、φ轴转台三个子系统组成,分别实现三个轴的转动。各子系统由台体、驱动系统、转动系统以及执行机构组成。选用步进电机作为各子系统驱动装置,经蜗轮蜗杆及齿轮减速后输出旋转运动。转台的三个子系统中,θ轴转台固定在ψ轴转台的转盘上,φ轴转台固定在θ轴转台的转盘上。将被测试陀螺仪表固定于φ轴转台的转盘上,按测试要求控制转台各轴进行旋转,模拟飞机飞行中的各种姿态,陀螺仪表则输出相应的姿态信息,比较转台的姿态与仪表的输出即可校对仪表偏差。
各子系统的运转由其控制器控制。控制器的主要功能是接收操作人员的控制指令,对控制面板输入的控制参数进行计算或转换,变为步进电机的运转控制信号,输出到测试转台;转台在控制器的控制下可工作在速度、转角、自动等模式;转台控制器能够与上位计算机进行串行通讯,并执行上位计算机的控制指令。转台与控制器之间通过航空插头连接起来,其传输的信号包括步进电机的驱动信号和惯性陀螺仪的反馈信号。
2 转台控制系统的硬件设计
转台控制系统主要由面板控制模块、控制面板及液晶显示屏、各子系统轴控模块、步进电机驱动器和机箱、电源等组成,图1为系统硬件组成示意图。面板控制模块和各子系统轴控模块均采用Atmel AT89C52单片机作为控制核心。液晶屏采用SEIKO EPSON公司生产的SED1335液晶显示屏及其控制电路,其显示RAM具有字符和图形显示特区,通过字符发生器不仅可以调用固化的160种点阵字符,还可以扩展其它需要的字符。步进电机驱动器采用RORZE公司的RD-023MS两相步进电机驱动器。
2.1 控制面板的管理
面板控制模块选用四片8255通用扩展并口作为单片机与各子系统轴模块和面板按键、指示灯之间的接口。单片机的P0口作为数据传输端口,P2口作为各8255的片选及端口选择地址。与各子系统轴模块通讯的三片8255的A口和B口分别作为数据的发送口和接收口,C口提供握手信号。AT89C52单片机的串口通过1488-1489 RS232电平转换电路与上位计算机的串口连接。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2.2 面板模块与轴控模块的通信
面板模块与轴控模块之间通过两片8255完成运转参数和状态信息的传递。图2所示为轴控模块8255与面板模块8255的接口电路示意图。电路中使用了RS触发器74LS74,通过发送、查询、接收、置位等方式,控制数据在两片8255之间传输。触发器1的输出信号Q1作为面板模块8255向轴控模块8255传送数据的状态标志位,当Q1为“1”时表示面板模块所要传送的数据已经准备好,为“0”时表示数据已被轴控模块接收或数据未到达状态。触发器1由面板模块8255的C0和轴控模块8255的C4共同控制,由面板8255的C4和轴控模块8255的C0查询Q1的状态。同理,触发器2控制由轴控模块8255发送到面板模块8255的数据,Q2的输出值表示数据传送的状态。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2.3 步进电机脉冲产生及控制电路
系统采用8254定时/计数器产生控制步进电机运转的方波脉冲,并对输出脉冲进行计数。将8254的计数器0设定在方波发生器工作方式,计数器2设定在计数器方式。图3为用8254分频产生控制脉冲的原理图。由AT89C52内部定时/计数器2产生的方波脉冲送入8254计数器0进行分频并输出控制脉冲。计数器2对输出的脉冲进行计数。当脉冲数与计数器2的计数值相等时计数器2的输出端产生电平变化,并被AT89C52的P1.1口监测查询。当AT89C52的晶体振荡频率为24MHz时,通过调节其RCAP2H和RCAP2L的值可使其定时/计数器2产生92Hz~6MHz的方波脉冲。通过对8254计数器0的数据寄存器写入分频值N,使其输出相应频率的方波脉冲来控制步进电机的转速,计数器2通过记录计数器1输出的脉冲数量来控制电机的转角。步进电机的输出转速由下式决定:
ω=Δ·fo/N(度/秒)(1)
步距角Δ=[360/(200·i·m)](度/脉冲)(2)
式中,步进电机旋转一周的步数为200;
i为转台传动机构减速比;
m为步进电机驱动器细分数;
f0为输入8254的脉冲源频率;
N为分频数,即写入8254计数器0的值。
表1 各轴分频值N的设定
转 轴 | 转速范围/s | i | m | Δ(度/脉冲) | 分频数N | |
高速(fo=6MHz) | 低速(=10kHz) | |||||
轴 | 0.01~50 | 20 | 50 | 0.0018 | 216~63529 | 112~1800 |
轴 | 0.05~5 | 480 | 50 | 0.000075 | 90~9000 | -- |
轴 | 0.05~5 | 280 | 50 | 0.00012857 | 154~15428 | -- |
各子系统写入8254计数器0的分频值如表1所示。由于对8254计数器写入的分频值只能为正整数,而通过计算得出的分频值N不一定为正整数,因此要对输入8254计数器0的分频值进行四舍五入。产生的驱动脉冲频率大小具有舍入误差,其大小不超过:
±(1/2)/N×100% (3)
三轴的最小分频值N=90(θ轴),转速最大误差为0.56%。
3 转台控制系统的软件设计
3.1面板模块软件的设计
面板模块程序流程图如图4所示。javascript:window.open(this.src);" style="cursor:pointer;"/>上电开始后,软件首先对AT89C52的内部寄存器、液晶显示屏以及8255并口进行初始化。程序用一个字节作为系统工作状态寄存器,寄存器中各标志位分别记录串口以及面板的锁定及解锁情况以及各运转轴的当前运转方向和高低速状态。液晶显示初始化设定LCD的显示边界及范围,以及清空液晶显示模块显存。串行通讯的波特率定为9600bit/s。
面板初始化完成后,软件将同时检测面板各按键信号并等待串口的中断信号,当检测到一种信号后,将另一种信号屏蔽。在“ψ轴(或θ轴、φ轴)”键按下后,系统锁定在面板工作方式,并关闭串口中断。进入面板工作方式后,软件按流程执行转轴选择、模式设定、参数设定、运转执行等功能。控制面板按键包括ψ、θ、φ轴选择键,运转模式选择键,数字键,确定、停止键以及手动控制键。读取控制面板按键信号后,将选取的运转轴、运转模式以及设定的速度角度等参数记录于指定的寄存器中。待软件检测到“运行”键按下后,将数据送入与相应轴通讯的8255寄存器中,并将该8255的C0位置高,通知轴控模块读取。
面板控制模块与上位计算机之间制定了串行通讯协议。串行通讯指令采用ASCII码的形式,上位计算机指令和控制器返回信息都以“$”字符开头。面板模块检测到串口接收到字符“$”时,则认为上位计算机开始发送信息,信息以回车符结束。“$”后面是转轴标识符,用“X”或“Y”或“Z”表示,分别对应ψ、θ、φ三个转轴。转轴标识符后依次为速度、转角、时间的ASCII码表示值。程序将接收到的上位控制指令中的ASCII码参数值转换为轴控模块可识别的十六进制参数值,并发送到相应的轴控模块。
3.2 轴控模块软件的设计javascript:window.open(this.src);" style="cursor:pointer;"/>
子系统轴控模块程序流程图如图5所示。程序开始后先初始化8255各I/O口和8254各计数器的工作方式。软件通过查询8255的C0口,检测是否得到了由面板模块发送来的数据。轴控模块接收到面板模块发来的指令后,将速度、角度数据经计算转换成为8254计数器0的分频值N和计数器2所需要记录的脉冲数。参数转换完成后,程序根据设定指令进入相应运转模式。
当各转轴转速达到或超过1°/s时,为了使步进电机在有外加负载及高速运转下不丢步,确保在高速启动或停止时保持稳定,程序对步进电机的高速启动和停止进行了加减速控制。程序采用匀加减速方法。由式(1)可知,分频值N是角速度ω的反比例函数,设定ω1=1°/s为加速过程的初始速度和减速过程的最终速度,并设定加减速过程中每隔10ms速度差值△ω=1°/s,所以有:
N1=(Δ·f0)/ω1
N2=(Δ·f0)/ω2=(Δ·f0)/2ω1=N1/2
…………………………
Ni=(Δ·f1)/ωi=(Δ·f0)/iω1=N1/i
即每经过10ms延时循环送给8254定时器0的分频值Ni就是将ω=1°/s对应的分频值N1除以当前的循环次数得到的。程序将每一步加减速送入8254的Ni值保存到起始地址为2000H的内存单元中,制成分频值Ni的数表。在加速过程中,依次将分频值Ni送入8254计数器0中,一直到从数表中读入的分频数不大于设定速度对应的分频值Nmax,并将Nmax作为最终分频值为止。减速过程则与加速过程相反。
4 性能指标及结论
表2列出了控制器控制转台运转的模式及技术指标。经过调试运行,测试转台能够在规定模式下按要求运转。转台控制器交互性良好,每次输入指令前液晶屏上都有信息提示相应操作。各轴子系统在高速下经加减速后均运转平稳,无丢步现象。同时,能够利用上位计算机的图形界面设定运转指令参数,并通过串口发送指令给转台控制器,控制转台运转。以51单片机为控制核心的三轴惯性陀螺测试转台及其控制系统的研制,不仅使测试设备成本降低,而且在测试功能、测试指标及测试精度上均满足了仪表校验的要求。
表2 控制器控制功能及指标
功 能 | 说 明 | 指 标 |
速度模式 | 控制转台各轴按指定的速度和时间段运转 | ψ轴子系统:0.01°/s~50°/s θ轴子系统:0.01°/s~5°/s φ轴子系统:0.01°/s~5°/s |
位置模式 | 控制转台轴按指定的速度运转某一角度 | 各子系统转角苗:0.01°~999° |
自动模式 | 设定转台各轴运转的速度和时间,在此时间内各轴按指定的速度某一方向运转;完成后,此轴暂停运转,间隔2秒钟后向反方向旋转,如此反复 | 各轴系统的运转速度的范围为速度模式下相应轴的运转速度范围 |
手动模式 | 作调整用,每按一次按键,相应输出轴以0.1°/s的速度旋转0.1°,持续按下则1°/s的速度连续旋转,直至按键释放 | 单击按键运转速度:0.1°/s持续按下按键运转速度:1°/s |
串行通讯 | 控制器与上位机通过串口相互传递信息 | 遵守上位机与控制器的通讯协议 |