《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于RCP的嵌入式快速開發(fā)及半實物仿真技術
基于RCP的嵌入式快速開發(fā)及半實物仿真技術
2019年電子技術應用第6期
黃雨可,徐 軍,虞江航
北京理工大學 宇航學院,北京100081
摘要: 將STM32-Mat/Target開發(fā)固件庫和STM32CubeMX引入MATLAB/Simulink,首先提出了一種基于快速控制原型技術(Rapid Control Prototype,RCP)建立與標定產(chǎn)品具有相同I/O口與實際功能的原型系統(tǒng)建模過程。然后,結合一類航空電子系統(tǒng)大氣數(shù)據(jù)計算機(Air Data Computer,ADC),詳細闡述了所測試原型系統(tǒng)的建模方法及半實物仿真環(huán)境的配置過程,提出了一種快速高效開發(fā)嵌入式工程的方法。最后,將所建立的原型系統(tǒng)用于半實物仿真,測試其相對于理論數(shù)學模型的性能和效果。工程應用驗證表明,上述方法可充分發(fā)揮快速原型系統(tǒng)用于半實物仿真的優(yōu)勢,結合引入的開發(fā)固件庫,極大地節(jié)省時間與成本,提高開發(fā)效率。
中圖分類號: TP368
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190050
中文引用格式: 黃雨可,徐軍,虞江航. 基于RCP的嵌入式快速開發(fā)及半實物仿真技術[J].電子技術應用,2019,45(6):120-124,129.
英文引用格式: Huang Yuke,Xu Jun,Yu Jianghang. Rapid embedded development and semi-physical simulation technology based on RCP[J]. Application of Electronic Technique,2019,45(6):120-124,129.
Rapid embedded development and semi-physical simulation technology based on RCP
Huang Yuke,Xu Jun,Yu Jianghang
School of Astronautics,Beijing Institute of Technology,Beijing 100081,China
Abstract: The developing firmware library called STM32-Mat/Target and STM32CubeMX are introduced into MATLAB/Simulink, and a modeling process based on rapid control prototype(RCP) technology is presented firstly to build the prototype system which has the same I/O ports and practical function with standardized products. Then, the modeling method of tested prototype system and configuration of semi-physical simulation are expounded combined with a kind of avionics system, air data computer(ADC), and a technique is presented to develop embedded engineering quickly. Finally, the established prototype system is used for semi-physical simulation to test its performance and effect relative to theoretical mathematical models. The engineering application verification shows that the method above can fully utilize the advantages of the rapid prototype system for semi-physical simulation, combined with the introduction of the development firmware library, it greatly saves time and cost and improves development efficiency.
Key words : rapid control prototype(RCP);STM32-Mat/Target;air data computer(ADC);semi-physical simulation

0 引言

    當今社會,在各類控制系統(tǒng)的研發(fā)過程中,仿真已經(jīng)成為工程師檢驗產(chǎn)品性能的一個重要手段。早期的嵌入式控制系統(tǒng)開發(fā)流程中,由于系統(tǒng)開發(fā)前期缺少有效的實時驗證手段,設計師必須要等到系統(tǒng)硬件完成后才能進行檢驗,往往需要付出昂貴的代價[1]。后來隨著快速控制原型技術(Rapid Control Prototype,RCP)的引入,工程師可以通過在通用仿真計算機上建立產(chǎn)品的快速原型進行仿真,從而達到實時檢測產(chǎn)品性能的目的,大大節(jié)約了開發(fā)時間和成本[2]。傳統(tǒng)的嵌入式控制系統(tǒng)設計中,設計者利用MATLAB/Simulink作為前端建模工具,可以快速建立對象模型[3],但面臨的問題一般是模型到可執(zhí)行代碼的有效轉換以及建模工具與嵌入式開發(fā)平臺的無縫對接,這一步包括模型的編譯以及開發(fā)環(huán)境的配置,仍需要大量手工編寫代碼和嵌入式系統(tǒng)的專業(yè)知識。

    為解決此類問題,本課題提出,基于快速控制原型技術,向Simulink庫添加自定義的嵌入式系統(tǒng)集成模塊的方案,從而達到圖形化配置嵌入式工程的目的,避免了大量的手動代碼編寫和繁瑣的硬件參數(shù)配置。

