亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Scilab/Linux RTAI的探空火箭半實物仿真平臺研究①

        2020-11-13 07:15:44李勇波崔建鵬
        固體火箭技術(shù) 2020年5期
        關(guān)鍵詞:驅(qū)動程序實時性內(nèi)核

        李勇波,潘 濤,崔建鵬,張 輝

        (中國航天科技集團(tuán)有限公司四院四十一所,西安 710025)

        0 引言

        半實物仿真,又稱“硬件在環(huán)仿真”,是指將實物部件引入仿真回路,取代相應(yīng)部分的數(shù)學(xué)模型,降低了建模難度,也克服了干擾因素的影響。半實物仿真技術(shù)是在二戰(zhàn)后逐漸發(fā)展起來的,它結(jié)合了數(shù)字仿真的靈活性和物理仿真的精確性,以成本低、見效快、可信度高的優(yōu)勢[1],廣泛應(yīng)用于航空航天、控制系統(tǒng)、武器系統(tǒng)等領(lǐng)域。

        目前,國內(nèi)外主流的半實物仿真平臺[2-7]主要有dSPACE、RT-LAB、RTX、xPCTarget等,它們都是利用商業(yè)軟件Matlab/Simulink進(jìn)行前端建模,在Windows系統(tǒng)下通過RTW自動代碼生成技術(shù)將模型編譯為可在Vxworks/QNX等實時環(huán)境運(yùn)行的可執(zhí)行代碼。這些平臺固然性能強(qiáng)大、接口豐富、穩(wěn)定性高,但存在著源代碼封閉、定制性不強(qiáng)、核心功能更改難度大、軟件升級成本高等不足。近年來,Linux系統(tǒng)發(fā)展迅速,其擁有開放源碼、性能穩(wěn)定、內(nèi)核可裁剪等優(yōu)勢,但實時性不盡人意,不能直接用于半實物仿真,需要對其進(jìn)行實時化改進(jìn)。

        本文研究了在Linux系統(tǒng)下利用開源軟件Scilab/Xcos[8]進(jìn)行前端建模,采用雙內(nèi)核實時化方案搭建Linux RTAI[9]實時運(yùn)行環(huán)境,通過RTAI-LAB[10]將數(shù)學(xué)模型編譯為實時代碼,并下載到搭建好的Linux RTAI實時環(huán)境下運(yùn)行,完成某型探空火箭半實物仿真試驗的技術(shù)方案。所用軟件均為開源軟件,源碼開放可修改且硬件成本低,降低了半實物仿真平臺開發(fā)成本,滿足半實物仿真試驗的實時性和可靠性要求,且二次開發(fā)性強(qiáng),不局限于某一種彈箭。

        1 半實物仿真系統(tǒng)方案

        基于Scilab/Linux RTAI的某型探空火箭半實物仿真系統(tǒng)結(jié)構(gòu)如圖1所示,包含綜控計算機(jī)、仿真計算機(jī)、接口計算機(jī)、仿真設(shè)備、VMIC光纖反射內(nèi)存實時網(wǎng)絡(luò)、參試實物部件等,主要部件功能如下:綜控計算機(jī)是整個仿真系統(tǒng)的控制中心,負(fù)責(zé)仿真節(jié)點資源配置、狀態(tài)監(jiān)控和數(shù)據(jù)存儲,及試驗后數(shù)據(jù)分析。

        圖1 基于Scilab/Linux RTAI的探空火箭半實物仿真系統(tǒng)結(jié)構(gòu)

        仿真計算機(jī)是本文研究的重點,采用上下層結(jié)構(gòu),上層的Scilab/Xcos軟件和Xrtailab軟件運(yùn)行于Linux環(huán)境,分別負(fù)責(zé)模型的建立和變量監(jiān)控、參數(shù)在線調(diào)整;根據(jù)仿真模型自動生成的實時代碼運(yùn)行于下層Linux RTAI實時環(huán)境,主要負(fù)責(zé)火箭仿真模型的實時解算及分離信號輸出、舵機(jī)反饋信號采集、時序信號采集等實時I/O處理。

        接口計算機(jī)負(fù)責(zé)參試實物部件的非實時信號及CAN總線、串口通信流信號處理,如模擬測發(fā)控、仿真數(shù)據(jù)注入、遙測信息解析等,并通過VMIC網(wǎng)絡(luò)實現(xiàn)仿真模型與參試部件的信息交互。

        仿真設(shè)備包括三軸轉(zhuǎn)臺、五軸轉(zhuǎn)臺、舵機(jī)負(fù)載臺等,負(fù)責(zé)通過VMIC網(wǎng)絡(luò)讀取火箭仿真模型實時解算結(jié)果,為火箭測量裝置和執(zhí)行機(jī)構(gòu)提供真實物理環(huán)境。

        VMIC光纖反射內(nèi)存網(wǎng)絡(luò)負(fù)責(zé)實現(xiàn)綜控計算機(jī)、仿真計算機(jī)、接口計算機(jī)和仿真設(shè)備之間的信息交互,具有通信時延小、共享內(nèi)存空間大、傳輸速率高、抗干擾性強(qiáng)的特點。

        參試實物部件主要有舵機(jī)、飛控計算機(jī)、慣性測量組件、GPS等。

        2 仿真平臺設(shè)計方案

        為減少各節(jié)點數(shù)據(jù)丟失,本文采用Linux RTAI實時運(yùn)行環(huán)境+VMIC網(wǎng)絡(luò)傳輸模式,VMIC的傳輸延遲小于700 ns,遠(yuǎn)小于仿真步長1 ms,最大程度減少了數(shù)據(jù)丟失。

        2.1 仿真建模環(huán)境

        CACSD(Computer Aided Control System Design)軟件采用Scilab/Xcos,Scilab是一種由法國學(xué)者開發(fā)的類似于Matlab的開源軟件,Xcos是Scilab的一個工具箱,是Simulink等進(jìn)行圖形化動態(tài)系統(tǒng)建模與仿真的唯一開源代替軟件。半實物仿真是Xcos在模塊開發(fā)和代碼生成的主要應(yīng)用,可通過為接口控制和測量裝置創(chuàng)建特殊的Xcos模塊以進(jìn)行半實物仿真。用戶可自行開發(fā)所需模塊并加載到Xcos模塊庫或下載互聯(lián)網(wǎng)其他用戶的共享模塊。

        2.2 RTAI自動化代碼生成技術(shù)

        RTAI(Real-time application interface)是一套用來寫實時應(yīng)用程序的系統(tǒng)界面。RTAI-LAB是以RTAI為基礎(chǔ)開發(fā)的一套開源實時控制系統(tǒng)工具鏈,提供了RTAI和數(shù)據(jù)采集卡的接口。

        根據(jù)接口模塊的特性自定義RTAI接口模塊;將模塊拖放到利用Scilab/Xcos建立的火箭數(shù)學(xué)仿真模型中,利用RTAI-LAB將模型編譯成可在Linux RTAI實時運(yùn)行環(huán)境執(zhí)行的實時代碼,這些代碼相當(dāng)于實時運(yùn)行環(huán)境的一個實時任務(wù),原理如圖2所示。

        圖2 仿真計算機(jī)結(jié)構(gòu)及原理

        2.3 Linux RTAI實時運(yùn)行環(huán)境

        由于仿真過程中有實物接入仿真回路,故仿真時鐘必須與真實物理時鐘同步,為此需要構(gòu)建Linux RTAI實時運(yùn)行環(huán)境。

        2.3.1 雙內(nèi)核實時化方案

        雙內(nèi)核實時化方案即在普通Linux系統(tǒng)的最底層增加一層RTAI實時核心,實質(zhì)是把Linux內(nèi)核當(dāng)作一個運(yùn)行在RTAI內(nèi)核的普通進(jìn)程,其軟件架構(gòu)如圖3所示。通過Adeos[11]來建立RTAI和Linux的硬件共享環(huán)境,Adeos是在底層硬件與操作系統(tǒng)之間插入的Linux內(nèi)核補(bǔ)丁。

        圖3 Linux RTAI軟件架構(gòu)

        在Linux RTAI軟件架構(gòu)中,RTAI是Adeos的上層域,作為根域的Linux優(yōu)先級低于RTAI,故當(dāng)有實時任務(wù)產(chǎn)生時,Adeos先調(diào)度RTAI處理該任務(wù),Linux根域僅在RTAI沒有實時任務(wù)或中斷需要處理時才會發(fā)生,從而保障Linux RTAI雙核實時運(yùn)行環(huán)境的實時性。

        2.3.2 Linux RTAI實時運(yùn)行環(huán)境的搭建

        搭建Linux RTAI實時運(yùn)行環(huán)境的具體步驟如下:

        (1)準(zhǔn)備工作

        下載Scilab 5.5.2版本,RTAI 5.2版本,對RTAI內(nèi)核進(jìn)行解壓,查看其所支持的Linux Kernel版本并在官網(wǎng)下載,本文選用的Linux Kernel版本為4.9.135。

        (2)雙內(nèi)核法建立Linux RTAI實時運(yùn)行環(huán)境

        主要包括6步,分別是解壓Linux內(nèi)核、給Linux內(nèi)核打補(bǔ)丁、配置Linux內(nèi)核、編譯安裝Linux內(nèi)核、配置安裝RTAI、安裝RTAI-Lab相關(guān)插件。關(guān)鍵代碼為:

        # tar-jxvf linux-4.9.135.tar.gz

        # make mrproper

        # cd/usr/src/linux-4.9.135

        # patch-Npl

        # make menuconfig

        # make-j4

        # make install

        # make modules_install

        (3)實時運(yùn)行環(huán)境的測試

        采用testsuite工具測試所搭建實時環(huán)境的內(nèi)核空間的中斷延遲時間、調(diào)度器延遲時間、調(diào)度器運(yùn)行延遲時間等實時性指標(biāo)[12],如表1所示。

        由表1可知,搭建的Linux RTAI雙核實時環(huán)境的最大時延為17 μs左右,遠(yuǎn)小于普通Linux系統(tǒng)的28 ms[13],降低了3個數(shù)量級,相比Vxworks和Xenomai 也有所縮短,可滿足實時仿真的需求。

        表1 Linux RTAI實時運(yùn)行環(huán)境實時性測試

        2.4 實時接口技術(shù)

        本節(jié)開發(fā)了VMIC的實時驅(qū)動程序和實時接口模塊,實時驅(qū)動程序用于滿足模型與實物間通信對驅(qū)動實時性的要求,實時接口模塊用于VMIC和數(shù)學(xué)模型之間的通信[14]。

        2.4.1 驅(qū)動程序和接口模塊在系統(tǒng)中的作用

        由于普通Linux驅(qū)動的實時性較差,故自行開發(fā)了RTAI下的VMIC驅(qū)動程序,VMIC驅(qū)動程序運(yùn)行于Linux RTAI實時環(huán)境;RTAI自帶的RTAI-lib模塊庫可分為兩類,一類是Scilab realtime lib庫,如可在實時環(huán)境下運(yùn)行的增益模塊gain模塊等;另一類是RTAI realtime lib庫,如示波器模塊rtai_scope等,但缺少VMIC反射內(nèi)存卡與模型通信的模塊,故自行開發(fā)了VMIC實時接口模塊。二者在系統(tǒng)中的位置見圖4。

        圖4 驅(qū)動程序和實時接口模塊在系統(tǒng)中的作用

        2.4.2 VMIC驅(qū)動程序的開發(fā)

        驅(qū)動程序包括頭文件和主程序,頭文件中聲明了驅(qū)動程序用到的重要變量,加載了主函數(shù)調(diào)用的動態(tài)模塊庫等。本文主要定義了3個頭文件:(1)rtvmic.h:包括數(shù)據(jù)偏移量offset、數(shù)據(jù)長度length及緩沖區(qū)buffer;(2)rtvmic_driver.h:定義了變量的數(shù)據(jù)類型及rtvmic設(shè)備信息的結(jié)構(gòu)體等;(3)rtvmic_5565_pci.h:VMIC卡節(jié)點的最大最小地址、DMA通道、擴(kuò)展地址、擴(kuò)展中斷等。

        與用戶訪問內(nèi)存不同,訪問VMIC卡分兩步,第一步是在Linux層,從PCI總線上尋找VMIC設(shè)備,通過編寫rt_vmic_5565_pci.c( )函數(shù)來實現(xiàn);第二步是讀取設(shè)備信息,進(jìn)行RTAI層面的配置,通過編寫rtvmic_driver.c( )函數(shù)來實現(xiàn)。

        (1)rt_vmic_5565_pci.c:定義了靜態(tài)結(jié)構(gòu)體變量rt_ge_5565_pci_table{ }描述VMIC設(shè)備信息,定義了GetPciSpaceSize( )函數(shù)尋找PCI總線空間大小,定義了rt_ge_5565_pci_probe( )函數(shù)讀取VMIC板上的PCI物理地址及寄存器狀態(tài);定義了rt_ge_5565_pci_remove( )函數(shù)清除內(nèi)存的數(shù)據(jù)。

        (2)rtvmic_driver.c:包括5個函數(shù),分別是rt_vmic_open( )函數(shù)用于打開VMIC設(shè)備;rt_vmic_init( )函數(shù)用于初始化驅(qū)動;rt_vmic_ioctrl( )函數(shù)用于控制I/O信號流,寫入是將信號流寫入buffer中,讀取是從buffer中讀取信號流;rt_vmic_exit( )函數(shù)用于退出驅(qū)動;rt_vmic_close( )用于關(guān)閉設(shè)備。

        2.4.3 VMIC實時接口模塊的開發(fā)

        實時接口模塊是Xcos模型的一部分,通過設(shè)備文件實現(xiàn)用戶空間與內(nèi)核空間的通信。自定義接口模塊包括自定義接口函數(shù)和自定義計算函數(shù)。

        接口函數(shù)作為用戶空間與Scilab的交互界面,用于處理用戶接口,指定模塊外觀與類型、數(shù)據(jù)和事件的輸入輸出個數(shù)等,必須用Scilab語言編寫,返回值依賴于輸入標(biāo)記job,以VMIC-PCI5565讀操作為例,其接口函數(shù)格式如下:

        function[x,y,typ]=vmic_read_pci5565(job,arg1,arg2)

        計算函數(shù)定義了模塊在仿真過程中的行為,以不同的方式被Xcos調(diào)用,主要包括初始化(flag=4)、輸出更新(flag=1)、結(jié)束(flag=5)等,flag標(biāo)記了計算函數(shù)必須完成的任務(wù)。采用C語言編寫,以VMIC-PCI5565讀操作為例,主函數(shù)中定義了init函數(shù)、inout函數(shù)、end函數(shù)。計算函數(shù)格式如下:

        #include“scicos_block.h”

        #include “rtmain.h”

        void vmic_read_pci5565(scicos block *block, int flag) init(block); inout(block); end(block); }

        接口函數(shù)和計算函數(shù)定義完畢后,將其封裝成模塊,如圖5所示。當(dāng)模型運(yùn)行時,實時接口模塊調(diào)用RTAI下VMIC驅(qū)動程序,當(dāng)加載VMIC的驅(qū)動程序與設(shè)備文件關(guān)聯(lián)后,接口模塊就可以通過此設(shè)備文件對VMIC反射內(nèi)存卡進(jìn)行操作。

        圖5 自定義VMCI-PCI5565接口模塊

        2.5 節(jié)點同步方式和同步精度

        由綜控計算機(jī)負(fù)責(zé)更新全局時鐘,仿真計算機(jī)、仿真設(shè)備等節(jié)點在每個定時周期內(nèi)讀全局時鐘,并以此更新各節(jié)點時鐘。仿真初始化時,全局時鐘和各節(jié)點時鐘均置零;仿真開始后,全局時鐘由綜控計算機(jī)累加仿真步長,節(jié)點時鐘檢測到全局時鐘不為零時就開始累計仿真步長;由綜控計算機(jī)進(jìn)行判斷,當(dāng)每100 s全局時鐘和節(jié)點時鐘相差大于2 ms時,停止仿真。

        2.6 仿真模型監(jiān)控

        在RTAI的另一個工具包Xrtailab中利用RTAI-LAB提供的RTAI-SCOPE等變量監(jiān)視模塊,對仿真模型進(jìn)行可視化監(jiān)控和在線調(diào)參,如圖6所示。建模主機(jī)和目標(biāo)機(jī)在同一仿真計算機(jī)上,故Xrtailab與目標(biāo)機(jī)的通信方式采用本地通信。

        圖6 Xrtailab監(jiān)控界面

        2.7 硬件方案

        考慮到計算性能和速度及I/O接口的擴(kuò)展能力,仿真計算機(jī)采用研華工控機(jī),四核,主頻2.5 GHz。仿真平臺提供4路模擬量采集輸入、1路開關(guān)信號采集、1路開關(guān)信號輸出和2路RS422串口通信接口。PCI數(shù)據(jù)采集卡采用NI-PCI6229,32通道16位最高100 kHz采樣,16路隔離DI和16路隔離DO;光纖反射內(nèi)存卡采用VMIC-PCI5565,內(nèi)存為256 M。

        3 半實物仿真試驗與分析

        3.1 仿真平臺實時性能

        半實物仿真平臺的實時性直接影響仿真時序控制和仿真結(jié)果的置信度,實時性能參數(shù)有定時精度、單步仿真耗時和時鐘漂移量[15]。對本文搭建的平臺進(jìn)行實時性測試,得到實時性能參數(shù)如圖7所示。

        ( Simulation step size

        由圖7可見,僅有小概率出現(xiàn)的幾次單個仿真步長大于1 ms且不超過1.05 ms;單步仿真耗時不超過0.2 ms,相比文獻(xiàn)[15]的0.35 ms有所縮短,嚴(yán)格小于設(shè)定的1 ms;時鐘漂移最大為25 μs,偏差率滿足要求。以上3個實時性能參數(shù)表明本文設(shè)計的半實物仿真平臺可以滿足仿真步長為1 ms的半實物仿真的實時性要求,實時性良好。

        3.2 仿真結(jié)果

        分別利用本文設(shè)計的半實物仿真平臺和現(xiàn)有的Simulink/RT-LAB半實物仿真平臺對同一型號探空火箭進(jìn)行半實物仿真試驗,仿真結(jié)果對比曲線見圖8。

        由圖8可見,該仿真平臺的半實物仿真結(jié)果與Simulink/RT-LAB仿真平臺下的仿真結(jié)果一致性很好,驗證了所搭建的半實物仿真平臺的可靠性和穩(wěn)定性。

        ( Range and altitude

        4 結(jié)論

        (1)為保證整個半實物仿真平臺的實時性,采用雙內(nèi)核實時化方案搭建了Linux RTAI雙核實時運(yùn)行環(huán)境作為實時代碼的運(yùn)行環(huán)境,并測試了其實時性能,結(jié)果表明其最大時延相比普通Linux系統(tǒng)降低了三個數(shù)量級。

        (2)為保證硬件設(shè)備與模型實時信息交流的實時性,開發(fā)了VMIC-PCI5565的驅(qū)動程序和實時接口模塊,實現(xiàn)了外部硬件和內(nèi)部模型的實時交互。

        (3)測試了整個半實物仿真系統(tǒng)的實時性,實時性相對其他平臺有所提升;成功進(jìn)行了某型探空火箭的半實物仿真試驗,仿真結(jié)果相比Simulink/RT-LAB平臺一致性很好。

        本文搭建的半實物仿真平臺主要有以下優(yōu)勢和特點:(1)實時性有所提升,單步仿真耗時不超過0.2 ms;(2)所用軟件均為開源軟件,擴(kuò)展性強(qiáng)、源代碼開放可修改、開發(fā)成本低;(3)有良好的二次開發(fā)能力,針對但不局限于某一種彈箭,可利用RTAI開源特性,開發(fā)相關(guān)實時接口模塊和驅(qū)動程序,添加相應(yīng)支持模塊即可擴(kuò)展仿真平臺的應(yīng)用范圍。可為火箭、導(dǎo)彈的半實物仿真試驗提供一種新平臺,對火箭、導(dǎo)彈的研制和試驗有重要的價值。

        猜你喜歡
        驅(qū)動程序實時性內(nèi)核
        萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        基于規(guī)則實時性的端云動態(tài)分配方法研究
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實時性仿真
        航空電子AFDX與AVB傳輸實時性抗干擾對比
        一種車載Profibus總線系統(tǒng)的實時性分析
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        日韩久久一级毛片| 日本一区二区三区爆乳| 亚洲精品女人天堂av麻| 国产人妻久久精品二区三区老狼| 一本色道久久hezyo无码| 国产精品兄妹在线观看麻豆| 人妻aⅴ无码一区二区三区| 亚洲第一免费播放区| 97成人精品在线视频| 久久精品无码一区二区日韩av| 欧洲熟妇色xxxx欧美老妇多毛| 亚洲国产精品嫩草影院久久| 国产主播福利一区二区| 日韩精品一区二区三区四区视频| 精品国产一区二区三区av麻| 亚洲成av人片在www鸭子| 老熟妇仑乱视频一区二区| 欧美国产亚洲精品成人a v| 国产精品亚洲综合色区丝瓜| 亚洲男人的天堂av一区| 亚洲av日韩av天堂久久| 日韩在线无| 日韩精品久久不卡中文字幕| 中文字幕一区二区人妻秘书| 国产精品_国产精品_k频道w| 国产熟女亚洲精品麻豆| 久久人妻精品免费二区| 国产97色在线 | 国产| 久久婷婷香蕉热狠狠综合| 人妻无码∧V一区二区| 国产丝袜爆操在线观看| 人妻夜夜爽天天爽三区丁香花| 久久亚洲色www成人欧美| 99久久久无码国产精品动漫| 亚洲精品在线97中文字幕| 人妻精品久久久久中文字幕69| 国产免费一区二区三区在线观看| 白白色发布永久免费观看视频 | 亚洲精品美女中文字幕久久| 久久亚洲av成人无码电影a片| 国产免费久久精品国产传媒|