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

        ?

        基于RTX,Simulink與LabWindows/CVI的控制系統(tǒng)實時仿真

        2014-01-16 05:57:34王婧宇吳中華
        電子設計工程 2014年13期
        關(guān)鍵詞:共享內(nèi)存目標語言實時性

        付 瑋,王婧宇,吳中華

        (西北工業(yè)大學 陜西 西安 710129)

        控制系統(tǒng)的穩(wěn)定性、可靠性是系統(tǒng)能否安全運行的基本前提。隨著當今先進控制技術(shù)的不斷更新與發(fā)展,控制系統(tǒng)變得越來越復雜,控制系統(tǒng)的仿真也提出了更高的要求,不僅要求計算機操作系統(tǒng)具有強大的通用功能,還要求其具有優(yōu)秀的實時性。

        因此,本文提出一種基于RTX+Matlab+LabWindows/CVI的仿真平臺架構(gòu)。對某汽車行駛控制系統(tǒng)進行了實時仿真。建立仿真模型后,通過自主研發(fā)Real-Time Work Shop內(nèi)相關(guān)編聯(lián)文件與目標語言文件,可將simulink仿真模型轉(zhuǎn)換成可移植的RTX代碼,該程序具有高實時性,可達到預期實時要求。數(shù)據(jù)顯示等非實時任務由Win32進程完成,該程序由LabWindows/CVI編寫,在RTSS進程和Win32進程間建立IPC通信和同步機制,以實現(xiàn)兩者之間的數(shù)據(jù)交換、互斥與同步。

        1 RTX實時仿真系統(tǒng)與工作原理

        RTX采用HAL擴展技術(shù)為Windows操作系統(tǒng)安裝實時子系統(tǒng)RTSS。為了保證RTSS線程的實時性,RTX增加了在Windows和RTX線程間的中斷隔離,當RTSS線程運行時,屏蔽所有Windows控制中斷。RTSS有其獨立的進程線程管理、進程間通訊、中斷、時鐘、I/O管理機制。具有128個優(yōu)先級,對應Win32的32個線程優(yōu)先級[1]。

        RTSS的線程優(yōu)先于所有Windows線程,提供了對IRQ、I/O、內(nèi)存的精準控制,能確保實時任務的可靠執(zhí)行。通過高速的IPC通信和同步機制,RTX進程可方便地實現(xiàn)與Windows應用程序之間的數(shù)據(jù)交換[1]。RTX只需安裝在Windows系統(tǒng)下,減少了仿真成本,而且RTX和Windows系統(tǒng)采用進程間通信,大大提高了實時通信的穩(wěn)定性。

        同時RTX擁有3個精度達1 ms的時鐘,最小定時周期可分別達到100、200、500 ms。事件的精確執(zhí)行在實時系統(tǒng)中是相當嚴格的。RTX內(nèi)核利用搶占式調(diào)度方式,在保證臨界線程的上下文切換的同時還確保線程切換時間保持在500 ns到2μs范圍內(nèi)。

        RTX的內(nèi)存分配都在非分頁內(nèi)存池內(nèi),以保證其進程在運行過程中不會被置換出內(nèi)存,從而確保了對外部事件響應的確定性,避免了使用虛擬內(nèi)存因缺頁產(chǎn)生的延遲。RTSS運行時只占用250 kB的內(nèi)存,內(nèi)存占用率極低[1]。同時,RTX對Windows系統(tǒng)在Ring 0級進行了穩(wěn)定的、高性能的實時擴展,同時支持30 kHz持續(xù)穩(wěn)定的中斷觸發(fā)。實時進程運行時,屏蔽一切Windows中斷和錯誤報告,由此去掉了由線程切換、中斷調(diào)度而產(chǎn)生的延遲[1]。

        表1 RTX與WIN32的優(yōu)先級對照Tab.1 Comparison of the priority between RTX and WIN32

        圖1 RTX體系結(jié)構(gòu)Fig.1 Configuration of RTX system

        2 仿真系統(tǒng)的架構(gòu)

        2.1 RTW簡介

        RTW(Real-Time Workshop)是MathWorks公司提供的基于MATLAB和Simulink的一種工具,它能直接從Simulink的模型中產(chǎn)生針對應用優(yōu)化的、可移植的代碼,并根據(jù)目標配置自動生成多種環(huán)境下的程序[2,6,11]。該生成過程包含如下4個步驟:

        1)創(chuàng)建、分析Simulink模型并對模型描述文件進行編譯。

        2)通過目標語言編譯器TLC轉(zhuǎn)換模型并生成代碼。

        3)程序聯(lián)編文件(makeflie)的生成。

        4)在自定義程序創(chuàng)建文件的控制下,由聯(lián)編實用程序生成可執(zhí)行程序。

        由于RTW暫時還沒有支持RTX的目標語言文件與相關(guān)編聯(lián)文件,所以該功能需根據(jù)此流程自行編寫。

        圖2 RTW生成C代碼流程圖Fig.2 Ccode generation process in RTW

        2.2 針對RTX編聯(lián)文件和目標語言文件的編寫

        通過編寫相關(guān)的model.tlc與model.tmf文件,配置相關(guān)參數(shù),生成針對RTX相應的實時性代碼。其中,model.tlc文件存儲simulink的相關(guān)配置信息與目標語言信息等參數(shù),model.tmf則為生成文件model.mk的模板,RTW根據(jù)要求對model.tmf中的參數(shù)進行設置,最終生成model.mk與model.mak文件[9]。其中model.mak文件為makefile制作文件,可在VC6.0中直接打開并轉(zhuǎn)換成.dsp工程文件。

        創(chuàng)建rtx.tmf文件,編寫代碼,包括 MAKECMD=nmake,HOST=PC,BUILD=yes,SYS_TARGET_FILE=rtx.tlc 等。 同時,創(chuàng)建編寫相應rtx.tlc文件,部分注釋及代碼如下:

        %%SYSTLC:Generic Real-Time Target

        %% TMF:rtx_default_tmf MAKE:make_rtw EXTMODE:ext_comm

        %%SYSTLC:Create Visual C/C++Solution File for the"rtx"target

        %% TMF:rtx.tmf MAKE:make_rtw EXTMODE:ext_comm

        %%$RCSfile:rtx.tlc,v$

        ...

        rtwoptions (9).makevariable ='TMW_EXTMODE_TESTING';

        rtwoptions(9).tooltip= ['Internal testing flag for Simulink external mode'];

        2.3 LabWindows/CVI的圖形顯示和數(shù)據(jù)存儲平臺架構(gòu)

        使用LabWindows/CVI構(gòu)架平臺,它是National Instruments公司推出的交互式C語言開發(fā)平臺。他的集成化開發(fā)環(huán)境、交互式編程方法、函數(shù)面板和豐富的庫函數(shù)大大增加了語言的功能,為熟悉C語言的開發(fā)人員提供了一個理想的軟件開發(fā)平臺[7-8]。

        該平臺系統(tǒng)在LabWindows/CVI環(huán)境下運行,應用控件包括NUMERIC控件,COMMAND BUTTON控件,LED控件,AsyncTimer異步時鐘控件,STRIPCHART控件等。

        該平臺使用多媒體定時器實現(xiàn)實時數(shù)據(jù)采集與顯示,它使用自己單獨的線程來調(diào)用一個回調(diào)函數(shù),并且該線程優(yōu)先級高,每隔一定時間就發(fā)送一個消息而不管其它消息是否已執(zhí)行完,采用多媒體定時器可以達到1ms的最小時間精度[2,10,3]。所以,利用多媒體定時器產(chǎn)生定時中斷來顯示數(shù)據(jù)完全滿足仿真系統(tǒng)的實時性要求。定時器中段代碼如下:

        int CVICALLBACK TIME(int panel,int control,int event,void

        *callbackData,int eventData1, int eventData2)

        {

        if(pdata->endflag==0)

        {SetCtrlVal(panelHandle,PANEL_NUMERIC1,pdata->Out);PlotStripChart(panelHandle,PANEL_STRIPCHART,&(pdata->Out),1,0,0,VAL_DOUBLE)

        ;

        number++;

        SetCtrlVal(panelHandle,PANEL_NUMERIC1_2,number);}

        else SetAsyncTimerAttribute (timerhandle,ASYNC_ATTR_ENABLED,0);

        return 0;}

        仿真數(shù)據(jù)采集和顯示平臺如圖3所示。

        圖3 仿真數(shù)據(jù)采集和顯示平臺Fig.3 Data collection and manifestation platform

        2.4 RTSS工程高精度始終定時

        通過編寫相關(guān)文件后,可通過RTW直接生成高實時性的RTSS代碼,該代碼中使用RtCreateTimer()函數(shù)創(chuàng)建定時器,使用RtSetTimerRelative()函數(shù)設置定時器的時間相關(guān)參數(shù),精度可以達到0.1微秒(1×10-7s)。將任務放在定時器中斷函數(shù)中即可實現(xiàn)仿真的每一幀的高精度時間控制。大致程序如下:

        RtCreateTimer(…,TimerHander,…);//創(chuàng)建時鐘

        RtSetTimerRelative(…,FrameTime,…);//設置時鐘參數(shù)

        Void RTFCNDCL TimerHandler(PVOID context)//定時中斷函數(shù)

        {

        rt_OneStep(S);

        pdata->Out=rtY.Out1;

        }

        2.5 LabWindows/CVI與RTSS進程通信

        RTSS支持IPC對象,這使得實時程序與非實時程序之間的通訊和同步成為可能[1]。RTSS與WIN32進程通信可使用共享內(nèi)存(Shared Memory Object)、信號量(Semaphore Object)、事件(Event Objects)和互斥(Mutex Objects)。與Win32下IPC不同的是RTSS的IPC對象都分配在不分頁內(nèi)存池,而且支持等待的優(yōu)先級。當有多個不同優(yōu)先級的RTSS線程在等待,系統(tǒng)可以保證按照線程優(yōu)先級的高低來獲取資源[1]。仿真流程圖如圖4所示。

        圖4 仿真流程圖Fig.4 Process diagram of simulation

        通過創(chuàng)建相應結(jié)構(gòu)體,放入共享內(nèi)存中可進行RTSS與WIN32進程通信[4]。該結(jié)構(gòu)體包含了所有需要在WIN32進程中顯示的數(shù)據(jù)與信號量,結(jié)構(gòu)體部分信息如下:

        typedef struct

        {

        double Out;

        int endflag;

        ...

        double Gain;

        double time;

        }*PDATA;

        RTX提供了特有的API函數(shù)RtCreateSharedMemory()和RtOpenSharedMemory()來創(chuàng)建和打開共享內(nèi)存與Win32進程進行數(shù)據(jù)交互[5]。本仿真程序通過在Win32進程中創(chuàng)建共享內(nèi)存并且在RTSS進程中打開共享內(nèi)存進行數(shù)據(jù)交互。并且通過 RtCreateEvent()與 RtWaitForSingleObject()進行 Win32進程與RTSS進程之間相互通信。

        3 仿真數(shù)據(jù)的實時顯示

        首先搭建某汽車行駛控制系統(tǒng)仿真模型,如圖5所示。

        由于已經(jīng)編寫過相關(guān)的制作文件和目標語言文件,所以可通過RTW直接生成針對RTX的實時代碼。配置相關(guān)參數(shù)后,生成代碼。產(chǎn)生vehicle_control.rtss文件用于實時仿真系統(tǒng)。

        首先打開仿真數(shù)據(jù)采集和顯示平臺,進行與RTSS進程的鏈接,通過共享內(nèi)存與RTSS通信。若連接成功,則可設置仿真時間與增益等相關(guān)參數(shù)。仿真步長設置為0.02 s,仿真時間設置為20 s。

        圖5 汽車行駛控制仿真模型Fig.5 Simulation model of vehicle control

        圖6 仿真結(jié)果顯示Fig.6 Manifestation of simulation result

        4 結(jié)論

        仿真結(jié)果表明,該真系統(tǒng)具有相對較高的實時性,充分滿足了該汽車行駛控制系統(tǒng)仿真的實時性要求。與在WIN32環(huán)境下進行的Simulink仿真結(jié)果對比后可得出,該實時仿真平臺能精確地實時顯示仿真數(shù)據(jù),有效的避免了因Simulink運行在Windows中的低實時性。對于一般實時仿真系統(tǒng)來說,該系統(tǒng)可以非常好的滿足實時性要求。

        [1]張福凱.基于RTX的無人機飛行控制系統(tǒng)實時仿真[D].西安:西北工業(yè)大學,2013.

        [2]郭朕凱,盧京潮.RTW在某型直升機飛控系統(tǒng)半物理仿真中的應用[J].火力與指揮控制,2009,34(12):160-165.GUO Zhen-kai,LU Jing-chao.Application of RTW in a helicopter flight control system hardware-in-the-loop simulation[J].Fire Control&Command Control,2009,34(12):160-165.

        [3]于強,何寧,李亮,等.Windows下基于LabWindows/CVI 8.0的實時數(shù)據(jù)采集[J].工業(yè)控制計算機,2009,22(10):66-67.YU Qiang,HE Ning,LI Liang,et al.Real-time data acquisition based on Labwindows/CVI 8.0 under Windows[J].Industrial Control Computer,2009,22(10):66-67.

        [4]陳向群,馬洪兵.現(xiàn)代操作系統(tǒng)[M].第3版.北京:機械工業(yè)出版社,2009.

        [5]楊建和.基于LabWindows/CVI數(shù)據(jù)采集系統(tǒng)的設計[D].北京:北京郵電大學,2012.

        [6]陳永春.從Matlab/Simulink模型到代碼實現(xiàn)[M].1版.北京:清華大學出版社,2002.

        [7]史君成,張淑偉,律淑珍.LabWindows虛擬儀器設計[M].北京:國防工業(yè)出版社,2007.

        [8]孫曉云.基于LabWindows/CVI的虛擬儀器設計與應用[M].第2版.北京:電子工業(yè)出版社,2010.

        [9]鄭智琴.Simulink電子通信仿真與應用[M].1版.北京:國防工業(yè)出版社,2002.

        [10]王曉東,尚耀星,吳帥.基于LabWindows/CVI和RTX的實時測控軟件設計[J].科技信息,2008(19):397-398.WANG Xiao-dong,SHANG Yao-xing,WU Shuai.Design of real-time control software with LabWindows/CVI and RTX[J].Science Technology Information,2008(19):397-398.

        [11]賈秋玲,袁冬莉,欒云鳳.基于MATLAB7.x/Simulink/stateflow系統(tǒng)仿真、分析及設計[M].1版.西安:西北工業(yè)大學出版社,2006.

        猜你喜歡
        共享內(nèi)存目標語言實時性
        基于規(guī)則實時性的端云動態(tài)分配方法研究
        通過QT實現(xiàn)進程間的通信
        基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡實時性仿真
        教材插圖在英語課堂閱讀教學中的運用及實例探討
        文理導航(2017年25期)2017-09-07 15:38:18
        基于PCI總線的多處理器協(xié)同機制研究
        科技風(2017年20期)2017-07-10 18:56:06
        航空電子AFDX與AVB傳輸實時性抗干擾對比
        二語習得過程中的石化現(xiàn)象分析
        QNX下PEX8311多路實時數(shù)據(jù)采集的驅(qū)動設計
        電子世界(2014年21期)2014-04-29 06:41:36
        一種車載Profibus總線系統(tǒng)的實時性分析
        一種高效RTAI 共享內(nèi)存管理層的研究與實現(xiàn)*
        欧美成人久久久| 国产sm调教视频在线观看| 婷婷亚洲综合五月天小说| 日韩在线不卡一区在线观看| 青青草视频免费在线播放| 久久亚洲av成人无码国产最大| 天堂国精产品2023年| 九九精品无码专区免费| 亚洲美女主播一区二区| 一区二区三区视频在线观看| 亚洲裸男gv网站| 亚洲丁香婷婷综合久久小说| 久久这里只有精品黄色| 美女用丝袜脚玩我下面| 人妻少妇精品无码专区动漫| 亚洲影院丰满少妇中文字幕无码| 国产精品一区二区久久毛片| 激情精品一区二区三区| 国产午夜鲁丝片av无码| 国产无套露脸| 亚洲国产综合久久精品| 成人日韩熟女高清视频一区| 精品亚洲成a人在线观看青青| 亚洲精品成人av一区二区| av人妻在线一区二区三区| 日本精品少妇一区二区三区| 又污又黄又无遮挡的网站| 日本在线免费精品视频| 国产av一区二区亚洲精品| 国产福利精品一区二区| 毛片毛片免费看| 91亚洲夫妻视频网站| 久久天堂av综合合色| 欧美黑人巨大xxxxx| 久久久精品人妻一区二区三区日本| 国产成人精品日本亚洲i8| 亚洲欧美综合区自拍另类| 乱中年女人伦av三区| 国产中文字幕一区二区视频| 牛牛在线视频| 国产一区曰韩二区欧美三区|