1 快速控制原型技術

    快速控制原型技術起源于快速原型(Rapid Prototype,RP)技術。20世紀90年代初,美國福特公司為了降低車用嵌入式控制器的研發(fā)時間和成本,將快速原型技術引入了控制器開發(fā)領域,這種技術就稱為快速控制原型技術[3-4]。

    RCP技術本質上屬于一種基于模型的算法設計及半物理仿真。鑒于純數(shù)學仿真的置信度有限,其結果往往僅作參考,而RCP技術基于半物理仿真參與研發(fā)過程,將工程師開發(fā)的算法下載到實時仿真計算機硬件平臺上,通過該仿真機中與產(chǎn)品控制器完全一致的實際I/O口與被控對象實物連接,進行實時仿真,檢驗算法性能[5],并可以快速反復修改,最終生成目標代碼燒寫到硬件系統(tǒng)以形成最終的產(chǎn)品[6-7]。

    RCP技術最大的特點是快速、簡便、經(jīng)濟,極大地提高了研制效率,復雜的程序編寫可以通過建立數(shù)學模型來實現(xiàn),工程師的工作重點將主要集中于模型的建立和算法的設計等抽象層面,而不用糾結于程序bug調試和物理實現(xiàn)問題[8]。在實際應用上,RCP仿真可以與另一種半物理仿真——硬件在回路(Hardware in the Loop,HIL)仿真系統(tǒng)互補,相輔相成[1,9]

    本課題以美國Concurrent iHawk并行仿真計算機系統(tǒng)為平臺[3],圖1給出了快速原型系統(tǒng)仿真平臺示意圖[10]

qrs2-t1.gif

    該系統(tǒng)具有以下特點:

    (1)擁有運算能力強大的并行仿真計算機及豐富的、多協(xié)議的I/O接口;

    (2)在Simulink的環(huán)境下實現(xiàn)了離線模型和在線模型的無縫轉換;

    (3)Simulation Workbench仿真工作平臺,提供了一個完全集成的、與第三方建模軟件兼容的環(huán)境;

    (4)Simbox仿真計算機擁有雙CPU的并行處理器系統(tǒng),并且內置了A/D采集卡,定時/計數(shù)器板卡,多串口卡等多種板卡和豐富的I/O接口。

2 設計與過程

2.1 大氣數(shù)據(jù)計算機

    本課題針對的實驗載體是通用大氣數(shù)據(jù)計算機(Air Data Computer,ADC),所謂大氣數(shù)據(jù)計算機,是指針對大氣數(shù)據(jù)的處理系統(tǒng),是現(xiàn)代飛機上十分重要的一類機載電子設備,以微處理器為核心,利用傳感器傳來的少量信息,快速地計算出其他需要的大氣相關數(shù)據(jù),通常包括:大氣總壓、靜壓、總溫、迎角等[11]。

    傳統(tǒng)的嵌入式開發(fā)過程,通常是將硬件設計和軟件設計分開進行,也即,根據(jù)系統(tǒng)的需求和性能,設計模型和算法,再根據(jù)所建立的模型算法進行嵌入式開發(fā)板硬件方面的配置。因此對于設計者而言,不僅要掌握所設計系統(tǒng)方面的知識,更要對嵌入式系統(tǒng)的開發(fā)過程和C語言的程序編寫有一定的了解。而本課題的創(chuàng)新之處在于,基于快速控制原型技術,不僅可以利用Simulink庫自帶的RTW工具將模型轉換成針對目標硬件平臺的嵌入式C代碼,而且可以通過向Simulink庫添加自定義的STM32集成模塊,從而達到圖形化配置嵌入式工程的目的,避免了大量的手動代碼編寫和繁瑣的硬件參數(shù)配置。

2.2 算法設計與模型建立

    根據(jù)相關文獻[12-13],各解算參數(shù)方程式表達如下。

    (1)氣壓高度

    H<11 000 m時,位于對流層,

qrs2-gs1-3.gif

    代入已知值,Tb=216.5 K,Pb=22.632 kPa,Hb=11 000 m,

