柴油發(fā)電機組轉速控制半物理仿真
模型代碼同VC程序整合過(guò)程比較簡(jiǎn)單,把3.1節仿真運算模塊所有涉及的源文件添加到VC程序項目中,需要注意2點(diǎn):仿真模塊的源文件添加到VC程序項目后默認應用預編譯頭文件選項,必須手工取消此項設置否則編譯出錯;為了需要在VC程序中調用仿真代碼的接口函數需要進(jìn)行全局聲明。
3.3 VC中仿真系統進(jìn)一步開(kāi)發(fā)與整合
半物理仿真軟件一般由人機界面模塊、數據采集模塊、仿真運算模塊、數據處理模塊組成。MTU396柴油發(fā)電機組轉速控制半物理仿真系統原理如圖3所示。下面簡(jiǎn)單介紹各模塊的實(shí)現過(guò)程。
(1)人機界面模塊的實(shí)現
人機界面模塊構成了VC程序的主線(xiàn)程,主要完成變量的實(shí)時(shí)顯示、參數在線(xiàn)調整、控制參數設置和程序的運行控制等功能,其他模塊都由他來(lái)調度。本系統中涉及的實(shí)時(shí)變量有柴油機轉速、齒桿位移、柴油機負載等,筆者分別設計了轉速表、棒圖、趨勢曲線(xiàn)、調整滑桿、功能按鈕等圖元,充分利用面向對象方法的封裝、繼承等特點(diǎn)實(shí)現整個(gè)圖元庫,從而提高了軟件系統的可修改性、可重用性和可擴展性。
(2)數據采集模塊的實(shí)現
數據采集模塊通過(guò)PCI-1780設備卡同電子調速器進(jìn)行數據交互,電子調速器的供油量信號以脈寬調制(PWM)的形式由PCI-1780設備卡傳給仿真程序,仿真程序通過(guò)仿真計算把柴油機的轉速以頻率信號的形式經(jīng)PCI-1780設備卡反饋給電子調速器。數據采集模塊由廠(chǎng)家提供的設備驅動(dòng)API函數實(shí)現。
(3)仿真運算模塊的實(shí)現
仿真運算模塊在RTW轉化韻仿真模型代碼基礎上還要加入仿真同步控制,以滿(mǎn)足仿真的實(shí)時(shí)性要求。實(shí)時(shí)性的關(guān)鍵就是I/O數據定時(shí)的準確性。眾所周知Windows不是實(shí)時(shí)操作系統而是多任務(wù)的操作系統,采用VC編制的仿真程序很難實(shí)現硬件中斷,采用軟件定時(shí)是比較可行的方法,因為現在的計算機速度都很快,能夠保證一般硬件在回路仿真的實(shí)時(shí)性的需要。
VC中實(shí)現精確定時(shí)基本上有2種方法:①使用多媒體定時(shí)器。他使用單獨線(xiàn)程調用一個(gè)特殊的回調函數優(yōu)先級很高,最小定時(shí)間隔為1ms能夠滿(mǎn)足一般實(shí)時(shí)任務(wù)的定時(shí)要求。②使用高性能計數器。在Windows2000中由硬件實(shí)現高精度的計數器(high-resolution performancecounter),利用他可以獲得高精度的定時(shí)間隔。由于本應用中電子調速器輸出頻率為80 Hz,本文選擇多媒體計時(shí)器實(shí)現仿真控制,定時(shí)間隔選為2 ms。即多媒體定時(shí)器每隔2 ms就在其回調函數中調用模型代碼接口函數rt_On-eStep(模型單步運算),保證整個(gè)仿真的向前推進(jìn),滿(mǎn)足系統實(shí)時(shí)性要求。仿真運算模塊完成模型實(shí)時(shí)計算是整個(gè)系統的核心。
![]() |
(4)數據處理模塊的實(shí)現
數據處理模塊完成仿真數據的實(shí)時(shí)記錄和定時(shí)保存功能。為了滿(mǎn)足數據記錄的實(shí)時(shí)性,仿真程序采用了多線(xiàn)程的技術(shù),將數據定時(shí)保存功能放在獨立的數據保存線(xiàn)程中執行。數據處理線(xiàn)程和主線(xiàn)程的之間的同步由事件信號驅動(dòng)。在C++標準模板庫(STL),deque容器基礎上創(chuàng )建了CPointsCollection類(lèi)來(lái)完成數據的實(shí)時(shí)記錄和定時(shí)保存。采用的策略是:CPointsCollection首先在內存中開(kāi)辟2塊緩沖區。第一緩沖區數據放滿(mǎn)后,數據開(kāi)始存放到第二緩沖區,然后主線(xiàn)程同時(shí)通知數據保存線(xiàn)程將第一緩沖區中的數據采用VC序列化功能保存到硬盤(pán)的文本文件中;等第二緩沖區數據放滿(mǎn)后,數據開(kāi)始存放到第一緩沖區,主線(xiàn)程同時(shí)通知數據保存線(xiàn)程將第二緩沖的數據保存到硬盤(pán)的文本文件中,這樣依次循環(huán)保證數據記錄的實(shí)時(shí)性。為了驗證利用該方法開(kāi)發(fā)的半物理仿真系統的有效性,運行該系統與R082電子調速器物理連接進(jìn)行配機試驗,仿真結果表明仿真系統相應符合理論分析結果。限于篇幅給出空載起動(dòng)運行時(shí)的運行界面。如圖4所示。
![]() |
4 結 語(yǔ)
結合科研實(shí)例詳細介紹一種基于RTW和VisualC++的半物理仿真系統快速開(kāi)發(fā)方法,該方法充分利用Simulink和Visual C++各自的優(yōu)勢。首先利用Simulink可視化的建模方法建立系統的仿真模型,然后通過(guò)RTW將Simulink仿真模型轉化成可移植的嵌入式C++代碼,最后利用Visual C++靈活的可定制性和強大的界面功能實(shí)現完全獨立運行的實(shí)時(shí)半物理仿真系統。該仿真程序在Visual C++環(huán)境下可以對仿真程序方便的進(jìn)行調試a與傳統設計方法相比這種方法具有費用低、效率高的特點(diǎn)。
評論