国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于組合式儀器平臺和Simulink的半實物仿真系統(tǒng)研究

2020-03-20 03:42高寧李曉明
軟件工程 2020年3期
關(guān)鍵詞:實時性自動化

高寧 李曉明

摘? 要:由于商業(yè)半實物仿真平臺往往需要配合專用硬件使用,通用性較差、價格高昂,且國內(nèi)半實物仿真平臺較少,難以滿足半實物仿真技術(shù)的學(xué)習(xí)教學(xué)需求。因此,本文設(shè)計實現(xiàn)了一種基于組合式儀器平臺和Simulink的半實物仿真系統(tǒng),通過分析RTW代碼生成過程,實現(xiàn)Simulink模型的實時性擴展。并通過編寫腳本文件,自動生成可在組合式儀器平臺上運行的半實物仿真應(yīng)用。實例運行表明,該半實物仿真平臺具有較高的自動化程度和通用性。

關(guān)鍵詞:半實物仿真;Simulink;實時性;自動化

中圖分類號:TP273+.5? ? ?文獻標(biāo)識碼:A

Abstract:As commercial HIL (Hardware In the Loop Simulation) platforms often need to be used with special hardware,the versatility is poor and the price is high.Meanwhile,there are few HIL platforms available in our country.Therefore it cannot meet the needs of learning and using HIL technology.For this case,a HIL platform based on a combined instrument platform and Simulink was built.By analyzing the RTW code generation process,the real-time extension of the Simulink model is realized.By writing the script file,semi-physical simulation applications can be generated automatically on the platform of the combined instrument.The running example shows that the semi-physical simulation platform has a high degree of automation and versatility.

Keywords:HIL;simulink;real-time;automation

1? ?引言(Introduction)

半實物仿真根據(jù)英文翻譯有時也被稱為硬件在環(huán)(HIL)仿真,是指在仿真系統(tǒng)應(yīng)用中包含有數(shù)學(xué)模型同時也有真實硬件設(shè)備的接入,相互配合共同完成仿真。相比于傳統(tǒng)仿真測試方法,可以使系統(tǒng)表現(xiàn)出更為接近完全真實硬件情況下的性能和狀態(tài),幫助研發(fā)人員進行更全面、更徹底的系統(tǒng)測試,及早發(fā)現(xiàn)和解決測試過程中存在的問題,有效減少研發(fā)周期,降低研發(fā)成本或進行極限、危險工況下的測試,提高成功率。因此,半實物仿真被廣泛應(yīng)用于武器裝備研發(fā)[1,2]、航空航天[3,4]、汽車研發(fā)[5]等諸多領(lǐng)域,已經(jīng)成為一個國家仿真技術(shù)發(fā)展水平的重要體現(xiàn)[6]。

目前,半實物仿真應(yīng)用較為廣泛的有Simulink Real Time[7]、dSpace[8,9]、RT-LAB[10]、NI,以及基于Windows實時擴展系統(tǒng)[11]和基于Linux系統(tǒng)的半實物仿真平臺[12]。但上述平臺在使用過程中往往需要專用的軟件和硬件配合使用,使用范圍難免受到硬件的限制,通用性較差,而國內(nèi)現(xiàn)有的半實物仿真平臺較少。同時商業(yè)半實物仿真平臺價格高昂,更適合實際生產(chǎn)研發(fā),對于高校同學(xué)和教師而言,學(xué)習(xí)和研究半實物仿真技術(shù)的成本過高。針對以上情況,本文搭建了基于組合式儀器平臺和Simulink的一種通用半實物仿真平臺,并提出了對Simulink模型實時性改造的方法,最后對該半實物仿真平臺開發(fā)仿真應(yīng)用進行了實例展示。

2? ?半實物仿真平臺總體架構(gòu)(Overall architecture of hardware in the HIL simulation platform)

組合式儀器平臺包含硬件模塊和軟件系統(tǒng),該平臺可以完成網(wǎng)絡(luò)傳輸、多任務(wù)處理,以及各種外圍接口的調(diào)用,并且通過系統(tǒng)BootLoader、系統(tǒng)kernel、系統(tǒng)驅(qū)動程序等方面的定制,實現(xiàn)了一個穩(wěn)定性好、實時性高的適用于組合式儀器系統(tǒng)的嵌入式Linux系統(tǒng),運行在組合式儀器系統(tǒng)硬件模塊上[13],硬件模塊如圖1所示。