qrs2-gs4-10.gif

式中,Ma為馬赫數(shù)。

    (3)指示空速

    指示空速是指以標準海平面的大氣條件為基礎,將真空速歸化到標準海平面所得到的速度值,又稱表速,表示的是飛行器空氣動力的大小。馬赫數(shù)小于1時:

qrs2-gs4-11-14.gif

    以上得到的是表征ADC輸入輸出參數(shù)數(shù)學關系的方程式,是ADC解算大氣數(shù)據(jù)的數(shù)學基礎,后續(xù)的Simulink建模便建立于上述一組數(shù)學模型基礎上。

2.3 STM32與Simulink的集成

    本課題的創(chuàng)新之處在于,基于快速控制原型技術,提出向Simulink庫添加自定義的STM32集成模塊的方案,從而達到圖形化配置嵌入式工程的目的,避免了大量的手動代碼編寫和繁瑣的硬件參數(shù)配置。

    傳統(tǒng)的開發(fā)過程中,Simulink與STM32有一定的結合,但并不完善,關鍵在于Simulink只能對所建立的數(shù)學模型進行創(chuàng)建修改以及C代碼生成,而并不涉及任何和STM32有關的開發(fā)環(huán)境的配置,而且原本Simulink上只有針對通用32位處理器的系統(tǒng)目標文件,這樣生成的代碼在可讀性和移植性上有不少的缺陷。

    因此,本課題將ST意法半導體官方發(fā)布的開發(fā)固件庫STM32-MAT/TARGET集成到Simulink模型庫里面,利用Simulink強大的圖形化建模能力,將離線模型建立與STM32外設模塊結合起來,共同包含于快速控制原型仿真模型的搭建中。

    目前ST官方的STM32-MAT/TARGET,支持F3、F4系列的開發(fā)板,將固件庫下載安裝后通過pathtool命令讓MATLAB包含固件庫的路徑,之后在Simulink模型庫里便會出現(xiàn)與STM32相關的集成模塊。

    模塊里面包括MCU和ADC、DAC、定時器、串口等外設的配置,這些模塊的操作和普通Simulink模塊的操作基本相同,唯一不同的是,有關MCU時鐘系統(tǒng)和一些外設端口選擇的配置需要用到另一個軟件。在Simulink中,先把大氣數(shù)據(jù)計算機的仿真模型搭建如圖2所示。

qrs2-t2.gif

    模型基本思路就是將靜壓、總壓和總溫作為輸入,通過各自的模塊算出氣壓高度、空速等數(shù)據(jù),將其打包成一幀數(shù)據(jù)包,然后發(fā)送到串口模塊。

    STM32CubeMX和STM32-Mat/Target與MATLAB/Simu-link的結合,將復雜繁瑣的手工編程轉換成直觀簡便的圖形配置。模型建立在Simulink里通過模塊連線完成,開發(fā)環(huán)境的配置在STM32CubeMX里通過圖形化界面完成。

2.4 自動生成代碼

    RCP技術最重要工具之一就是基于模型的自動代碼生成?;谀P驮O計就要摒棄手寫代碼的過程,將更多的精力放在算法的開發(fā)上,利用Simulink圖形化的特點,快速高效地將算法自動生成代碼。

    Simulink的仿真參數(shù)設置里會出現(xiàn)STM32相關的配置,包括tlc文件和tmf文件的選擇以及STM32CubeMX生成的ioc文件的選取,之后生成代碼報告。

    最后在STM32CubeMX中配置生成Keil MDK工程文件。

2.5 半實物仿真與結果分析

    將2.4節(jié)所生成的程序編譯燒寫到STM32開發(fā)板上,利用RS232串口連接到電腦,并在電腦上通過Simulink搭建圖3所示程序用于接收數(shù)據(jù)并解包展示。

