關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 柴油發(fā)電機組轉(zhuǎn)速控制半物理仿真

柴油發(fā)電機組轉(zhuǎn)速控制半物理仿真

作者: 時間:2010-02-02 來源:網(wǎng)絡(luò) 收藏
3.2 模型代碼和VC程序的集成

本文引用地址:http://m.butianyuan.cn/article/163282.htm

模型代碼同VC程序整合過程比較簡單,把3.1節(jié)運算模塊所有涉及的源文件添加到VC程序項目中,需要注意2點:模塊的源文件添加到VC程序項目后默認(rèn)應(yīng)用預(yù)編譯頭文件選項,必須手工取消此項設(shè)置否則編譯出錯;為了需要在VC程序中調(diào)用代碼的接口函數(shù)需要進行全局聲明。

3.3 VC中仿真系統(tǒng)進一步開發(fā)與整合

仿真軟件一般由人機界面模塊、數(shù)據(jù)采集模塊、仿真運算模塊、數(shù)據(jù)處理模塊組成。MTU396仿真系統(tǒng)原理如圖3所示。下面簡單介紹各模塊的實現(xiàn)過程。

(1)人機界面模塊的實現(xiàn)

人機界面模塊構(gòu)成了VC程序的主線程,主要完成變量的實時顯示、參數(shù)在線調(diào)整、參數(shù)設(shè)置和程序的運行等功能,其他模塊都由他來調(diào)度。本系統(tǒng)中涉及的實時變量有、齒桿位移、機負(fù)載等,筆者分別設(shè)計了表、棒圖、趨勢曲線、調(diào)整滑桿、功能按鈕等圖元,充分利用面向?qū)ο蠓椒ǖ姆庋b、繼承等特點實現(xiàn)整個圖元庫,從而提高了軟件系統(tǒng)的可修改性、可重用性和可擴展性。

(2)數(shù)據(jù)采集模塊的實現(xiàn)

數(shù)據(jù)采集模塊通過PCI-1780設(shè)備卡同電子調(diào)速器進行數(shù)據(jù)交互,電子調(diào)速器的供油量信號以脈寬調(diào)制(PWM)的形式由PCI-1780設(shè)備卡傳給仿真程序,仿真程序通過仿真計算把柴油機的轉(zhuǎn)速以頻率信號的形式經(jīng)PCI-1780設(shè)備卡反饋給電子調(diào)速器。數(shù)據(jù)采集模塊由廠家提供的設(shè)備驅(qū)動API函數(shù)實現(xiàn)。

(3)仿真運算模塊的實現(xiàn)

仿真運算模塊在RTW轉(zhuǎn)化韻仿真模型代碼基礎(chǔ)上還要加入仿真同步控制,以滿足仿真的實時性要求。實時性的關(guān)鍵就是I/O數(shù)據(jù)定時的準(zhǔn)確性。眾所周知Windows不是實時操作系統(tǒng)而是多任務(wù)的操作系統(tǒng),采用VC編制的仿真程序很難實現(xiàn)硬件中斷,采用軟件定時是比較可行的方法,因為現(xiàn)在的計算機速度都很快,能夠保證一般硬件在回路仿真的實時性的需要。

VC中實現(xiàn)精確定時基本上有2種方法:①使用多媒體定時器。他使用單獨線程調(diào)用一個特殊的回調(diào)函數(shù)優(yōu)先級很高,最小定時間隔為1ms能夠滿足一般實時任務(wù)的定時要求。②使用高性能計數(shù)器。在Windows2000中由硬件實現(xiàn)高精度的計數(shù)器(high-resolution performancecounter),利用他可以獲得高精度的定時間隔。由于本應(yīng)用中電子調(diào)速器輸出頻率為80 Hz,本文選擇多媒體計時器實現(xiàn)仿真控制,定時間隔選為2 ms。即多媒體定時器每隔2 ms就在其回調(diào)函數(shù)中調(diào)用模型代碼接口函數(shù)rt_On-eStep(模型單步運算),保證整個仿真的向前推進,滿足系統(tǒng)實時性要求。仿真運算模塊完成模型實時計算是整個系統(tǒng)的核心。

(4)數(shù)據(jù)處理模塊的實現(xiàn)

數(shù)據(jù)處理模塊完成仿真數(shù)據(jù)的實時記錄和定時保存功能。為了滿足數(shù)據(jù)記錄的實時性,仿真程序采用了多線程的技術(shù),將數(shù)據(jù)定時保存功能放在獨立的數(shù)據(jù)保存線程中執(zhí)行。數(shù)據(jù)處理線程和主線程的之間的同步由事件信號驅(qū)動。在C++標(biāo)準(zhǔn)模板庫(STL),deque容器基礎(chǔ)上創(chuàng)建了CPointsCollection類來完成數(shù)據(jù)的實時記錄和定時保存。采用的策略是:CPointsCollection首先在內(nèi)存中開辟2塊緩沖區(qū)。第一緩沖區(qū)數(shù)據(jù)放滿后,數(shù)據(jù)開始存放到第二緩沖區(qū),然后主線程同時通知數(shù)據(jù)保存線程將第一緩沖區(qū)中的數(shù)據(jù)采用VC序列化功能保存到硬盤的文本文件中;等第二緩沖區(qū)數(shù)據(jù)放滿后,數(shù)據(jù)開始存放到第一緩沖區(qū),主線程同時通知數(shù)據(jù)保存線程將第二緩沖的數(shù)據(jù)保存到硬盤的文本文件中,這樣依次循環(huán)保證數(shù)據(jù)記錄的實時性。為了驗證利用該方法開發(fā)的半仿真系統(tǒng)的有效性,運行該系統(tǒng)與R082電子調(diào)速器物理連接進行配機試驗,仿真結(jié)果表明仿真系統(tǒng)相應(yīng)符合理論分析結(jié)果。限于篇幅給出空載起動運行時的運行界面。如圖4所示。

4 結(jié) 語

結(jié)合科研實例詳細(xì)介紹一種基于RTW和VisualC++的半物理仿真系統(tǒng)快速開發(fā)方法,該方法充分利用Simulink和Visual C++各自的優(yōu)勢。首先利用Simulink可視化的建模方法建立系統(tǒng)的仿真模型,然后通過RTW將Simulink仿真模型轉(zhuǎn)化成可移植的嵌入式C++代碼,最后利用Visual C++靈活的可定制性和強大的界面功能實現(xiàn)完全獨立運行的實時半物理仿真系統(tǒng)。該仿真程序在Visual C++環(huán)境下可以對仿真程序方便的進行調(diào)試a與傳統(tǒng)設(shè)計方法相比這種方法具有費用低、效率高的特點。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