本文以組合式儀器平臺為硬件基礎(chǔ)、Simulink為軟件基礎(chǔ),通過Simulink設(shè)計開發(fā)數(shù)學(xué)模型,然后使用RTW工具箱將模型轉(zhuǎn)化成C語言代碼,并根據(jù)半實物仿真系統(tǒng)的特點對自動生成的代碼進行定制,最后下載至組合式儀器平臺中進行編譯鏈接生成可運行的目標(biāo)程序,完成半實物仿真應(yīng)用的開發(fā)。二者之間通過網(wǎng)絡(luò)通信完成仿真程序的下載,以及仿真程序運行狀態(tài)的監(jiān)控,系統(tǒng)總體架構(gòu)如圖2所示。

3? Simulink模型的實時性擴展(Real-time extension of Simulink model)

3.1? ?RTW代碼自動生成分析

RTW作為Simulink中集成的一個工具箱,可以方便地將Simulink模型轉(zhuǎn)換成能夠直接在目標(biāo)硬件平臺使用的C語言代碼,使之可以脫離Simulink環(huán)境運行在目標(biāo)硬件平臺上。使用RTW工具箱自動將Simulink模型轉(zhuǎn)換成C語言代碼過程中的關(guān)鍵步驟如圖3所示,通過修改創(chuàng)建過程中所需要的各種配置文件和模板文件,可以實現(xiàn)對生成代碼過程、格式的控制[14]。

(1)Simulink提供一種圖形化的開發(fā)環(huán)境,該環(huán)境可以看作是由模塊和子系統(tǒng)兩種要素組成的一種圖形化開發(fā)語言。RTW可以將圖形化的仿真程序編譯成傳統(tǒng)編譯器可以進行編譯的代碼。

(2)在代碼自動生成的初始階段,首先Matlab內(nèi)建函數(shù)對搭建的Simulink模型文件Model.mdl進行解析,分析其中的模塊、子系統(tǒng)結(jié)構(gòu),以及它們之間的相互連接關(guān)系,然后進行組合編碼,生成Model.rtw中間描述文件。

(3)目標(biāo)語言編譯器(TLC)對Model.rtw文件進行解析,然后根據(jù)系統(tǒng)目標(biāo)文件ert.tlc、模塊目標(biāo)文件grt.tlc、目標(biāo)語言編譯函數(shù)中的指令生成C語言代碼,其中g(shù)rt.tlc文件和ert.tlc文件分別控制著代碼的生成特性,以及單個模塊代碼的生成。因此可以通過修改grt.tlc文件、ert.tlc文件來生成與不同硬件平臺相匹配的專屬代碼。

(4)模板Make文件針對具體的仿真模型進行標(biāo)記和擴展控制控制專屬Make文件的生成。Model.mk文件的作用在于可以實現(xiàn)對代碼編譯鏈接的控制。因此修改Makefile文件或者直接修改Model.mk文件便可以使代碼能夠針對真實的硬件運行環(huán)境進行交叉編譯或在真實硬件平臺上直接進行編譯。

(5)最終生成的程序由運行接口、應(yīng)用程序組件兩個部分構(gòu)成,進一步運行接口根據(jù)是否與目標(biāo)運行環(huán)境有關(guān)可以分為與環(huán)境有關(guān)的組件和與環(huán)境無關(guān)的組件兩個部分。其中與環(huán)境相關(guān)的組件在RTW工具箱提供的rt_main.c文件中實現(xiàn),文件中的主函數(shù)控制著整個仿真程序的定時,創(chuàng)建任務(wù),安裝中斷句柄,啟動數(shù)據(jù)記錄及錯誤檢查。因此可以通過修改rt_main.c文件設(shè)置仿真模型的定時引擎,進而控制整個仿真的執(zhí)行進程。

3.2? ?Simulink模型的實時性擴展方法

因為半實物仿真系統(tǒng)中仿真程序和真實的硬件之間有數(shù)據(jù)交互,所以需要保證二者在運行中保持時間的同步,即要求半實物仿真系統(tǒng)具備實時性能力,而直接通過Simulink開發(fā)的數(shù)學(xué)模型并不具備這樣的性能,因此需要對轉(zhuǎn)換后的Simulink程序進行實時性擴展。

基于Simulink的半實物仿真系統(tǒng)的實時性能可以使用時間同步精度和最小仿真步長兩個參數(shù)來進行表征。時間同步精度為理想仿真時間與實際仿真時間之間的最大差值,如式(1)所示。該值受每一個仿真幀的同步精度和整個仿真過程中的累計同步精度誤差影響,其值越小,表明系統(tǒng)的同步特性越好,反之則越差。最小仿真步長表示整個仿真過程中最大仿真幀的實際計算時間,該值代表了仿真計算的速度,如式(2)所示。要求最小仿真步長應(yīng)小于等于設(shè)置的仿真步長,保證每一個仿真幀的計算都可以在設(shè)置的步長內(nèi)計算完畢。