qrs2-t3.gif

    利用Simbox仿真計算機搭建數(shù)據(jù)發(fā)送的模型,該模型向ADC原型系統(tǒng)發(fā)送相關原始數(shù)據(jù)。該模型在Simulation Workbench的環(huán)境下編譯代碼并生成RTDB變量,原始數(shù)據(jù)通過RTDB變量映射到仿真機的MOXA CP-118EL-A多串口板卡上[3],再利用硬件協(xié)議RS232的串口向ADC原型系統(tǒng)的USART3串口發(fā)送,STM32接收到原始數(shù)據(jù)后開始進行相關大氣數(shù)據(jù)的解算。

    在運行圖3所示的第二套仿真程序的同時,打開STM32進行數(shù)據(jù)傳輸,觀察數(shù)據(jù)與預期的是否一致,結果如圖4所示。

qrs2-t4.gif

    圖4中,輸出的5組數(shù)據(jù)分別是氣壓高度、馬赫數(shù)、靜溫、指示空速和真空速,點線代表原始ADC模型數(shù)學仿真得到的輸出,條線代表半實物仿真PC實際接收到的ADC原型系統(tǒng)解算的大氣數(shù)據(jù)??梢钥闯觯?組實際數(shù)據(jù)都能較好地跟蹤理論數(shù)據(jù),說明所搭建的快速原型系統(tǒng)與程序達到了與理論數(shù)學模型相符合的預期。圖4(a)、(c)、(d)、(e)中實際曲線相對平滑,過渡自然,取得了較好的效果;圖4(b)中由于馬赫數(shù)變化在10-2~10-3數(shù)量級,波動較為劇烈,因此實際曲線相對粗糙,有望在后續(xù)的研究中通過濾波等處理得到更為光滑的曲線??傮w而言所建立的ADC原型系統(tǒng)取得了較好的效果。

3 結論

    本課題在分析基于RCP技術的基礎上,通過向MATLAB/Simulink集成STM32-Mat開發(fā)固件庫的方法,再結合STM32CubeMX配置開發(fā)環(huán)境,提出了一種快速開發(fā)STM32工程的方法,并將該方法成功應用于航空電子大氣數(shù)據(jù)計算機嵌入式軟件工程實踐中。

    本課題中所用到的STM32開發(fā)板相當于建立的快速原型系統(tǒng),它具有與未來產(chǎn)品——大氣數(shù)據(jù)計算機相同的功能和豐富的I/O接口,從而可以作為原型系統(tǒng)進行半實物仿真。而STM32-MAT/TARGET的作用則是將STM32的各種模塊集成到Simulink庫,從而可以利用自動代碼生成功能將其快速轉換成嵌入式代碼。STM32CubeMX用于圖形化直觀配置基本環(huán)境。三者結合,可以快速搭建一套原型系統(tǒng),對“產(chǎn)品”進行半實物仿真。且遇到問題時,可以直接在模型上對包括STM32各種模塊在內的所有環(huán)節(jié)進行直接更改,而傳統(tǒng)的嵌入式開發(fā)除了模型需要更改以外,還需要花大量時間對程序以及開發(fā)環(huán)境進行再配置,最重要的是,沒有STM32-MAT/TARGET的支持,模型生成的代碼缺少STM32相關模塊及tlc等配置文件,在與開發(fā)板的適配過程中將會有不少的問題。

    因此,本課題提出的基于RCP技術,結合STM32-MAT/TARGET與STM32CubeMX進行嵌入式開發(fā),建立快速原型系統(tǒng),實現(xiàn)半實物仿真,可以在原有基礎上大大節(jié)省時間與成本,提高開發(fā)效率,具有一定的工程價值。

參考文獻

[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] 徐軍.飛行控制系統(tǒng):設計、原型系統(tǒng)及半物理仿真實驗[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] 郝旭耀.無人機的大氣數(shù)據(jù)處理計算系統(tǒng)研究與設計[D].上海:上海應用技術學院,2015.

[12] 馬娟.數(shù)字式大氣數(shù)據(jù)計算機的軟件設計與實現(xiàn)[D].西安:西安電子科技大學,2012.

[13] 國鳳娟.基于ARM的大氣數(shù)據(jù)計算機設計與開發(fā)[D].沈陽:沈陽航空航天大學,2012.



作者信息:

黃雨可,徐  軍,虞江航

(北京理工大學 宇航學院,北京100081)

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。