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

RTW 技術在輪機模擬器中的應用

2014-01-16 05:57:46高德基盧森微
電子設計工程 2014年14期
關鍵詞:數(shù)據(jù)庫模型

高德基 , 歐 鎮(zhèn),盧森微

(1. 江蘇科技大學 電子信息學院, 江蘇 鎮(zhèn)江 212003 ; 2. 江蘇科技大學 經(jīng)濟管理學院, 江蘇 鎮(zhèn)江 212003)

RTW(Real Time Workshop)技術是一種將Simulink模型自動轉化為代碼的技術。目前,在開發(fā)輪機模擬器的過程中,需要搭建船舶主機的數(shù)學模型。船舶主機的數(shù)學模型非常繁瑣,而市場對產(chǎn)品的需求呈現(xiàn)多樣性、快速性的趨勢, 這使產(chǎn)品開發(fā)面臨著多樣性需求與快速開發(fā)之間的矛盾。其中系統(tǒng)設計軟件( Simulink軟件)是用MATLAB語言建立的一種新型的圖形建模工具,它免去了程序代碼編程帶來的低效與繁瑣,可以方便地建立系統(tǒng)的模型(例如系統(tǒng)被控對象的模型、控制器的模型),通過仿真可以觀察到模型的各種性能,而且,如果模型搭建的不理想,還可以很快地進行反復設計和反復實驗,直到找到比較好的解決方法[1]。但是Simulink運算較慢,不能滿足輪機模擬器實時仿真的要求。應該將所建立的模型轉變?yōu)镃++程序。具體實現(xiàn)時,不需要將設計數(shù)學模型進行編程,可直接將建立的simulink模型通過code generation 工具轉換為可執(zhí)行代碼,下載到存儲器中,這樣大大減輕了軟件工程師的編碼工作量,并且將Simulink模型轉換成的C/C++代碼能脫離MATLAB環(huán)境獨立運行。需要注意的是,要想成功地運行code generation并生成C++代碼,需要在電腦上安裝Microsoft Visual C++ 5.0以上版本的編譯器。

1 Simulink轉化為代碼的過程

RTW轉換代碼的過程包括:

1)分析模型

RTW的程序創(chuàng)建過程首先從對Simulink模塊方框圖的分析開始,包括如下過程:

① 計算仿真和模塊參數(shù)

② 遞推信號寬度和采樣時間

③ 確定模型中各模塊的執(zhí)行次序

④ 計算工作向量的大小(例如S函數(shù)使用的工作向量)

在本階段,RTW首先讀取模型文件(mdoel.mdl)并對其進行編譯,形成模型的中間描述文件"該中間描述文件以ASCll碼的形式進行存儲,其文件名為model.rtw,該文件是下一步驟的輸入信息。mdoel.rtw文件在格式上與simulink模型.mdl文件類似。

2)目標語言編譯器(TLC)生成代碼

在程序創(chuàng)建的第二階段,目標語言編譯器將中間描述文件(mdoel.nw)轉換為目標指定代碼。目標語言編譯器(TagrctLnaguageComnlier)是一種可將上述模型描述文件轉換為指定目標代碼的解釋性編程語言"目標語言編譯器執(zhí)行一個由幾個TLC文件組成的TLC程序,該程序指明了如何根據(jù)mdoel.rtw文件,從模型中生成所需代碼[2]。

TLC程序包括如下文件:

a.系統(tǒng)目標文件(SystemTagrctFile)系統(tǒng)目標文件是主文件或入口點。

b.模塊目標文件(BlockTagretflie)。

c.目標語言編譯器函數(shù)庫。

3)生成自定義的聯(lián)編文件(makeflie)

4)生成可執(zhí)行程序[3]

本文以輪機模擬器的仿真對象——MAN B&W 6L80MC大型低速二沖程渦輪增壓柴油主機為對象來建立了其Simulink模型[4]。其模型如圖1所示。

假定已經(jīng)安裝好了Matlab支持的一個編譯器(如VC),首先需要進行編譯器的配制。在Windows控制臺的窗口下鍵入mex-setup。系統(tǒng)會顯示一個提示選擇編譯器的菜單,選擇當前安裝的編譯器。

圖1 MANB&W6L80MC柴油機Simulink模型Fig.1 MANB&W6L80MC diesel engine’s Simulink model

對于建立好的Simulink模型,首先要在Simulink窗口中打開此模型,為了將該模型通過code generation生成C++代碼,實時仿真需要選擇定步長的仿真算法,所以在轉換之前應進行相應的設置。仿真的控制參數(shù)由Toolscode generationoptions菜單項來選擇。定步長的仿真算法在該對話框下的Solver options下選擇。

Simulink模型中輸出參數(shù)的設置是在該信號線的signal propety對話框中設置,要將所有在VC中用的信號屬性均設置為 ExportedGlobal。

