为解决此类问题,本课题提出,基于快速控制原型技术,向Simulink库添加自定义的嵌入式系统集成模块的方案,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。
1快速控制原型技术
RCP技术本质上属于一种基于模型的算法设计及半物理仿真。鉴于纯数学仿真的置信度有限,其结果往往仅作参考,而RCP技术基于半物理仿真参与研发过程,将工程师开发的算法下载到实时仿真计算机硬件平台上,通过该仿真机中与产品控制器完全一致的实际I/O口与被控对象实物连接,进行实时仿真,检验算法性能[5],并可以快速反复修改,最终生成目标代码烧写到硬件系统以形成最终的产品[6-7]。
RCP技术最大的特点是快速、简便、经济,极大地提高了研制效率,复杂的程序编写可以通过建立数学模型来实现,工程师的工作重点将主要集中于模型的建立和算法的设计等抽象层面,而不用纠结于程序bug调试和物理实现问题[8]。在实际应用上,RCP仿真可以与另一种半物理仿真——硬件在回路(HardwareintheLoop,HIL)仿真系统互补,相辅相成[1,9]。
本课题以美国ConcurrentiHawk并行仿真计算机系统为平台[3],图1给出了快速原型系统仿真平台示意图[10]。
该系统具有以下特点:
(1)拥有运算能力强大的并行仿真计算机及丰富的、多协议的I/O接口;
(2)在Simulink的环境下实现了离线模型和在线模型的无缝转换;
(3)SimulationWorkbench仿真工作平台,提供了一个完全集成的、与第三方建模软件兼容的环境;
(4)Simbox仿真计算机拥有双CPU的并行处理器系统,并且内置了A/D采集卡,定时/计数器板卡,多串口卡等多种板卡和丰富的I/O接口。
2设计与过程
2.1大气数据计算机
传统的嵌入式开发过程,通常是将硬件设计和软件设计分开进行,也即,根据系统的需求和性能,设计模型和算法,再根据所建立的模型算法进行嵌入式开发板硬件方面的配置。因此对于设计者而言,不仅要掌握所设计系统方面的知识,更要对嵌入式系统的开发过程和C语言的程序编写有一定的了解。而本课题的创新之处在于,基于快速控制原型技术,不仅可以利用Simulink库自带的RTW工具将模型转换成针对目标硬件平台的嵌入式C代码,而且可以通过向Simulink库添加自定义的STM32集成模块,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。
2.2算法设计与模型建立
(1)气压高度
H<11000m时,位于对流层,
代入已知值,Tb=216.5K,Pb=22.632kPa,Hb=11000m,
式中,Ma为马赫数。
(3)指示空速
指示空速是指以标准海平面的大气条件为基础,将真空速归化到标准海平面所得到的速度值,又称表速,表示的是飞行器空气动力的大小。马赫数小于1时:
以上得到的是表征ADC输入输出参数数学关系的方程式,是ADC解算大气数据的数学基础,后续的Simulink建模便建立于上述一组数学模型基础上。
2.3STM32与Simulink的集成
本课题的创新之处在于,基于快速控制原型技术,提出向Simulink库添加自定义的STM32集成模块的方案,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。
传统的开发过程中,Simulink与STM32有一定的结合,但并不完善,关键在于Simulink只能对所建立的数学模型进行创建修改以及C代码生成,而并不涉及任何和STM32有关的开发环境的配置,而且原本Simulink上只有针对通用32位处理器的系统目标文件,这样生成的代码在可读性和移植性上有不少的缺陷。
因此,本课题将ST意法半导体官方发布的开发固件库STM32-MAT/TARGET集成到Simulink模型库里面,利用Simulink强大的图形化建模能力,将离线模型建立与STM32外设模块结合起来,共同包含于快速控制原型仿真模型的搭建中。
模块里面包括MCU和ADC、DAC、定时器、串口等外设的配置,这些模块的操作和普通Simulink模块的操作基本相同,唯一不同的是,有关MCU时钟系统和一些外设端口选择的配置需要用到另一个软件。在Simulink中,先把大气数据计算机的仿真模型搭建如图2所示。
模型基本思路就是将静压、总压和总温作为输入,通过各自的模块算出气压高度、空速等数据,将其打包成一帧数据包,然后发送到串口模块。
STM32CubeMX和STM32-Mat/Target与MATLAB/Simu-link的结合,将复杂繁琐的手工编程转换成直观简便的图形配置。模型建立在Simulink里通过模块连线完成,开发环境的配置在STM32CubeMX里通过图形化界面完成。
2.4自动生成代码
RCP技术最重要工具之一就是基于模型的自动代码生成。基于模型设计就要摒弃手写代码的过程,将更多的精力放在算法的开发上,利用Simulink图形化的特点,快速高效地将算法自动生成代码。
最后在STM32CubeMX中配置生成KeilMDK工程文件。
将2.4节所生成的程序编译烧写到STM32开发板上,利用RS232串口连接到电脑,并在电脑上通过Simulink搭建图3所示程序用于接收数据并解包展示。
在运行图3所示的第二套仿真程序的同时,打开STM32进行数据传输,观察数据与预期的是否一致,结果如图4所示。
图4中,输出的5组数据分别是气压高度、马赫数、静温、指示空速和真空速,点线代表原始ADC模型数学仿真得到的输出,条线代表半实物仿真PC实际接收到的ADC原型系统解算的大气数据。可以看出,5组实际数据都能较好地跟踪理论数据,说明所搭建的快速原型系统与程序达到了与理论数学模型相符合的预期。图4(a)、(c)、(d)、(e)中实际曲线相对平滑,过渡自然,取得了较好的效果;图4(b)中由于马赫数变化在10-2~10-3数量级,波动较为剧烈,因此实际曲线相对粗糙,有望在后续的研究中通过滤波等处理得到更为光滑的曲线。总体而言所建立的ADC原型系统取得了较好的效果。
3结论
本课题在分析基于RCP技术的基础上,通过向MATLAB/Simulink集成STM32-Mat开发固件库的方法,再结合STM32CubeMX配置开发环境,提出了一种快速开发STM32工程的方法,并将该方法成功应用于航空电子大气数据计算机嵌入式软件工程实践中。
参考文献
[1]杨向忠,安锦文,崔文革.快速控制原型仿真技术应用[J].航天控制,2009,27(2):72-75.
[2]GREPLR,LEEB.Modeling,parameterestimationandnonlinearcontrolofautomotiveelectronicthrottleusingaRapid-ControlPrototypingtechnique[J].InternationalJournalofAutomotiveTechnology,2010,11(4):601-610.
[3]徐军.飞行控制系统:设计、原型系统及半物理仿真实验[M].北京:北京理工大学出版社,2015.
[4]HUANGG,ZHAOL,LIY,etal.DesignofrapidprototypeofUAVline-of-sightstabilizedcontrolsystem[C].SocietyofPhoto-OpticalInstrumentationEngineers,2018.
[5]MAOR,LIXG,PANBF.Designofcontrolsystemrapidprototypingforsuborbitalreusablelaunchvehicle[J].ElectronicDesignEngineering,2014,22(23):107-113.
[6]董哲,刘宁勇,孙德辉.基于RTW和Linux的快速控制原型技术研究[J].计算机测量与控制,2012,20(9):2420-2422.
[7]YEYL,ZHAOR.Rapidprototypedesignforcontrolsystemsofunderwatervehicles[J].ComputerSimulation,2012,29(3):378-381.
[8]SHATRIV,KURTAJL,LIMANII.Hardware-in-the-LoopArchitecturewithMATLAB/SimulinkandQuaRCforRapidPrototypingofCMACNeuralNetworkControllerforBall-and-BeamPlant[C].InternationalConventiononInformationandCommunicationTechnology,ElectronicsandMicroelectronics,2017:1201-1206.
[9]GREPLR.Real-timecontrolprototypinginMATLAB/Simulink:reviewoftoolsforresearchandeducationinmechatronics[C].IEEEInternationalConferenceonMechatronics,2011:881-886.
[10]BUCHERR,BALEMIS.RapidcontrollerprototypingwithMatlab/SimulinkandLinux[J].ControlEngineeringPractice,2006,14(2):185-192.
[11]郝旭耀.无人机的大气数据处理计算系统研究与设计[D].上海:上海应用技术学院,2015.
[12]马娟.数字式大气数据计算机的软件设计与实现[D].西安:西安电子科技大学,2012.
[13]国凤娟.基于ARM的大气数据计算机设计与开发[D].沈阳:沈阳航空航天大学,2012.