【信息科学与控制工程】

基于RaspberryPi的飞控系统快速原型设计

张 治1,谢 峰2,董敏周2,张昊迪2

(1.中国空空导弹研究院, 河南 洛阳 471009; 2.西北工业大学航天学院, 西安 710129)

摘要:为了实现导弹飞行控制算法的快速设计和仿真验证,设计了一种新型的快速原型仿真系统。以RaspberryPi和ARM作为核心控制器完成了快速原型的硬件系统设计和软件平台开发,并给出了仿真流程。快速原型实例应用表明,该快速原型仿真系统具有较高的实时性和稳定性,可辅助多种复杂飞控系统的设计。

关键词:飞行控制系统;快速控制原型;RaspberryPi;STM32;半实物仿真

随着军事科技的快速发展,导弹控制系统的设计要求在不断提高,控制律和制导律设计的复杂度和难度也在增加,因此,如何能在不同研发阶段发现和验证设计中的不足至关重要。快速原型的应用不仅可以验证飞控算法的有效性和执行效率,对算法进行及时改进,而且可以指导飞控系统的硬件设计与优化[1]。在飞控系统的设计过程中,快速原型主要是在产品研发的实验阶段,将相应的控制算法加载到硬件平台,通过实际的硬件通信接口与惯性传感器、GPS接收机、舵机等实物相连[2],通过模拟飞控计算机的实时仿真,来验证算法的正确性、可靠性。基于RT_LAB实时仿真器的快速原型已经被广泛应用于导弹控制系统的设计,该方法通过RT_LAB软件将基于Matlab/Simulink开发的数字仿真模型加载到硬件平台上运行,实现了数字仿真向实物仿真的转换[3];dSPACE实时系统也常被用于半实物仿真系统快速原型的开发,该实时系统具有计算精度高、实时性好等优点,但是也存在着开发成本高、维护性差等缺点[4]

本文设计了一种基于RaspberryPi的低成本快速控制原型仿真系统,将基于Matlab/Simulink设计的飞控仿真模型直接加载到硬件平台上实时运行,参与半实物仿真试验。

1 总体方案设计

本文开发的快速控制原型仿真系统是以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 飞控快速原型仿真系统总体方案框图

2 系统硬件及软件设计

2.1 基于RaspberryPi的仿真计算模块开发

仿真计算模块作为模型运行的载体,是整个快速原型的核心,本文设计了以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 仿真计算模块功能结构框图

2.2 基于ARM的通讯扩展模块设计

由于参加半实物仿真的外部组件较多,混合多种硬件接口,为了满足丰富的接口要求,本文设计了基于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转换电路图

2.3 系统软件设计

在导弹飞行控制系统的设计过程中,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时钟模式示意图

3 仿真试验及结果分析

针对某一飞行控制系统的仿真,在核心控制模型的基础上添加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 偏航角仿真结果曲线

4 结论

快速原型作为控制算法设计的辅助仿真系统,可以根据仿真结果,不断调整仿真参数,逐步完成对控制系统的优化,也可为飞控硬件系统的设计提供参考。基于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.

Rapid Prototype Design of Flight Control Based on RaspberryPi

ZHANG Zhi1, XIE Feng2, DONG Minzhou2, ZHANG Haodi2

(1.China Airborne Missile Academy, Luoyang 471009, China; 2.School of Astronautics, Northwestern Polytechnical University, Xi’an 710129, China)

Abstract: In order to realize the rapid design and simulation verification of missile flight control algorithm, a new rapid prototype simulation system was designed. With RaspberryPi and ARM as the core controllers, the hardware system design of rapid prototype was designed, and its software platform was developed, and the simulink process was given. The application of rapid prototype shows that the rapid prototype simulation system has high real time and stability, and can assist the design of various complex flight control systems.

Key words: flight control system; rapid control prototype; RaspberryPi; STM32; hardware-in-the-loop simulation

doi: 10.11809/bqzbgcxb2020.09.034

收稿日期:2019-12-01;修回日期:2020-01-10

作者简介:张治(1978—),男,高级工程师,主要从事导弹系统测试与实验。

通讯作者:谢峰(1991—),男,博士研究生,主要从事航天器及导弹制导与控制系统设计研究,E-mail:18234161138@163.com。

本文引用格式:张治,谢峰,董敏周,等.基于RaspberryPi的飞控系统快速原型设计[J].兵器装备工程学报,2020,41(09):182-186.

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.

中图分类号:V448

文献标识码:A

文章编号:2096-2304(2020)09-0182-05

科学编辑 李富贵 博士(中国运载火箭技术研究院、高级工程师)责任编辑 杨梅梅