此外,應將code generationoption對話框下的Code Generation中的language選擇目標代碼的生成類型。完成之后,在單擊System target file欄對應的Browse按鈕,來選擇目標代碼生成方式。這里選擇Generic Real-Time Target 下的grt.tlc。以上參數(shù)設置如表1所示。

配置好各項參數(shù)后,就可以轉換為C++代碼了。系統(tǒng)會自動產(chǎn)生一個名為caiyouji_grt_rtw的文件夾,里面包含生成的所有文件。其中caiyouji.cpp為實現(xiàn)模型功能的c++代碼,caiyouji_data.cpp為模型所用到的初始參數(shù)值,caiyouji.h為包含參數(shù)和狀態(tài)變量定義的頭文件,caiyouji_types.h為代碼中所用數(shù)據(jù)類型的聲明,caiyouji_private.h為模型中定義的本地常量和本地變量頭文件。其他相關生成文件:rt_nonfinite.cpp,rt_nonfinite.h, rtwtypes.h, rtmodel.h,rtGetNaN.cpp, rtGetNaN.h,rtGetInf.h等為定義RTW所需的必要參數(shù)。

表1 代碼轉換參數(shù)設置Tab.1 Code transformation parameters settings

2 驗證代碼的正確性

將轉換完的可執(zhí)行C++代碼加入到新建的MFC的對話框的程序中,運行該程序,將模型仿真所產(chǎn)生的柴油機升速曲線數(shù)據(jù)存入.txt文本中,再將該數(shù)據(jù)導入MATLAB中,繪出的圖形與Simulink自身所產(chǎn)生的圖形對比如圖2所示。

圖2 Simulink和代碼繪制的升速曲線對比Fig.2 The contrast of the curve drawed by Simulink and the code

由圖2兩圖中曲線可以看出轉換的代碼是正確的,能夠得出正確的數(shù)據(jù)。

3 C++代碼在虛擬操作系統(tǒng)上的應用

下面以基于virtools的船舶主機虛擬操作系統(tǒng)的駕駛臺操作為例來說明。對于生成的C++代碼, caiyouji_initialize()為系統(tǒng)的初始化函數(shù),caiyouji_step()為系統(tǒng)仿真運行的函數(shù),caiyouji_derivatives()為計算連續(xù)模型的導數(shù)的函數(shù),caiyouji_terminate()為模型中止函數(shù)[5]。生成代碼的模型執(zhí)行流程如圖3所示。

圖3 代碼的執(zhí)行流程Fig.3 Code execution process

其中仿真運算函數(shù)中的一部分如下:

caiyouji_step()

{zhuanshu=caiyouji_X.Integrator_CSTATE; (轉速輸出)

youci=caiyouji_P.Gain4_Gain*caiyouji_B.Gain3;(油尺刻度)

gongyouliang=(0.043* rt_powd_snf(zhuanshu, 0.335) +0.06353 * youci) -0.095255;

(每循環(huán)供油量)

……}

設定各模塊的參數(shù)。本文采用edit box輸入,代碼如下[6]:

UpdateData(TRUE);

caiyouji_P.Gain_Gain=m_edit1;(更新P參數(shù))

caiyouji_P.Gain1_Gain=m_edit2;(更新I參數(shù))

caiyouji_P.Gain2_Gain=m_edit3;(更新D參數(shù))

caiyoujizhuanshu1_P.Integrator_IC=shedingzs; (在線調整積分初值)

將產(chǎn)生的代碼加入到創(chuàng)建好的MFC工程里,做進一步的編程。這里采用ADO的方式訪問數(shù)據(jù)庫。

將各模塊的參數(shù)設定好以后,就可以將代碼所產(chǎn)生的數(shù)據(jù)根據(jù)駕駛臺發(fā)出的信號實時的存入SQL數(shù)據(jù)庫中。例如當程序檢測到數(shù)據(jù)庫表 x3d_output中第3行的數(shù)據(jù)為1時(代表駕駛臺臺的啟動主機按鈕按下),將向數(shù)據(jù)庫表x3d_input第17、18、19行實時存入數(shù)據(jù)(分別代表啟動空氣壓力,柴油機轉速,油門刻度)。以供駕駛臺操作界面調用。存入SQL數(shù)據(jù)庫表x3d_input中的數(shù)據(jù)如圖4所示。

駕駛臺的操作界面讀取數(shù)據(jù)并顯示如圖5所示。

圖4 數(shù)據(jù)庫表x3d_inputFig.4 Database table x3d_input

圖5 啟動空氣壓力表Fig.5 Starting air pressure gauge

另外,柴油機排氣溫度,轉速等均可駕駛臺操作界面讀取SQL數(shù)據(jù)庫中的數(shù)據(jù)來顯示。駕駛臺操作界面上的燈也可根據(jù)SQL數(shù)據(jù)庫中的數(shù)據(jù)亮滅。

4 結 論

