云台式PGK伺服系统控制器设计
2019-12-02
(南京理工大学 瞬态国家物理重点实验室,南京 210094)
0 引言
对于低成本,高精度的制导炮弹,已成为各国争向研究的重点。云台式PGK(Precision Guidance Kit)作为一种新型的制导控制组件,需要根据弹载计算测算的弹体转速控制云台电机转速及反旋翼筒的转速,并对反旋翼筒进行加减速控制,改变其相对弹体的相位,依靠翼筒产生的气动力矩调整弹体姿态,进而提高弹体的落点精度。
对于云台式PGK整个控制器件系统的设计,核心器件采用低成本的FPGA型号XC3S1600E,由于其超快的处理速度,减少系统响应的运算延时;拥有着8个数字时钟管理模块(DCM),频率范围达到从5 MHz到300 MHz以上,可以输出多路频率相同占空比不同的PWM,足够多的I/O输出口可以实现对多个电机的控制能力;其独特的并行处理方式,灵活的可编程逻辑单元,可大大减少外围电路,提高系统集成度;整个FPGA的系统包括地磁系统、黑匣子系统、弹载计算机系统,采用FPGA可编程能力,和足够多的I/O,实现整个系统的一体化设计。
1 控制器整体结构设计
云台式PGK控制器要求对反旋翼筒实现相对弹体进行同步反旋,并且要求翼筒根据弹载计算发出的指令进行精准的相位控制,以及云台进行稳定的速度控制,其根本执行机构选用带霍尔的永磁无刷直流电机(BLDC),即基于FPGA实现对双电机的协调控制。云台式PGK控制器系统主要包括:以FPGA为核心的主控电路模块、时钟模块、外部测试模块、扩展FLASH模块、A/D转换模块、驱动电机模块、电源模块、执行机构。电源模块通过外部输入直流电压12V经过DC模块转换成5V给主控电路模块供电,同时输出12V给电机驱动模块供电;A/D转换模块将采集的信号转换成电流信号传送给主控制器,进行实时监控电流;时钟模块用来生成系统时钟,提供准确的实时时间;扩展程序模块负责系统的逻辑配置数据,存储控制程序;根据霍尔信号确定电子转子位置及电机速度,经过主控模块产生相应频率一定占空比的PWM来调整执行机构的速度;测试模块采用UART数据通信方式,通过RS232串口标准与上位机进行交换数据,对整个系统的相关数据进行读写测试,直到整个系统调试完成[1-5]。整个系统的组成框图如图1所示。
图1 云台式PGK伺服系统控制器系统组成框图
2 控制器的硬件设计部份
主控制器选用XILINX公司SPARTAN3E系列的XC3S1600E芯片,外部多达376个I/O引角,内部集成了160万个门,具有丰富的逻辑资源,而且价格低廉,对于电机控制可大幅度减少外设电路部分,也有充足的接口输出PWM脉宽来控制多个电机,在研发初期可以大大降低研发成本,对于硬件电路也可以非常方便的进行修改,减少了很多前期研发工作不必要的麻烦。对于云台式PGK的硬件主控电路图如图2所示。
图2 云台式PGK硬件主控电路图
2.1 扩展FLASH模块
FPGA内部芯片采用SRAM工艺,系统断电后将丢失已配置的逻辑数据,所以基于SC3S16000E外部需要扩展非易失性存器。在选用芯片过程中,考虑到实用的可靠性:在调试过程中会对系统进行多次的烧写与擦除程序,以及在进行烧写程序后对程序的存储时间是一个重要因素;考虑存储器的容量:由于一般FLASH的容量大小与价格成正比关系,容量在满足系统要求的情况下,尽量满足低成本的要求;满足系统数据的读写时间要求:对于数据读写的快速性是系统对FLASH要求的关键指标。综上述因素考虑,采用官方提供的与主控芯片兼容的内存8 Mbit的FLASH芯片(XCF08PFSG48C),内部数据读写次数可达到20 000次。FPGA内部有多种配置方式,分别是:主串模式、SPI模式、BPI模式、从并模式、从串模式、JTAG模式。本系统设计工作的模式可根据M0,M1,M2三个引角高低电平组合来实现转变,系统采用主串模式3个管脚全部设置为低电平。在主串工作模式中,FPGA每当在CCLK信号为上升沿时就会从外设拓展FLASH内部读取相应数据,CCLK信号传送给外设FLASH,FLASH以比特流数据传输给FPGA通过D0管脚。在进行主串模式的配置时关建在于保持系统JTAG链路的一体性,即将FPGA的JTAG电路、FLASH的JTAG电路和JTAG连接器的TMS、TCK相对连接[6-7]。最终形成从JTAG连接器的TDI到FPGA的TDI—TDO;再到FLASH的TDI—TDO;再回到JTAG连接器TDO的JTAG链路的一体化。XC3S1600E与扩展FLASH电路配置图如图2上半部所示。
2.2 电源模块
系统外部总输入电源为12 V经过MP2315GJ(DC-DC)电源芯片转换成5 V给FPGA芯片供电[8],但XC3S1600E型FPGA电源系统主要采用包括1.2 V核电源,3.3 V的I/O电源以及2.5 V的辅助电源。由于XC3S1600E的三路供电系统对通断电顺序没有严格的要求,系统采用IT公司的TPS70358和TPS70345型芯片进行供电,TPS70358型芯片第一路产生3.3 V电源,最大电流1 A,可给FPGA的I/O供电;第二路可以供FPGA辅助电源供电的2.5 V电源,最大电流为2 A。TPS70345型芯片第二路产生1.2 V电源,最大电流可达2 A,可为FPGA提供核电源。TPS70345和TPS70358均采用外部5 V电压输入,基本外设电路基本一致。TPS70358配置电路图如图2下半部所示。
2.3 驱动电路模块
反旋翼筒及云台执行机构的无刷直流电机均采用六相全桥式逆变器,通过控制上下桥臂MOS管的通断顺序与时间来控制电机的转动与调速。在驱动方案选取上[9-10],上桥臂选取BXZ086P03(P型)型号MOS管,下桥臂选择BSZ025N04LS(N型)型号MOS管,相比较传统的上下桥臂均选用同种N型号MOS管,不再需要MOS管栅极驱动芯片及自举升压电路,最大化的提高了电路的集成度。但由于FPGA的I/O输出的PWM电压信号为3.3 V无法直接驱动MOS管,系统增加了BC817-16型三级管外接12 V驱动电压,通过控制三极管的通断来控制MOS管的通断。但如果FPGA输出的低电压信号直接接到驱动电路三极管上,12 V电压很有可能会对主控系统造成干扰,甚至直接烧坏核心电路。为了避免12电压对主控器的干扰,系统采用PC4D10S光电耦合芯片,将主控电路与驱动电路隔离开来,并且PC4D10S可同时对两路信号进行隔离,对于双电机控制仅需要6个光电耦合芯片即可。电机驱动模块电路设计如图3所示。
图3 电机驱动模块电路设计
2.4 时钟模块和外部测试模块
在控制器系统的UART模块中采用SG8002(11.059 2 MHZ)晶振来提供时钟周期,采用UART数据通信方式主要用于整个系统内部与其它相关系统进行低速的数据通信,系统的串口通信波特率为115200BPS。如果采用的是芯片内部时钟频率,有一定的误差,在通信过程中可能会出现误码。系统采用SG8002CE有源晶振为UART通讯来提供时钟,从而保证主控系统对数据的精确采样。系统通过UART进行数据的接收与发送,而通过RS232串口通信接口与上位机进行数据通信。RS232采用的电平信号标准为:电平信号为-3 V~-15 V时逻辑信号为“1”;电平信号为+3 V~+15 V时逻辑信号为“0”。而UART在FPGA中采用的是TTL逻辑电平标准。由于RS232与UART的电平信号不兼容,系统使用MAX232芯片将UART的TTL电平转化为RS232兼容的负逻辑电平,使用MAXIM公司的MAX232芯片的最大优势就在于其外设电路只需要4个小电容就可以,而且器件封装较小,大大减少了外设电路部份。在系统运行过程中需要不断采集的外部数据有电机相电流信号与电机霍尔信号,电机霍尔信号能够确定电机的转子位置及测算电机转速,测算到相应信号后,将电流信号与转速信号送入闭环控制。要实现系统的完整功能,硬件是基本,良好的硬件设备是实现完整功能的关键,而系统整个软件设计对完美实现系统功能也尤为重要。
3 控制系统的软件设计
系统控制主程序设计如图4所示,弹体出炮口飞行过程中,各个功能正常后便民伺服系统控制器开始工作,系统上电将并开始初始化,由地磁系统测量得到弹体转速后,弹载计算机根据弹体与云台转速对应关系表,给定云台转速并依据主控电路控制其达到额定转速,依据云台电机霍尔信号测算确定云台达到相应转速后,开启控制反旋翼筒相对弹体与云台转速合时行同步反旋,使反旋翼筒在惯性空间下保持相对静止,根据弹载计算机测算目标落点误差,发出相应的指令控制反旋翼筒的偏转使弹体落点向目标点偏移,不断重复此过程直到实现精确打击目标的目的。
图4 系统主程序设计
3.1 电机启动程序设计
在系统上电并初始化完成以后,电机的正常启动是系统进行制导控制和重要前提。根据相差120度安装在电机定子上的3个霍尔传感器输出的高低电平进行采集,通过电机相应的换相表,电机霍尔信号与电机相间供电的对应关系,由主控电路发出相应的控制信号给驱动电路进行有次序的换相。由于电机在空中飞行过程中,由于装配问题或外部环境的影响,电机很容易会发生堵转现象,电机就无法正常启动,弹体就失去制导能力。所以程序启动时加入堵转检测,在1秒时间检测到霍尔信号没有发变变,主控制器就不断强制增大PWM占空比,在上限区间内增大电流直到电机启动,跳出此程序,在电机正常启动以后,电机进行闭环控制[11]。电机启动程序流程如图5所示。
图5 电机启动程序
3.2 转速检测计算与控制算法设计
在系统运行过程中需要检测的速度信号有4个:反旋翼筒电机转速、云台电机转速、反旋翼筒转速及云台转速。转速信号由霍尔元件发出的脉冲进行检测,通常的测算方法有:M法、T法和M/T法[12-13]。电机启动的过程中转速是一个动态的过程,M测量法根据给定时间内检测脉冲个数来计算转速,但转速过低时测量精度不够;T测量法根据测量相邻脉冲的时间间隔来计算转速,转速过高时测量误差就会大大增大;M/T测量法将M法与T法结合起来,在检测给定T时间内的脉冲个数同时检测高频时钟脉冲个数,假定T时间内检测到M个脉冲信号和M'个已知频率为f0的高频时钟脉冲个数,旋转一周有N个脉冲信号,则转速测量对象的转速n(r/min)的计算公式为:
(1)
系统采用M/T测量法进行转速测量,由于系统内部有较高的捕获频率,所以可以准确的捕获到霍尔传感的升沿和下降沿的变化,计算出测量对象的速度,其软件设计流程框图如图6所示:
图6 转速计算程序设计
PID控制做为工程应用的一种经典控制算法,因其算法简单实用而得到广泛应用,本系统中也多次使用到PID控制算法,在进行反旋翼筒的相位、速度控制环和电流环;同时在云台电机控制的速度环和电流环都使用了PID控制算法[14-16]。系统采用增量式PID控制算法,输出的是控制量增量,累积误差小。其算法控制表达式为:
△u(k)=KP[e(k)-e(k-1)]+Kie(k)+
Kd[e(k)-2e(k-1)+e(k-2)]
(2)
系统在运行中不仅需要快速响应,也需要保证其在可按范围内,系统对控制输出量是添加门限值um,当u(k)超出限值时以门限值作为控制输出量。系统采用的PID控制算法程序设计框图如图7所示。
图7 PID算法程序设计
4 系统实验结果
在整个系统调试过程中,硬件系统测试按照先对各个子模块进行静态测试,再对整体模块动态测试为原则。对系统的电源模块、时钟模块、驱动电机模块、主要功能模块测试无误后,对整个系统进行动态测试。在弹体飞行过程中为保证反旋旋翼相对弹体同步反旋,可在惯性空间下保持静止,实现对弹体俯仰和偏航进行校正的目的。假定云台电机与弹体转速和在4 r/s到15 r/s之间,弹体与云台转速从4 r/s开始每隔五秒转速增加一转,最大增加到15 r/s,测试反旋翼筒的性能;翼筒稳定跟随的情况下,假设弹载计算机根据目标落点误差计算每隔一段时间发出翼筒偏转90°指令,到达指定位置对弹体的姿态进行调整以准确到达目标点。实验结果如图7,图8所示。
图8 翼筒转速跟随
图9 翼筒相位跟随
从图中看出系统能在5 ms内达到给定转速,系统静态误差在0.05 r/s之内;在相位跟随过程中翼筒能够始终快带跟随差保持稳定。根据测试结果可得出云台式PGK的伺服系统控制器对反旋翼的速度和相位控制有着快、稳、准的控制特点,满足对系统高精度和高稳定性的要求,验证了整个系统的可行性。
5 结论
通过测试结果表明,本文基于XC3S1600E为核心设计了一种新型的云台式PGK的伺服系统控制器,能够使反旋翼筒相对弹体及云台转速和进行反旋跟随、相位跟随,系统的动静态良好,验证了此控制器系统的可靠性,满足控制系统对控制性能的要求。而相比较传统的单片机控制系统,提高了系统的集成度,成本更低,硬件电路灵活性更高,实用价值高,为项目下一步进行的实弹打靶实验提供坚实的技术支持。