文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190050
中文引用格式: 黃雨可,,徐軍,虞江航. 基于RCP的嵌入式快速開發(fā)及半實(shí)物仿真技術(shù)[J].電子技術(shù)應(yīng)用,,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.
0 引言
當(dāng)今社會(huì),,在各類控制系統(tǒng)的研發(fā)過程中,,仿真已經(jīng)成為工程師檢驗(yàn)產(chǎn)品性能的一個(gè)重要手段。早期的嵌入式控制系統(tǒng)開發(fā)流程中,,由于系統(tǒng)開發(fā)前期缺少有效的實(shí)時(shí)驗(yàn)證手段,,設(shè)計(jì)師必須要等到系統(tǒng)硬件完成后才能進(jìn)行檢驗(yàn),往往需要付出昂貴的代價(jià)[1],。后來隨著快速控制原型技術(shù)(Rapid Control Prototype,,RCP)的引入,工程師可以通過在通用仿真計(jì)算機(jī)上建立產(chǎn)品的快速原型進(jìn)行仿真,,從而達(dá)到實(shí)時(shí)檢測(cè)產(chǎn)品性能的目的,,大大節(jié)約了開發(fā)時(shí)間和成本[2]。傳統(tǒng)的嵌入式控制系統(tǒng)設(shè)計(jì)中,,設(shè)計(jì)者利用MATLAB/Simulink作為前端建模工具,,可以快速建立對(duì)象模型[3],但面臨的問題一般是模型到可執(zhí)行代碼的有效轉(zhuǎn)換以及建模工具與嵌入式開發(fā)平臺(tái)的無縫對(duì)接,,這一步包括模型的編譯以及開發(fā)環(huán)境的配置,,仍需要大量手工編寫代碼和嵌入式系統(tǒng)的專業(yè)知識(shí)。
為解決此類問題,,本課題提出,基于快速控制原型技術(shù),,向Simulink庫添加自定義的嵌入式系統(tǒng)集成模塊的方案,,從而達(dá)到圖形化配置嵌入式工程的目的,避免了大量的手動(dòng)代碼編寫和繁瑣的硬件參數(shù)配置,。
1 快速控制原型技術(shù)
快速控制原型技術(shù)起源于快速原型(Rapid Prototype,,RP)技術(shù)。20世紀(jì)90年代初,,美國福特公司為了降低車用嵌入式控制器的研發(fā)時(shí)間和成本,,將快速原型技術(shù)引入了控制器開發(fā)領(lǐng)域,這種技術(shù)就稱為快速控制原型技術(shù)[3-4],。
RCP技術(shù)本質(zhì)上屬于一種基于模型的算法設(shè)計(jì)及半物理仿真,。鑒于純數(shù)學(xué)仿真的置信度有限,,其結(jié)果往往僅作參考,而RCP技術(shù)基于半物理仿真參與研發(fā)過程,,將工程師開發(fā)的算法下載到實(shí)時(shí)仿真計(jì)算機(jī)硬件平臺(tái)上,,通過該仿真機(jī)中與產(chǎn)品控制器完全一致的實(shí)際I/O口與被控對(duì)象實(shí)物連接,進(jìn)行實(shí)時(shí)仿真,,檢驗(yàn)算法性能[5],,并可以快速反復(fù)修改,最終生成目標(biāo)代碼燒寫到硬件系統(tǒng)以形成最終的產(chǎn)品[6-7],。
RCP技術(shù)最大的特點(diǎn)是快速,、簡便、經(jīng)濟(jì),,極大地提高了研制效率,,復(fù)雜的程序編寫可以通過建立數(shù)學(xué)模型來實(shí)現(xiàn),工程師的工作重點(diǎn)將主要集中于模型的建立和算法的設(shè)計(jì)等抽象層面,,而不用糾結(jié)于程序bug調(diào)試和物理實(shí)現(xiàn)問題[8],。在實(shí)際應(yīng)用上,RCP仿真可以與另一種半物理仿真——硬件在回路(Hardware in the Loop,,HIL)仿真系統(tǒng)互補(bǔ),,相輔相成[1,9],。
本課題以美國Concurrent iHawk并行仿真計(jì)算機(jī)系統(tǒng)為平臺(tái)[3],,圖1給出了快速原型系統(tǒng)仿真平臺(tái)示意圖[10]。
該系統(tǒng)具有以下特點(diǎn):
(1)擁有運(yùn)算能力強(qiáng)大的并行仿真計(jì)算機(jī)及豐富的,、多協(xié)議的I/O接口,;
(2)在Simulink的環(huán)境下實(shí)現(xiàn)了離線模型和在線模型的無縫轉(zhuǎn)換;
(3)Simulation Workbench仿真工作平臺(tái),,提供了一個(gè)完全集成的,、與第三方建模軟件兼容的環(huán)境;
(4)Simbox仿真計(jì)算機(jī)擁有雙CPU的并行處理器系統(tǒng),,并且內(nèi)置了A/D采集卡,,定時(shí)/計(jì)數(shù)器板卡,多串口卡等多種板卡和豐富的I/O接口,。
2 設(shè)計(jì)與過程
2.1 大氣數(shù)據(jù)計(jì)算機(jī)
本課題針對(duì)的實(shí)驗(yàn)載體是通用大氣數(shù)據(jù)計(jì)算機(jī)(Air Data Computer,,ADC),所謂大氣數(shù)據(jù)計(jì)算機(jī),,是指針對(duì)大氣數(shù)據(jù)的處理系統(tǒng),,是現(xiàn)代飛機(jī)上十分重要的一類機(jī)載電子設(shè)備,以微處理器為核心,利用傳感器傳來的少量信息,,快速地計(jì)算出其他需要的大氣相關(guān)數(shù)據(jù),,通常包括:大氣總壓、靜壓,、總溫,、迎角等[11]。
傳統(tǒng)的嵌入式開發(fā)過程,,通常是將硬件設(shè)計(jì)和軟件設(shè)計(jì)分開進(jìn)行,,也即,根據(jù)系統(tǒng)的需求和性能,,設(shè)計(jì)模型和算法,,再根據(jù)所建立的模型算法進(jìn)行嵌入式開發(fā)板硬件方面的配置。因此對(duì)于設(shè)計(jì)者而言,,不僅要掌握所設(shè)計(jì)系統(tǒng)方面的知識(shí),,更要對(duì)嵌入式系統(tǒng)的開發(fā)過程和C語言的程序編寫有一定的了解。而本課題的創(chuàng)新之處在于,,基于快速控制原型技術(shù),,不僅可以利用Simulink庫自帶的RTW工具將模型轉(zhuǎn)換成針對(duì)目標(biāo)硬件平臺(tái)的嵌入式C代碼,而且可以通過向Simulink庫添加自定義的STM32集成模塊,,從而達(dá)到圖形化配置嵌入式工程的目的,,避免了大量的手動(dòng)代碼編寫和繁瑣的硬件參數(shù)配置。
2.2 算法設(shè)計(jì)與模型建立
根據(jù)相關(guān)文獻(xiàn)[12-13],,各解算參數(shù)方程式表達(dá)如下,。
(1)氣壓高度
H<11 000 m時(shí),位于對(duì)流層,,
代入已知值,,Tb=216.5 K,Pb=22.632 kPa,,Hb=11 000 m,,
式中,Ma為馬赫數(shù),。
(3)指示空速
指示空速是指以標(biāo)準(zhǔn)海平面的大氣條件為基礎(chǔ),,將真空速歸化到標(biāo)準(zhǔn)海平面所得到的速度值,又稱表速,,表示的是飛行器空氣動(dòng)力的大小。馬赫數(shù)小于1時(shí):
以上得到的是表征ADC輸入輸出參數(shù)數(shù)學(xué)關(guān)系的方程式,,是ADC解算大氣數(shù)據(jù)的數(shù)學(xué)基礎(chǔ),,后續(xù)的Simulink建模便建立于上述一組數(shù)學(xué)模型基礎(chǔ)上。
2.3 STM32與Simulink的集成
本課題的創(chuàng)新之處在于,,基于快速控制原型技術(shù),,提出向Simulink庫添加自定義的STM32集成模塊的方案,,從而達(dá)到圖形化配置嵌入式工程的目的,避免了大量的手動(dòng)代碼編寫和繁瑣的硬件參數(shù)配置,。
傳統(tǒng)的開發(fā)過程中,,Simulink與STM32有一定的結(jié)合,但并不完善,,關(guān)鍵在于Simulink只能對(duì)所建立的數(shù)學(xué)模型進(jìn)行創(chuàng)建修改以及C代碼生成,,而并不涉及任何和STM32有關(guān)的開發(fā)環(huán)境的配置,而且原本Simulink上只有針對(duì)通用32位處理器的系統(tǒng)目標(biāo)文件,,這樣生成的代碼在可讀性和移植性上有不少的缺陷,。
因此,本課題將ST意法半導(dǎo)體官方發(fā)布的開發(fā)固件庫STM32-MAT/TARGET集成到Simulink模型庫里面,,利用Simulink強(qiáng)大的圖形化建模能力,,將離線模型建立與STM32外設(shè)模塊結(jié)合起來,共同包含于快速控制原型仿真模型的搭建中,。
目前ST官方的STM32-MAT/TARGET,,支持F3、F4系列的開發(fā)板,,將固件庫下載安裝后通過pathtool命令讓MATLAB包含固件庫的路徑,,之后在Simulink模型庫里便會(huì)出現(xiàn)與STM32相關(guān)的集成模塊。
模塊里面包括MCU和ADC,、DAC,、定時(shí)器、串口等外設(shè)的配置,,這些模塊的操作和普通Simulink模塊的操作基本相同,,唯一不同的是,有關(guān)MCU時(shí)鐘系統(tǒng)和一些外設(shè)端口選擇的配置需要用到另一個(gè)軟件,。在Simulink中,,先把大氣數(shù)據(jù)計(jì)算機(jī)的仿真模型搭建如圖2所示。
模型基本思路就是將靜壓,、總壓和總溫作為輸入,,通過各自的模塊算出氣壓高度、空速等數(shù)據(jù),,將其打包成一幀數(shù)據(jù)包,,然后發(fā)送到串口模塊。
STM32CubeMX和STM32-Mat/Target與MATLAB/Simu-link的結(jié)合,,將復(fù)雜繁瑣的手工編程轉(zhuǎn)換成直觀簡便的圖形配置,。模型建立在Simulink里通過模塊連線完成,開發(fā)環(huán)境的配置在STM32CubeMX里通過圖形化界面完成。
2.4 自動(dòng)生成代碼
RCP技術(shù)最重要工具之一就是基于模型的自動(dòng)代碼生成,?;谀P驮O(shè)計(jì)就要摒棄手寫代碼的過程,將更多的精力放在算法的開發(fā)上,,利用Simulink圖形化的特點(diǎn),,快速高效地將算法自動(dòng)生成代碼。
Simulink的仿真參數(shù)設(shè)置里會(huì)出現(xiàn)STM32相關(guān)的配置,,包括tlc文件和tmf文件的選擇以及STM32CubeMX生成的ioc文件的選取,,之后生成代碼報(bào)告。
最后在STM32CubeMX中配置生成Keil MDK工程文件,。
2.5 半實(shí)物仿真與結(jié)果分析
將2.4節(jié)所生成的程序編譯燒寫到STM32開發(fā)板上,,利用RS232串口連接到電腦,并在電腦上通過Simulink搭建圖3所示程序用于接收數(shù)據(jù)并解包展示,。
利用Simbox仿真計(jì)算機(jī)搭建數(shù)據(jù)發(fā)送的模型,,該模型向ADC原型系統(tǒng)發(fā)送相關(guān)原始數(shù)據(jù)。該模型在Simulation Workbench的環(huán)境下編譯代碼并生成RTDB變量,,原始數(shù)據(jù)通過RTDB變量映射到仿真機(jī)的MOXA CP-118EL-A多串口板卡上[3],,再利用硬件協(xié)議RS232的串口向ADC原型系統(tǒng)的USART3串口發(fā)送,STM32接收到原始數(shù)據(jù)后開始進(jìn)行相關(guān)大氣數(shù)據(jù)的解算,。
在運(yùn)行圖3所示的第二套仿真程序的同時(shí),,打開STM32進(jìn)行數(shù)據(jù)傳輸,觀察數(shù)據(jù)與預(yù)期的是否一致,,結(jié)果如圖4所示,。
圖4中,輸出的5組數(shù)據(jù)分別是氣壓高度,、馬赫數(shù),、靜溫、指示空速和真空速,,點(diǎn)線代表原始ADC模型數(shù)學(xué)仿真得到的輸出,,條線代表半實(shí)物仿真PC實(shí)際接收到的ADC原型系統(tǒng)解算的大氣數(shù)據(jù)??梢钥闯?,5組實(shí)際數(shù)據(jù)都能較好地跟蹤理論數(shù)據(jù),說明所搭建的快速原型系統(tǒng)與程序達(dá)到了與理論數(shù)學(xué)模型相符合的預(yù)期,。圖4(a),、(c)、(d),、(e)中實(shí)際曲線相對(duì)平滑,,過渡自然,,取得了較好的效果,;圖4(b)中由于馬赫數(shù)變化在10-2~10-3數(shù)量級(jí),,波動(dòng)較為劇烈,因此實(shí)際曲線相對(duì)粗糙,,有望在后續(xù)的研究中通過濾波等處理得到更為光滑的曲線,。總體而言所建立的ADC原型系統(tǒng)取得了較好的效果,。
3 結(jié)論
本課題在分析基于RCP技術(shù)的基礎(chǔ)上,,通過向MATLAB/Simulink集成STM32-Mat開發(fā)固件庫的方法,再結(jié)合STM32CubeMX配置開發(fā)環(huán)境,,提出了一種快速開發(fā)STM32工程的方法,,并將該方法成功應(yīng)用于航空電子大氣數(shù)據(jù)計(jì)算機(jī)嵌入式軟件工程實(shí)踐中。
本課題中所用到的STM32開發(fā)板相當(dāng)于建立的快速原型系統(tǒng),,它具有與未來產(chǎn)品——大氣數(shù)據(jù)計(jì)算機(jī)相同的功能和豐富的I/O接口,,從而可以作為原型系統(tǒng)進(jìn)行半實(shí)物仿真。而STM32-MAT/TARGET的作用則是將STM32的各種模塊集成到Simulink庫,,從而可以利用自動(dòng)代碼生成功能將其快速轉(zhuǎn)換成嵌入式代碼,。STM32CubeMX用于圖形化直觀配置基本環(huán)境。三者結(jié)合,,可以快速搭建一套原型系統(tǒng),,對(duì)“產(chǎn)品”進(jìn)行半實(shí)物仿真。且遇到問題時(shí),,可以直接在模型上對(duì)包括STM32各種模塊在內(nèi)的所有環(huán)節(jié)進(jìn)行直接更改,,而傳統(tǒng)的嵌入式開發(fā)除了模型需要更改以外,還需要花大量時(shí)間對(duì)程序以及開發(fā)環(huán)境進(jìn)行再配置,,最重要的是,,沒有STM32-MAT/TARGET的支持,模型生成的代碼缺少STM32相關(guān)模塊及tlc等配置文件,,在與開發(fā)板的適配過程中將會(huì)有不少的問題,。
因此,本課題提出的基于RCP技術(shù),,結(jié)合STM32-MAT/TARGET與STM32CubeMX進(jìn)行嵌入式開發(fā),,建立快速原型系統(tǒng),實(shí)現(xiàn)半實(shí)物仿真,,可以在原有基礎(chǔ)上大大節(jié)省時(shí)間與成本,,提高開發(fā)效率,具有一定的工程價(jià)值,。
參考文獻(xiàn)
[1] 楊向忠,,安錦文,,崔文革.快速控制原型仿真技術(shù)應(yīng)用[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):設(shè)計(jì),、原型系統(tǒng)及半物理仿真實(shí)驗(yàn)[M].北京:北京理工大學(xué)出版社,,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的快速控制原型技術(shù)研究[J].計(jì)算機(jī)測(cè)量與控制,,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] 郝旭耀.無人機(jī)的大氣數(shù)據(jù)處理計(jì)算系統(tǒng)研究與設(shè)計(jì)[D].上海:上海應(yīng)用技術(shù)學(xué)院,,2015.
[12] 馬娟.數(shù)字式大氣數(shù)據(jù)計(jì)算機(jī)的軟件設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012.
[13] 國鳳娟.基于ARM的大氣數(shù)據(jù)計(jì)算機(jī)設(shè)計(jì)與開發(fā)[D].沈陽:沈陽航空航天大學(xué),,2012.
作者信息:
黃雨可,,徐 軍,虞江航
(北京理工大學(xué) 宇航學(xué)院,,北京100081)