半實物仿真應(yīng)用按照設(shè)定的步長循環(huán)迭代運算,組合式儀器平臺的硬件已經(jīng)為計算速度提供了保證,因此為進一步提高系統(tǒng)的實時性能,就需要在每個仿真幀計算結(jié)束后進行等待,控制每一個仿真幀的同步精度。但多次延遲等待后,不可避免會產(chǎn)生累計誤差,所以還應(yīng)該從整個仿真過程進行考慮。首先計算實際已仿真時間除以仿真步長的余數(shù),獲取該仿真幀計算的實際消耗時間;然后將仿真步長與計算得到的余數(shù)作差,即可得到模型運行到此時的時間同步精度;最后通過調(diào)用延遲函數(shù),用二者之間的時間差值作為同步等待補償,將每個仿真幀運行結(jié)束后的實際仿真時間和理想仿真時間向前對齊,進行時間同步?;谝陨纤悸?,設(shè)計了實時性擴展框架,其流程如圖4所示。

3.3? ?Simulink模型的實時性擴展實現(xiàn)

若要實現(xiàn)圖4中的實時性擴展功能就需要對自動生成的代碼進行改造后再進行編譯執(zhí)行。通過對RTW代碼自動生成過程的分析,已經(jīng)知道系統(tǒng)是通過rt_main.c文件來實現(xiàn)定時引擎調(diào)用、仿真模型執(zhí)行,以及中斷調(diào)用返回等控制功能的。因此可以對該文件進行適當(dāng)修改,通過C語言實現(xiàn)上述實時性運行框架后再將其加入rt_main.c文件中實現(xiàn)對仿真程序的實時性擴展。同時引入POSIX(可移植操作系統(tǒng)接口)高精度定時器,保證仿真系統(tǒng)的高實時性。實時性擴展實現(xiàn)流程如圖5所示。其中POSIX定時器封裝在getCurrentTime()函數(shù)中,實時性擴展實現(xiàn)的關(guān)鍵代碼如下:

double stepTime=RT_MDL->Timing.stepSize0;

rt_OneStep();

getCurrentTime(&sec,&u_sec);

double fst=sec+u_sec/1000000.0;

double Tsynca=fst%stepTime;

double dely=stepTime-Tsynca;

4? 目標(biāo)程序生成及文件傳輸(Object program generation and file transfer)

4.1? ?目標(biāo)程序生成

對主函數(shù)進行實時性擴展以后,還需要創(chuàng)建主函數(shù)頭文件并引入主函數(shù)中,頭文件中包括實時主函數(shù)文件中需要的宏定義,對調(diào)用的外部函數(shù)進行聲明,以及仿真程序的頭文件Model.h,使實時主函數(shù)可以調(diào)用Model.c中實現(xiàn)的方法,將實時主函數(shù)和仿真程序連接為一個整體。全部改造工作完成后,將程序文件下載至組合式儀器平臺中。但是組合式儀器平臺中并不包含模型運行時的諸多依賴文件,因此還需將模型依賴文件一同打包下載至組合式儀器平臺,并放置在組合式儀器平臺的固定文件目錄中,這些依賴文件包括Matlab提供的文件,POSIX高精度時鐘實現(xiàn)文件,以及組合式儀器平臺各種擴展接口的通信組件。當(dāng)建立的半實物仿真應(yīng)用需要其中的某些文件時,可以直接調(diào)用。下載完畢后還需要繼續(xù)對程序文件進行編譯鏈接才可以生成在組合式儀器平臺上運行的程序,這個過程中最重要的是梳理目標(biāo)程序中需要用的頭文件和C文件,建立Makefile文件,然后通過make指令生成最終的目標(biāo)程序文件,并啟動仿真程序。程序生成流程如圖6所示。

猜你喜歡
實時性自動化
基于規(guī)則實時性的端云動態(tài)分配方法研究
基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實時性仿真
航空電子AFDX與AVB傳輸實時性抗干擾對比
AGV小車在白酒行業(yè)自動化立體倉庫中的應(yīng)用
配電室無人職守集控站在京博石化的運用
配電線路運行資料管理自動化的探討
一種滿足實時性需求的測發(fā)控軟件改進技術(shù)
基于B/S的實時用戶行為檢測管理系統(tǒng)設(shè)計與實現(xiàn)
一種車載Profibus總線系統(tǒng)的實時性分析