《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于RCP的嵌入式快速開發(fā)及半實(shí)物仿真技術(shù)
基于RCP的嵌入式快速開發(fā)及半實(shí)物仿真技術(shù)
2019年電子技術(shù)應(yīng)用第6期
黃雨可,徐 軍,虞江航
北京理工大學(xué) 宇航學(xué)院,北京100081
摘要: 將STM32-Mat/Target開發(fā)固件庫和STM32CubeMX引入MATLAB/Simulink,首先提出了一種基于快速控制原型技術(shù)(Rapid Control Prototype,RCP)建立與標(biāo)定產(chǎn)品具有相同I/O口與實(shí)際功能的原型系統(tǒng)建模過程。然后,結(jié)合一類航空電子系統(tǒng)大氣數(shù)據(jù)計(jì)算機(jī)(Air Data Computer,ADC),詳細(xì)闡述了所測試原型系統(tǒng)的建模方法及半實(shí)物仿真環(huán)境的配置過程,提出了一種快速高效開發(fā)嵌入式工程的方法。最后,將所建立的原型系統(tǒng)用于半實(shí)物仿真,測試其相對(duì)于理論數(shù)學(xué)模型的性能和效果。工程應(yīng)用驗(yàn)證表明,上述方法可充分發(fā)揮快速原型系統(tǒng)用于半實(shí)物仿真的優(yōu)勢,結(jié)合引入的開發(fā)固件庫,極大地節(jié)省時(shí)間與成本,提高開發(fā)效率。
中圖分類號(hào): TP368
文獻(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.
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 引言

    當(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í)檢測產(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]

qrs2-t1.gif

    該系統(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ì)流層,

qrs2-gs1-3.gif

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

qrs2-gs4-10.gif

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

    (3)指示空速

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

qrs2-gs4-11-14.gif

    以上得到的是表征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所示。

qrs2-t2.gif

    模型基本思路就是將靜壓、總壓和總溫作為輸入,通過各自的模塊算出氣壓高度、空速等數(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ù)并解包展示。

qrs2-t3.gif

    利用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所示。

qrs2-t4.gif

    圖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ù)的研究中通過濾波等處理得到更為光滑的曲線??傮w而言所建立的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ī)測量與控制,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)

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