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僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 国产成人精品高清不卡在线| 国产微拍一区二区三区四区| 国产白浆一区二区三区视频在线| 亚洲AV无码久久精品色欲| 欧美激情第一区| 国产99视频精品免费观看9e| 伦伦影院精品一区| 久久国产拍爱| 中文字幕不卡免费高清视频| 亚洲第一区精品日韩在线播放| 亚洲成a人片77777在线播放| 亚洲精品视频网| 亚洲愉拍一区二区精品| 永久毛片在线播| 在线看免费无码av天堂的| 99免费在线观看视频| 激情乱人伦| 国产午夜看片| 99中文字幕亚洲一区二区| 国产区人妖精品人妖精品视频| 色综合天天视频在线观看| 99在线观看精品视频| 欧美中文字幕在线播放| 亚洲成人黄色在线观看| 中文字幕免费播放| 欧美日韩在线成人| 国产XXXX做受性欧美88| 精品国产成人三级在线观看| 国产在线视频导航| 偷拍久久网| 欧美亚洲一区二区三区在线| 人妻一本久道久久综合久久鬼色| 免费一级毛片| 色精品视频| 成人国产一区二区三区| 被公侵犯人妻少妇一区二区三区| 国产情侣一区二区三区| 伊人成人在线| 久久久精品国产亚洲AV日韩| 91精品国产自产在线老师啪l| 婷婷色中文| 成人一区专区在线观看| 国产91特黄特色A级毛片| 国产在线麻豆波多野结衣| 欧美一级夜夜爽www| 精品福利网| 免费毛片视频| 97视频精品全国免费观看| 成人免费一级片| 国产毛片网站| 在线观看视频一区二区| 四虎亚洲国产成人久久精品| 国产成人精彩在线视频50| 福利小视频在线播放| 九色视频最新网址 | 欧洲成人在线观看| 真实国产乱子伦高清| 久久无码av三级| 亚洲综合二区| 99热6这里只有精品| 久久黄色免费电影| 日韩欧美国产中文| 丝袜美女被出水视频一区| 在线精品自拍| 99视频全部免费| 美女免费精品高清毛片在线视| 一级毛片网| 五月综合色婷婷| 啊嗯不日本网站| 99re热精品视频中文字幕不卡| 亚洲精品第1页| 国产美女无遮挡免费视频| 国产精品欧美激情| 亚洲热线99精品视频| 在线va视频| 精品国产成人国产在线| 人人澡人人爽欧美一区| 国产老女人精品免费视频| 亚洲一区波多野结衣二区三区| 国产成人无码AV在线播放动漫 | 国产女同自拍视频| 无码高潮喷水专区久久|