文中通過將simulink模型轉變?yōu)镃++程序,并驗證了結果的正確性,實現(xiàn)了對模塊參數(shù)的實時修改,且將Simulink模型所產(chǎn)生的數(shù)據(jù)輸入到了數(shù)據(jù)庫中,以供輪機模擬器中的操作界面調用。這樣既減輕了編寫程序的繁瑣,又滿足了輪機模擬器仿真實時性的要求[7]。與傳統(tǒng)設計方法相比,具有開發(fā)周期短、費用低、效率高的特點。

[1 ] 邱曉林,李天柁,弟宇鳴等.基于MATLAB的動態(tài)模型與系統(tǒng)仿真工具——Simulink3.0/4.x[M].西安:西安交通大學出版社,2003.

[2]蔡毅.基于Matalab/RTW實時仿真系統(tǒng)的設計與研究[D].天津:天津大學,2005.

[3]王振波. 基于Matlab RTW/Engine的建模仿真實驗實驗報告[R] .北京航空航天大學,2010.

[4]甘霏斐. 輪機模擬器柴油主機系統(tǒng)動態(tài)過程實時仿真研究[D] 鎮(zhèn)江:江蘇科技大學, 2005.

[5]常青,邢超,李言俊.基于Matlab/Simulink的交互式實時仿真[J] . 計算機工程與應用, 2003(24):131-132.CHANG Qing, XING Chao, Li Yanjun.An interactive real time simulation based on Matlab/Simulink[J]. Computer Engineering and Application,2003.24:131-132.

[6]王春民,安海忠,王豐貴.基于VC和Simulink的電力電子仿真實驗平臺設計[J].吉林大學學報:信息科學版,2008,26(3):264-268.WANG Chun-min, AN Hai-zhong,WANG Feng-gui. Design of simulation experimental platform for power electronics based on VC and Simulink[J].Journal of Jilin University Information Science Edition,2008,26(3):264-268 .

[7]李長文,趙長祿,張付軍,等.基于Matlab/Simulink及RTW的柴油機瞬態(tài)建模與仿真[J]. 北京理工大學學報, 2004,24(7):579-582.LI Chang-wen, ZHAO Chang-lu, ZHANG Fu-jun, et al.Modeling and simulation of diesel engine under transient conditions based on Matlab/Simulink and RTW[J]. Transactions of Beijing Institute of Technology,2004,24(7): 579-582.

猜你喜歡
數(shù)據(jù)庫模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
3D打印中的模型分割與打包
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 亚洲av综合网| 人妻中文字幕无码久久一区| 免费人成又黄又爽的视频网站| 少妇露出福利视频| 国产精品久久久久久久久kt| 国产三级视频网站| 日韩高清成人| 成年看免费观看视频拍拍| 色国产视频| 欧美国产菊爆免费观看| 香蕉伊思人视频| 久热re国产手机在线观看| 国产尤物视频在线| 欧美在线一级片| 少妇人妻无码首页| 中国毛片网| 亚洲无码A视频在线| 亚洲美女操| 国产精品福利导航| 日本在线欧美在线| 亚洲成a人在线播放www| 亚洲水蜜桃久久综合网站| 亚洲精品国产日韩无码AV永久免费网| 欧美精品亚洲精品日韩专| 天天摸天天操免费播放小视频| 天天躁日日躁狠狠躁中文字幕| 国产人成在线视频| 亚洲高清中文字幕在线看不卡| 人人爽人人爽人人片| 亚洲无码四虎黄色网站| 中文字幕66页| 婷婷综合色| 国产午夜人做人免费视频中文| 99成人在线观看| 日本在线亚洲| 色呦呦手机在线精品| 伊人成人在线| 色婷婷在线影院| 国产精品国产主播在线观看| YW尤物AV无码国产在线观看| 乱人伦视频中文字幕在线| YW尤物AV无码国产在线观看| 素人激情视频福利| 国产成+人+综合+亚洲欧美| 色婷婷久久| 免费人成在线观看成人片 | 久久永久视频| 超薄丝袜足j国产在线视频| 一区二区三区毛片无码| 免费高清a毛片| 91色老久久精品偷偷蜜臀| 性做久久久久久久免费看| 精品国产成人三级在线观看| 久久毛片基地| 久久大香香蕉国产免费网站| 美女被操91视频| 欧美黑人欧美精品刺激| 在线毛片网站| 久久久久亚洲精品成人网| 日本三级欧美三级| 内射人妻无套中出无码| 婷婷亚洲天堂| 国产视频入口| 欧美日韩午夜视频在线观看| 91 九色视频丝袜| 精品亚洲国产成人AV| 亚洲国产中文在线二区三区免| 久久黄色小视频| 免费国产高清视频| 成年免费在线观看| 亚洲AV永久无码精品古装片| 久久婷婷色综合老司机| 国产一区二区三区视频| 日韩性网站| 中文字幕无码av专区久久| 欧美97色| 一本大道AV人久久综合| 亚洲性日韩精品一区二区| 国产永久无码观看在线| 日韩av电影一区二区三区四区| 国产福利一区二区在线观看| 国产精品九九视频|