嵌入式仿真测试:基于RCP的嵌入式快速开发及半实物仿真技术
嵌入式仿真测试:基于RCP的嵌入式快速开发及半实物仿真技术(1)拥有运算能力强大的并行仿真计算机及丰富的、多协议的I/O接口;该系统具有以下特点:RCP技术本质上属于一种基于模型的算法设计及半物理仿真。鉴于纯数学仿真的置信度有限,其结果往往仅作参考,而RCP技术基于半物理仿真参与研发过程,将工程师开发的算法下载到实时仿真计算机硬件平台上,通过该仿真机中与产品控制器完全一致的实际I/O口与被控对象实物连接,进行实时仿真,检验算法性能[5],并可以快速反复修改,最终生成目标代码烧写到硬件系统以形成最终的产品[6-7]。RCP技术最大的特点是快速、简便、经济,极大地提高了研制效率,复杂的程序编写可以通过建立数学模型来实现,工程师的工作重点将主要集中于模型的建立和算法的设计等抽象层面,而不用纠结于程序bug调试和物理实现问题[8]。在实际应用上,RCP仿真可以与另一种半物理仿真——硬件在回路(Hardware in the Loop,HIL)仿真系统互补
当今社会,在各类控制系统的研发过程中,仿真已经成为工程师检验产品性能的一个重要手段。早期的嵌入式控制系统开发流程中,由于系统开发前期缺少有效的实时验证手段,设计师必须要等到系统硬件完成后才能进行检验,往往需要付出昂贵的代价[1]。后来随着快速控制原型技术(Rapid Control Prototype,RCP)的引入,工程师可以通过在通用仿真计算机上建立产品的快速原型进行仿真,从而达到实时检测产品性能的目的,大大节约了开发时间和成本[2]。传统的嵌入式控制系统设计中,设计者利用MaTLAB/Simulink作为前端建模工具,可以快速建立对象模型[3],但面临的问题一般是模型到可执行代码的有效转换以及建模工具与嵌入式开发平台的无缝对接,这一步包括模型的编译以及开发环境的配置,仍需要大量手工编写代码和嵌入式系统的专业知识。
为解决此类问题,本课题提出,基于快速控制原型技术,向Simulink库添加自定义的嵌入式系统集成模块的方案,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。
1 快速控制原型技术
快速控制原型技术起源于快速原型(Rapid Prototype,RP)技术。20世纪90年代初,美国福特公司为了降低车用嵌入式控制器的研发时间和成本,将快速原型技术引入了控制器开发领域,这种技术就称为快速控制原型技术[3-4]。
RCP技术本质上属于一种基于模型的算法设计及半物理仿真。鉴于纯数学仿真的置信度有限,其结果往往仅作参考,而RCP技术基于半物理仿真参与研发过程,将工程师开发的算法下载到实时仿真计算机硬件平台上,通过该仿真机中与产品控制器完全一致的实际I/O口与被控对象实物连接,进行实时仿真,检验算法性能[5],并可以快速反复修改,最终生成目标代码烧写到硬件系统以形成最终的产品[6-7]。
RCP技术最大的特点是快速、简便、经济,极大地提高了研制效率,复杂的程序编写可以通过建立数学模型来实现,工程师的工作重点将主要集中于模型的建立和算法的设计等抽象层面,而不用纠结于程序bug调试和物理实现问题[8]。在实际应用上,RCP仿真可以与另一种半物理仿真——硬件在回路(Hardware in the Loop,HIL)仿真系统互补,相辅相成[1,9]。
本课题以美国Concurrent iHawk并行仿真计算机系统为平台[3],图1给出了快速原型系统仿真平台示意图[10]。
该系统具有以下特点:
(1)拥有运算能力强大的并行仿真计算机及丰富的、多协议的I/O接口;
(2)在Simulink的环境下实现了离线模型和在线模型的无缝转换;
(3)Simulation Workbench仿真工作平台,提供了一个完全集成的、与第三方建模软件兼容的环境;
(4)Simbox仿真计算机拥有双CPU的并行处理器系统,并且内置了A/D采集卡,定时/计数器板卡,多串口卡等多种板卡和丰富的I/O接口。
2 设计与过程
2.1 大气数据计算机
本课题针对的实验载体是通用大气数据计算机(Air Data Computer,ADC),所谓大气数据计算机,是指针对大气数据的处理系统,是现代飞机上十分重要的一类机载电子设备,以微处理器为核心,利用传感器传来的少量信息,快速地计算出其他需要的大气相关数据,通常包括:大气总压、静压、总温、迎角等[11]。
传统的嵌入式开发过程,通常是将硬件设计和软件设计分开进行,也即,根据系统的需求和性能,设计模型和算法,再根据所建立的模型算法进行嵌入式开发板硬件方面的配置。因此对于设计者而言,不仅要掌握所设计系统方面的知识,更要对嵌入式系统的开发过程和C语言的程序编写有一定的了解。而本课题的创新之处在于,基于快速控制原型技术,不仅可以利用Simulink库自带的RTW工具将模型转换成针对目标硬件平台的嵌入式C代码,而且可以通过向Simulink库添加自定义的STM32集成模块,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。
2.2 算法设计与模型建立
根据相关文献[12-13],各解算参数方程式表达如下。
(1)气压高度
H<11 000 m时,位于对流层,
代入已知值,Tb=216.5 K,Pb=22.632 kPa,Hb=11 000 m,
式中,Ma为马赫数。
(3)指示空速
指示空速是指以标准海平面的大气条件为基础,将真空速归化到标准海平面所得到的速度值,又称表速,表示的是飞行器空气动力的大小。马赫数小于1时:
以上得到的是表征ADC输入输出参数数学关系的方程式,是ADC解算大气数据的数学基础,后续的Simulink建模便建立于上述一组数学模型基础上。
2.3 STM32与Simulink的集成
本课题的创新之处在于,基于快速控制原型技术,提出向Simulink库添加自定义的STM32集成模块的方案,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。
传统的开发过程中,Simulink与STM32有一定的结合,但并不完善,关键在于Simulink只能对所建立的数学模型进行创建修改以及C代码生成,而并不涉及任何和STM32有关的开发环境的配置,而且原本Simulink上只有针对通用32位处理器的系统目标文件,这样生成的代码在可读性和移植性上有不少的缺陷。
因此,本课题将ST意法半导体官方发布的开发固件库STM32-MAT/TARGET集成到Simulink模型库里面,利用Simulink强大的图形化建模能力,将离线模型建立与STM32外设模块结合起来,共同包含于快速控制原型仿真模型的搭建中。
目前ST官方的STM32-MAT/TARGET,支持F3、F4系列的开发板,将固件库下载安装后通过pathtool命令让MATLAB包含固件库的路径,之后在Simulink模型库里便会出现与STM32相关的集成模块。
模块里面包括MCU和ADC、DAC、定时器、串口等外设的配置,这些模块的操作和普通Simulink模块的操作基本相同,唯一不同的是,有关MCU时钟系统和一些外设端口选择的配置需要用到另一个软件。在Simulink中,先把大气数据计算机的仿真模型搭建如图2所示。
模型基本思路就是将静压、总压和总温作为输入,通过各自的模块算出气压高度、空速等数据,将其打包成一帧数据包,然后发送到串口模块。
STM32CubeMX和STM32-Mat/Target与MATLAB/Simu-link的结合,将复杂繁琐的手工编程转换成直观简便的图形配置。模型建立在Simulink里通过模块连线完成,开发环境的配置在STM32CubeMX里通过图形化界面完成。
2.4 自动生成代码
RCP技术最重要工具之一就是基于模型的自动代码生成。基于模型设计就要摒弃手写代码的过程,将更多的精力放在算法的开发上,利用Simulink图形化的特点,快速高效地将算法自动生成代码。
Simulink的仿真参数设置里会出现STM32相关的配置,包括tlc文件和tmf文件的选择以及STM32CubeMX生成的ioc文件的选取,之后生成代码报告。
最后在STM32CubeMX中配置生成Keil MDK工程文件。
2.5 半实物仿真与结果分析
将2.4节所生成的程序编译烧写到STM32开发板上,利用RS232串口连接到电脑,并在电脑上通过Simulink搭建图3所示程序用于接收数据并解包展示。
利用Simbox仿真计算机搭建数据发送的模型,该模型向ADC原型系统发送相关原始数据。该模型在Simulation Workbench的环境下编译代码并生成RTDB变量,原始数据通过RTDB变量映射到仿真机的MOXA CP-118EL-A多串口板卡上[3],再利用硬件协议RS232的串口向ADC原型系统的USART3串口发送,STM32接收到原始数据后开始进行相关大气数据的解算。
在运行图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工程的方法,并将该方法成功应用于航空电子大气数据计算机嵌入式软件工程实践中。
本课题中所用到的STM32开发板相当于建立的快速原型系统,它具有与未来产品——大气数据计算机相同的功能和丰富的I/O接口,从而可以作为原型系统进行半实物仿真。而STM32-MAT/TARGET的作用则是将STM32的各种模块集成到Simulink库,从而可以利用自动代码生成功能将其快速转换成嵌入式代码。STM32CubeMX用于图形化直观配置基本环境。三者结合,可以快速搭建一套原型系统,对“产品”进行半实物仿真。且遇到问题时,可以直接在模型上对包括STM32各种模块在内的所有环节进行直接更改,而传统的嵌入式开发除了模型需要更改以外,还需要花大量时间对程序以及开发环境进行再配置,最重要的是,没有STM32-MAT/TARGET的支持,模型生成的代码缺少STM32相关模块及tlc等配置文件,在与开发板的适配过程中将会有不少的问题。
因此,本课题提出的基于RCP技术,结合STM32-MAT/TARGET与STM32CubeMX进行嵌入式开发,建立快速原型系统,实现半实物仿真,可以在原有基础上大大节省时间与成本,提高开发效率,具有一定的工程价值。
参考文献
[1] 杨向忠,安锦文,崔文革.快速控制原型仿真技术应用[J].航天控制,2009,27(2):72-75.
[2] GREPL R,LEE B.Modeling parameter estimation and nonlinear control of automotive electronic throttle using a Rapid-Control Prototyping technique[J].International Journal of Automotive Technology,2010 11(4):601-610.
[3] 徐军.飞行控制系统:设计、原型系统及半物理仿真实验[M].北京:北京理工大学出版社,2015.
[4] HUANG G,ZHAO L,LI Y,et al.Design of rapid prototype of UAV line-of-sight stabilized control system[C].Society of Photo-Optical Instrumentation Engineers,2018.
[5] MAO R,LI X G,PAN B F.Design of control system rapid prototyping for suborbital reusable launch vehicle[J].Electronic Design Engineering,2014,22(23):107-113.
[6] 董哲,刘宁勇,孙德辉.基于RTW和Linux的快速控制原型技术研究[J].计算机测量与控制,2012,20(9):2420-2422.
[7] YE Y L,ZHAO R.Rapid prototype design for control systems of underwater vehicles[J].Computer Simulation,2012,29(3):378-381.
[8] SHATRI V,KURTAJ L,LIMANI I.Hardware-in-the-Loop Architecture with MATLAB/Simulink and QuaRC for Rapid Prototyping of CMAC Neural Network Controller for Ball-and-Beam Plant[C].International Convention on Information and Communication Technology,Electronics and Microelectronics,2017:1201-1206.
[9] GREPL R.Real-time control prototyping in MATLAB/Simulink:review of tools for research and education in mechatronics[C].IEEE International Conference on Mechatronics,2011:881-886.
[10] BUCHER R,BALEMI S.Rapid controller prototyping with Matlab/Simulink and Linux[J].Control Engineering Practice,2006,14(2):185-192.
[11] 郝旭耀.无人机的大气数据处理计算系统研究与设计[D].上海:上海应用技术学院,2015.
[12] 马娟.数字式大气数据计算机的软件设计与实现[D].西安:西安电子科技大学,2012.
[13] 国凤娟.基于ARM的大气数据计算机设计与开发[D].沈阳:沈阳航空航天大学,2012.
作者信息:
黄雨可,徐 军,虞江航
(北京理工大学 宇航学院,北京100081)