柴油發(fā)電機(jī)組轉(zhuǎn)速控制半物理仿真
電子調(diào)速器是柴油機(jī)的關(guān)鍵部件之一,當(dāng)實(shí)際柴油機(jī)及其負(fù)載性能發(fā)生變化且與調(diào)速器設(shè)計(jì)參數(shù)不匹配時(shí),柴油發(fā)電機(jī)組就無(wú)法正常工作,這時(shí)需要修改調(diào)速器的控制參數(shù)。另外,電子調(diào)速器在出廠前和維修后都需要進(jìn)行性能試驗(yàn),以設(shè)定合適的控制參數(shù)滿足其調(diào)節(jié)性能。在柴油機(jī)上直接進(jìn)行電子調(diào)速器的參數(shù)整定、性能測(cè)試、維修后性能恢復(fù)既不安全、又不經(jīng)濟(jì)。進(jìn)行半物理仿真是調(diào)速器進(jìn)行實(shí)際配機(jī)試驗(yàn)之前不可缺少的環(huán)節(jié),其工程思路是建立柴油機(jī)發(fā)電機(jī)組全工作范圍動(dòng)態(tài)仿真模型,通過(guò)輸入輸出接口電路與電子調(diào)速器相連構(gòu)成一閉環(huán)控制系統(tǒng),從而完成電子調(diào)速器的性能測(cè)試的相關(guān)試驗(yàn)。
本文引用地址:http://m.butianyuan.cn/article/163282.htm建立柴油發(fā)電機(jī)組的仿真模型是Simulink的強(qiáng)項(xiàng)。由于半物理仿真系統(tǒng)需要連接特定的硬件設(shè)備,仿真程序需要定制人機(jī)界面實(shí)現(xiàn)參數(shù)設(shè)置等功能,這部分功能的實(shí)現(xiàn)對(duì)于Simulink來(lái)講則難以完成,而這恰恰是Visual C++(VC)的強(qiáng)項(xiàng)。VC可視化C++編程環(huán)境具有強(qiáng)大的硬件控制功能和靈活豐富的人機(jī)界面設(shè)計(jì)功能。但直接采用VC建立柴油發(fā)電機(jī)組的仿真模型則難度很大。
針對(duì)這一問(wèn)題本文提供一種從Simulink仿真模型平滑過(guò)渡到Visual C++集成開發(fā)環(huán)境的方法。具體實(shí)現(xiàn)是在Simulink中建立柴油發(fā)電機(jī)組的仿真模型,然后通過(guò)Matlab實(shí)時(shí)工作間(RTW)將Simulink仿真模型轉(zhuǎn)化成可移植的嵌入式C++代碼,最后和Visual C++的項(xiàng)目文件進(jìn)行整合構(gòu)成完全獨(dú)立運(yùn)行的實(shí)時(shí)半物理仿真系統(tǒng)。
2 柴油發(fā)電機(jī)組模型的構(gòu)建及半物理仿真系統(tǒng)結(jié)構(gòu)
柴油機(jī)的建模一般有2種途徑,一種是數(shù)學(xué)機(jī)理建模,一種是試驗(yàn)辨識(shí)建模。數(shù)學(xué)機(jī)理建模主要從柴油機(jī)各部件的原始特性和結(jié)構(gòu)參數(shù)入手,根據(jù)動(dòng)力學(xué)和熱力學(xué)關(guān)系方程建立機(jī)理模型其建模的工作量大,計(jì)算復(fù)雜而且為模型的求解帶來(lái)一定的難度。試驗(yàn)辨識(shí)建模是根據(jù)柴油機(jī)試驗(yàn)臺(tái)試驗(yàn)數(shù)據(jù),采用不同的數(shù)學(xué)擬合方法建立柴油機(jī)的數(shù)學(xué)模型。對(duì)于研究電子調(diào)速器參數(shù)整定以及配機(jī)試驗(yàn),這里關(guān)心柴油機(jī)外部性能參數(shù)的關(guān)系,可以不考慮柴油機(jī)內(nèi)部的熱力過(guò)程。只要柴油發(fā)電機(jī)組仿真模型能較真實(shí)地模擬柴油機(jī)及其負(fù)載特性,則測(cè)試結(jié)果就能較為真實(shí)地反映出電子調(diào)速器的實(shí)際配機(jī)性能。
因此選用試驗(yàn)辨識(shí)建模法,應(yīng)用BP神經(jīng)網(wǎng)絡(luò)建立柴油機(jī)發(fā)電機(jī)組模型。如圖1所示。MTU396柴油發(fā)電機(jī)組轉(zhuǎn)速控制半物理仿真系統(tǒng)的輸人輸出信號(hào),主要有3種類型:
(1)脈寬調(diào)制(PWM)信號(hào),即執(zhí)行機(jī)構(gòu)齒條驅(qū)動(dòng)信號(hào);
(2)頻率信號(hào),即模擬柴油轉(zhuǎn)速脈沖信號(hào);
(3)開關(guān)量信號(hào),即對(duì)電子調(diào)速器的各種控制信號(hào),如啟動(dòng)、停止、增速減速控制等。
本系統(tǒng)選用研華的PCI-1780計(jì)數(shù)器卡,他提供8個(gè)16位計(jì)數(shù)器通道8路數(shù)字量輸出和8路數(shù)字量輸入,可以滿足上述需要。如圖2所示。
![]() |
3 半物理仿真系統(tǒng)的實(shí)現(xiàn)
3.1 利用RTW生成可移植的C++模型代碼
RTW是Matlab圖形建模和仿真環(huán)境Simulink的一個(gè)重要的補(bǔ)充功能模塊,簡(jiǎn)而言之,他是一個(gè)基于Simulink的代碼自動(dòng)生成環(huán)境。他能直接從Simulink的模型中產(chǎn)生優(yōu)化的,可移植的代碼以加速仿真系統(tǒng)開發(fā)的過(guò)程和降低研發(fā)成本。
RTW能把Simulink模型中的某些參數(shù)或信號(hào)設(shè)置為全局變量,模型自動(dòng)生成的可執(zhí)行代碼在目標(biāo)系統(tǒng)中運(yùn)行時(shí),可以方便地與Simulink模型交互,實(shí)現(xiàn)在線參數(shù)調(diào)整和信號(hào)通訊。利用RTW這種功能,可把模型中需要調(diào)整、監(jiān)測(cè)的參數(shù)或者信號(hào)設(shè)置為全局變量。這些變量構(gòu)成后面所述VC仿真程序中模塊間交互的橋梁。
RTW支持多種目標(biāo),所以RTW自動(dòng)生成C++模型代碼有多種選擇,對(duì)于VC而言有3種目標(biāo)可以選擇:通用實(shí)時(shí)(GRT)目標(biāo)、通用實(shí)時(shí)Malloc(GRTM)目標(biāo)、嵌入式目標(biāo)。通用實(shí)時(shí)(GRT)目標(biāo)采用實(shí)時(shí)代碼格式,其內(nèi)存的分配在編譯時(shí)被靜態(tài)聲明。通用實(shí)時(shí)Malloc(GRTM)目標(biāo)采用實(shí)時(shí)Malloc代碼格式,他與實(shí)時(shí)代碼格式非常相似,主要的區(qū)別在于實(shí)時(shí)malloc代碼格式對(duì)內(nèi)存進(jìn)行動(dòng)態(tài)聲明。嵌入式目標(biāo)可按嵌入式代碼格式生C++代碼,在運(yùn)行速度、內(nèi)存使用量和簡(jiǎn)化等方面都進(jìn)行了優(yōu)化。嵌入式代碼采用靜態(tài)內(nèi)存分配方式。本文選擇嵌入式目標(biāo)來(lái)自動(dòng)生成嵌入式代碼。
RTW自動(dòng)生成的代碼分為2部分:一部分是模型代碼;另一部分是代碼運(yùn)行界面(run-time interface)。這些代碼被切分成很多源代碼文件,為了管理這個(gè)龐大的項(xiàng)目,RTW還為其自動(dòng)生成一個(gè)make文件。用VC打開make文件并編譯,然后將此項(xiàng)目中引用的所有源文件從Matlab安裝目錄中復(fù)制出來(lái),并和模型代碼共同組成仿真模型代碼。
評(píng)論