【信息科学与控制工程】
随着军事科技的快速发展,导弹控制系统的设计要求在不断提高,控制律和制导律设计的复杂度和难度也在增加,因此,如何能在不同研发阶段发现和验证设计中的不足至关重要。快速原型的应用不仅可以验证飞控算法的有效性和执行效率,对算法进行及时改进,而且可以指导飞控系统的硬件设计与优化[1]。在飞控系统的设计过程中,快速原型主要是在产品研发的实验阶段,将相应的控制算法加载到硬件平台,通过实际的硬件通信接口与惯性传感器、GPS接收机、舵机等实物相连[2],通过模拟飞控计算机的实时仿真,来验证算法的正确性、可靠性。基于RT_LAB实时仿真器的快速原型已经被广泛应用于导弹控制系统的设计,该方法通过RT_LAB软件将基于Matlab/Simulink开发的数字仿真模型加载到硬件平台上运行,实现了数字仿真向实物仿真的转换[3];dSPACE实时系统也常被用于半实物仿真系统快速原型的开发,该实时系统具有计算精度高、实时性好等优点,但是也存在着开发成本高、维护性差等缺点[4]。
本文设计了一种基于RaspberryPi的低成本快速控制原型仿真系统,将基于Matlab/Simulink设计的飞控仿真模型直接加载到硬件平台上实时运行,参与半实物仿真试验。
本文开发的快速控制原型仿真系统是以RaspberryPi作为硬件平台,实现飞控数学模型的运行。RaspberryPi(树莓派)是一款采用ARM架构处理器和Linux操作系统的卡片式计算机,外形小巧,成本低。虽然外形只有信用卡大小,但是具有强大的系统功能和接口资源[5],如RaspberryPi 4B拥有1.5 GHz的4核64位 ARM Cortex-A72 CPU,强大的运行能力可以匹敌一般的仿真计算机;支持千兆以太网,同时外设4路USB接口,以及多路I/O接口,丰富的接口资源极大地扩展了它的使用范围。而且树莓派可以根据不同的使用需求安装不同的支持系统,针对Matlab/Simulink仿真要求,树莓派开发了相应固件支持包,可以将Matlab/Simulink仿真模型直接下载到系统中运行。
根据飞控系统半实物仿真的一般构成和快速原型开发的一般特点,结合具体的功能需求,飞控快速控制原型仿真系统包括五个部分:电源调理模块、外部仿真参试组件、通信扩展模块、仿真计算模块和仿真总控平台。其中外部仿真参试组件为半实物仿真过程中的数据发生模块,主要包括惯导系统、GPS模拟器、舵机等[6];为了满足多种外部参试组件的通讯要求,设计了通讯扩展模块,包括CAN总线接口、1553B接口、多路高速串行通讯接口RS422和多路I/O,同时为了实现舵机的控制和舵机反馈信号的采集,集成了ADC和DAC模块;仿真计算模块作为快速原型的核心,主要承担飞控仿真模型的运行,而且该模块自带多种通信接口,尤其是千兆以太网接口,可以实现大量数据的快速传输,完成向总控平台的数据传输;为了实现较好的人机交互,仿真总控平台运行在Windows系统中,该平台基于Matlab/Simulink设计,主要用于飞控仿真模型的建立,包括导弹运动学和动力学模型的建立,控制律和制导律的设计,同时作为总控平台,实现仿真状态的监控、仿真数据存储和数据图像化,如图1所示。
图1 飞控快速原型仿真系统总体方案框图
仿真计算模块作为模型运行的载体,是整个快速原型的核心,本文设计了以RaspberryPi为基础的仿真计算机。Mathwork官方已经推出了树莓派的硬件支持包,无论是Matlab函数或是Simulink模块,都可以完成对RaspberryPi的开发,这与飞控算法开发软件具有高度的一致性。Simulink的树莓派支持包提供了多种硬件通讯接口模块,包括SPI、serial、I2C、TCP/IP、UDP和ThingSpeak等,这些接口函数降低了仿真试验的软件开发难度,提高了飞控系统设计的效率。
快速控制原型在该模块的基础上进行了扩展,充分利用了模块中的I/O,扩展出了RS422和SPI,用于与外界的通讯。同时通过千兆以太网口实现与上位机的通讯,不仅可以完成飞控模型的下载,而且可以实现仿真数据的传输。以Matlab/Simulink作为导弹飞行控制系统的建模工具,利用Simulink/RTW工具的代码自动生成功能将数学模型转换成相应的C代码,并加载到RaspberryPi中进行实时运行。通过高速串行接口SPI接收由通信扩展模块采集和打包的外部传感器数据。图2为仿真计算模块功能结构。
图2 仿真计算模块功能结构框图
由于参加半实物仿真的外部组件较多,混合多种硬件接口,为了满足丰富的接口要求,本文设计了基于ARM的通讯扩展模块,完成了模块中的硬件电路设计。根据外部仿真参试组件接口的具体要求,本文扩展了CAN总线、1553B总线、SPI、RS422和I/O等接口,同时集成了ADC和DAC模块。1553B是由美国提出应用在机载设备间信息传输的总线标准,因其高可靠性、实时性和安全性等优点而广泛应用于航空电子通信网络[7],为了方便设计和数据传输的可靠性,选取BST_1553B模块作为总线驱动器,通过SPI接口与STM32F429相连。
1) STM32F429具有丰富的I/O端口,最高输出电平和最大承受电平为3.3 V,为了满足不同电平要求,选用光耦继电器AQW214和HCPL-2630,通过输出端的参考电压Pwr_IO,将I/O的3.3V电平转变成与Pwr_IO相等的电压;同时利用HCPL-2630将外部电压转换成I/O可承受的标准3.3 V电平,具体的电路如图3所示。
图3 I/O扩展电路图
2) RS422作为一种标准通讯协议,具有抗干扰能力强、传输距离远、传输速率高等优点,已经被广泛应用于工程实践中[8]。选用的ARM处理器为STM32F429IGT6,拥有四路USRAT和四路UART,可以扩展出多路RS422总线。选用芯片MAX490ESA作为电平转换器,实现ARM输出的TTL电平转化为RS422接口标准电平,外围添加电阻和电容,减少电信号的干扰,具体电路如图4所示。
图4 RS422串口通讯电路图
3) CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,采用双线串行方式,检错能力强,可在高噪声、复杂电磁环境中工作,已经被广泛应用于航空航天领域[9]。STM32芯片中嵌入有bxCAN控制器(Basic Extended CAN),并且支持最高1Mbit/s的通讯速率,可以自动地接收和发送报文,支持使用标准ID和扩展ID的报文。选用芯片PCA82C250作为CAN收发器,由于STM32F429的内核电压为3.3 V,收发器的工作电压为5 V,为了实现两种不同电平之间的信号传递及抑制CAN总线的共模电压引起的串扰[10],选用光耦6N137来隔离STM32F429和PCA82C250之间收发引脚的连接。同时为了滤除总线上的高频干扰和电磁辐射,在CANH和CANL之间连接一定大小的电容和电阻。斜率电阻Rs端外接一个可变电阻,通过调节其阻值大小可以选择PCA82C25的三种工作模式:高速工作模式、斜率控制工作模式、待机模式,具体电路如图5所示。
图5 CAN总线通信电路图
4) 模拟信号的采集与输出是快速仿真原型的必备功能。选用TI公司的DAC8563作为数模转换芯片,该芯片为16位低功耗电压输出双通道数模转换器,支持50 MHz的SPI标准接口[11],可实现与主控处理器STM32F429之间的快速数据传输。为了满足电压输出范围要求(-10 V~+10 V),基于OPA2171AID设计了运算放大电路,以DAC8563输出的2.5 V电压作为参考电压VREF,外接±15 V的常值电平,所设计的运算放大器的输出公式为VOUT=4.7*(VIN-VREF),具体电路如图6所示。ADC模块选用AD7606芯片,此芯片具有16位8通道同步采样能力,可处理不同量程的双极性输入信号(-10 V~+10 V,-5 V~+5 V),采样速率可达200kSPS。为提高总线的负载能力,外接双向三态数据缓存器74LS245。
图6 D/A转换电路图
在导弹飞行控制系统的设计过程中,Matlab/Simulink因为其编程简单且图形化功能强大,已经成为最常用和最重要的工具之一,并且可安装丰富的硬件工具包,Matlab2016及其更高版本可以支持RaspberryPi的开发。系统的软件开发主要包括上位机即仿真总控平台的设计、飞控仿真模型中硬件通讯模块设计和通信扩展模块STM32F429的开发。仿真总控平台的功能主要是监控模型运行状态、数据存储和数据图形化,根据仿真需求,设计了如图7所示的快速原型控制平台。
图7 快速原型控制平台界面
所设计的快速原型以RaspberryPi作为模型运算核心,通过通信扩展模块完成与外部设备的通讯,通信扩展模块作为数据处理中心,将采集到的数据整合打包成具有指定协议的帧数据,通过SPI将数据传输到RaspberryPi中供仿真模型使用。RaspberryPi作为主设备模式,在每一个仿真周期发送时钟信号到STM32F429(从设备)中,并从中读取已处理完成后的帧数据,设置SPI Master Transfer模块的SPI时钟模式为model1,如图8所示。仿真数据与上位机的通讯通过网线连接,根据通讯网址要求,设置UDP Send模块的IP地址;为了方便单独查看或输出某些数据,利用RaspberryPi外围扩展的RS422通信接口,根据串口通信要求,设置Serial Write模块的波特率、校验位、数据位和停止位。通信扩展模块作为从设备通过SPI与Raspberry连接,为减小CPU的负荷,采用DMA(Direct Memory Access)传输方式,根据外围扩展芯片的要求,参考STM32F429技术手册可以完成其他通信的软件设计。
图8 SPI时钟模式示意图
针对某一飞行控制系统的仿真,在核心控制模型的基础上添加RaspberryPi的通讯接口模块,如图9所示,图9中的RS422高度输出模块为RaspberryPi的串口输出模块,用于测试外扩RS422接口的可靠性,图9中的UDP Send模块主要功能为向上位机传输大量的仿真数据结果,用于存储和显示。图9中的sfun_RaspberUartPack是使用S-Function编写的用于数据打包的程序,通过添加帧头、校验和等构成上下位机约定的数据帧格式。利用转台、舵机负载模拟器、惯性组件和卫星模拟器等完成半实物仿真系统的搭建。
图9 Matlab/Simulink仿真测试模块示意图
在控制模型建立成功和硬件系统搭建完成之后,用户可以通过操作上位机进行仿真参数的设置和数学模型的下载,整个操作流程如下:
a) 打开模型:选择一个基于Matlab/Simulink建立的飞行控制系统仿真模型。
b) 硬件下载配置和通讯模块参数设置:在Simulink模型的Configuration Parameters中设置目标参数,包括硬件类型、目标IP、用户名和密码等;在选择的数学模型的基础上添加RaspberryPi通讯模块并设置通讯参数,包括SPI时钟模式、串口参数和UDP网址等。
c) 系统上电和通信检测:快速原型需要28 V 5 A的电源,在上电之后,等待20 s左右,点击上位机界面的“连接”,如若连接成功,会显示快速原型的IP地址。
d) 模型下载:设置相关仿真参数之后,点击模型编译,会生成可在快速原型上执行的C代码,并自动完成模型下载。快速原型可下载多个不同的仿真模型,不同模型之间通过模型名称进行区别。
e) 启动模型:以名称作为模型标签,一次启动一个或多个模型,启动之后模型按照预先设置的仿真要求进行仿真。
f) 暂停运行:暂停模型运行,使系统处于等待状态。
g) 重启:重新启动硬件,需要重新与上位机建立连接。
以某弹道模型进行仿真测试,设定发射角度为45°,根据操作流程完成模型下载和运行,高度信息通过RS422串口传送到上位机上,俯仰角和偏航角等数据通过网线传输到上位机,得到图10~图12所示的仿真结果。根据仿真结果可知,快速原型仿真与数字仿真的总体趋势一致,只是存在噪声干扰和部分波动,这符合硬件仿真结果,表明快速原型可以稳定可靠地完成模型仿真和算法验证。
图10 高度仿真结果曲线
图11 俯仰角仿真结果曲线
图12 偏航角仿真结果曲线
快速原型作为控制算法设计的辅助仿真系统,可以根据仿真结果,不断调整仿真参数,逐步完成对控制系统的优化,也可为飞控硬件系统的设计提供参考。基于RaspberryPi设计了一种新的快速原型仿真系统,扩展出丰富的硬件接口,完成了快速仿真系统软件控制平台的设计,根据仿真实验可知,该系统能可靠地完成多类飞控算法的仿真任务,对其他快速原型的设计具有参考作用。
[1] 董敏周,孙力,闫杰.导弹飞控系统快速控制原型开发及半实物仿真系统方案研究[J].计算机测量与控制,2009,17(4):703-705.
[2] 马慧敏,章惠君.导弹制导控制系统快速原型设计技术[J].电光与控制,2012,19(5):78-81.
[3] 万士正,常晓飞,闫杰.基于RT-LAB的飞控系统快速原型开发[J].电子测量技术,2012,35(10):115-118.
[4] 付志红,熊学海,侯学哲,等.基于dSPACE平台的电能计量实时仿真系统[J].仪器仪表学报,2011,32(8):1763-1770.
[5] 林志伟,徐冠华,吴森洋.基于树莓派的三维打印上位机控制系统[J].实验技术与管理,2019,36(6):114-118.
[6] 张培忠,高坤,宁金贵.基于Simulink的RTX实时环境导弹半实物仿真编程技术研究[J].兵器装备工程学报,2018,39(11):1-6.
[7] 武瑞欢,曾晓东.基于HOLT芯片的1553B总线通信接口的设计[J].电脑知识与技术,2019,15(9):223-224.
[8] 宋云霞.一种基于RS422总线的交叉备份与分布式接收应用电路设计[J].火控雷达技术,2019,48(02):20-23.
[9] 侯书铭,徐德民,许化龙.CAN总线技术在导弹控制系统中的应用[J].弹箭与制导学报,2006,26(1):701-704.
[10] 张礴,文海兵.CAN总线在水下航行器导航与控制系统中的应用[J].测控技术,2011,30(9):68-72.
[11] 赵志洲.基于uC/OS-Ⅲ的噪声主动控制系统设计[D].南京:南京航空航天大学,2016.
Citation format:ZHANG Zhi, XIE Feng, DONG Minzhou, et al.Rapid Prototype Design of Flight Control Based on RaspberryPi[J].Journal of Ordnance Equipment Engineering,2020,41(09):182-186.