999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于RTX,Simulink與LabWindows/CVI的控制系統實時仿真

2014-01-16 05:57:34王婧宇吳中華
電子設計工程 2014年13期
關鍵詞:進程系統

付 瑋,王婧宇,吳中華

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

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

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

1 RTX實時仿真系統與工作原理

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

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

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

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

表1 RTX與WIN32的優先級對照Tab.1 Comparison of the priority between RTX and WIN32

圖1 RTX體系結構Fig.1 Configuration of RTX system

2 仿真系統的架構

2.1 RTW簡介

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

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

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

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

4)在自定義程序創建文件的控制下,由聯編實用程序生成可執行程序。

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

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

2.2 針對RTX編聯文件和目標語言文件的編寫

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

創建rtx.tmf文件,編寫代碼,包括 MAKECMD=nmake,HOST=PC,BUILD=yes,SYS_TARGET_FILE=rtx.tlc 等。 同時,創建編寫相應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的圖形顯示和數據存儲平臺架構

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

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

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

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;}

仿真數據采集和顯示平臺如圖3所示。

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

2.4 RTSS工程高精度始終定時

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

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

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

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

{

rt_OneStep(S);

pdata->Out=rtY.Out1;

}

2.5 LabWindows/CVI與RTSS進程通信

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

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

通過創建相應結構體,放入共享內存中可進行RTSS與WIN32進程通信[4]。該結構體包含了所有需要在WIN32進程中顯示的數據與信號量,結構體部分信息如下:

typedef struct

{

double Out;

int endflag;

...

double Gain;

double time;

}*PDATA;

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

3 仿真數據的實時顯示

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

由于已經編寫過相關的制作文件和目標語言文件,所以可通過RTW直接生成針對RTX的實時代碼。配置相關參數后,生成代碼。產生vehicle_control.rtss文件用于實時仿真系統。

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

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

圖6 仿真結果顯示Fig.6 Manifestation of simulation result

4 結論

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

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

[2]郭朕凱,盧京潮.RTW在某型直升機飛控系統半物理仿真中的應用[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的實時數據采集[J].工業控制計算機,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]陳向群,馬洪兵.現代操作系統[M].第3版.北京:機械工業出版社,2009.

[5]楊建和.基于LabWindows/CVI數據采集系統的設計[D].北京:北京郵電大學,2012.

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

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

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

[9]鄭智琴.Simulink電子通信仿真與應用[M].1版.北京:國防工業出版社,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系統仿真、分析及設計[M].1版.西安:西北工業大學出版社,2006.

猜你喜歡
進程系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 在线无码九区| 欧洲精品视频在线观看| 午夜激情婷婷| 综合网久久| 国产成人超碰无码| 国产在线观看第二页| 国产精品成人啪精品视频| 久久激情影院| 国产精品区网红主播在线观看| 亚洲色无码专线精品观看| 欧美三级不卡在线观看视频| 一级毛片免费的| 亚洲大尺度在线| 国产亚洲精品自在久久不卡| 国产欧美中文字幕| 国产成人高清精品免费软件| 日韩中文精品亚洲第三区| 国产精品v欧美| 中文字幕中文字字幕码一二区| 成人国产小视频| 亚洲精品无码av中文字幕| 国产特级毛片| 亚洲无码高清免费视频亚洲| 国产91丝袜在线观看| 日韩精品无码不卡无码| 久久国产精品影院| 成人亚洲国产| 久久国产精品夜色| 国产午夜看片| 久久久久久久97| 亚洲成人黄色在线观看| 男人天堂伊人网| 国产成人精品一区二区不卡| 亚洲人成网站18禁动漫无码| 日韩国产欧美精品在线| 欧美三级自拍| 国产成人福利在线| 另类欧美日韩| 日本人真淫视频一区二区三区| 真实国产乱子伦高清| av色爱 天堂网| 国产精品视屏| 日韩毛片免费视频| 亚洲一区国色天香| 在线观看免费国产| 国产高潮流白浆视频| 日韩av高清无码一区二区三区| 波多野结衣AV无码久久一区| 亚洲一欧洲中文字幕在线| 性喷潮久久久久久久久| 亚欧成人无码AV在线播放| 狠狠色综合网| 亚洲狼网站狼狼鲁亚洲下载| 青青草原国产一区二区| 亚洲日韩第九十九页| 久久婷婷六月| 91青青在线视频| 野花国产精品入口| 国产网站在线看| 日韩小视频网站hq| 国产成人精品第一区二区| 91口爆吞精国产对白第三集| 国产成人久视频免费| 日韩精品亚洲人旧成在线| 2021国产精品自产拍在线观看| 亚洲大学生视频在线播放| 精品免费在线视频| 欧美午夜视频在线| 亚洲三级影院| 久久综合一个色综合网| 亚洲黄网在线| 伊人久久大香线蕉aⅴ色| 欧美特黄一免在线观看| 91一级片| 亚洲视频a| 在线无码九区| 一级毛片不卡片免费观看| 国产在线观看精品| 天堂网亚洲系列亚洲系列| 亚洲av片在线免费观看| 欧美日韩亚洲综合在线观看| 亚洲av无码片一区二区三区|