張敬南,張 強(qiáng)
(哈爾濱工程大學(xué)自動(dòng)化學(xué)院,黑龍江哈爾濱 150001)
我校電氣工程實(shí)驗(yàn)教學(xué)中心下設(shè)的電力拖動(dòng)類課程包括“電機(jī)學(xué)”、“電機(jī)拖動(dòng)基礎(chǔ)”和“電力拖動(dòng)控制系統(tǒng)”等專業(yè)主干課程。該類課程具有理論抽象、教學(xué)難度大、實(shí)踐性強(qiáng)和實(shí)驗(yàn)成本高等特點(diǎn)。針對(duì)課程特點(diǎn),我們采用計(jì)算虛擬仿真技術(shù)進(jìn)行了教學(xué)方法和實(shí)驗(yàn)手段的改革探索,開發(fā)了電力拖動(dòng)虛擬仿真實(shí)驗(yàn)系統(tǒng)[1,2]。通過在電氣工程及其自動(dòng)化專業(yè)教學(xué)中的應(yīng)用,彌補(bǔ)了實(shí)驗(yàn)設(shè)備、場(chǎng)地、時(shí)間等諸多客觀因素對(duì)實(shí)驗(yàn)數(shù)量和質(zhì)量的制約。
我們開發(fā)的電力拖動(dòng)虛擬仿真實(shí)驗(yàn)系統(tǒng)將編程軟件、仿真軟件、數(shù)據(jù)和文字處理軟件相結(jié)合,集人機(jī)交互、實(shí)驗(yàn)虛擬仿真、實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)和實(shí)驗(yàn)文本生成為一體的系統(tǒng)。其功能結(jié)構(gòu)圖如圖1所示。
圖1 電力拖動(dòng)虛擬仿真實(shí)驗(yàn)系統(tǒng)功能結(jié)構(gòu)圖
系統(tǒng)采用Visual C++編制的人機(jī)交互界面,通過界面操作可以完成實(shí)驗(yàn)虛擬操作、實(shí)驗(yàn)仿真、實(shí)驗(yàn)數(shù)據(jù)管理和實(shí)驗(yàn)報(bào)告生成等功能。
系統(tǒng)的實(shí)驗(yàn)操作平臺(tái)基于Visual C++及第三方控件編制的GUI界面。實(shí)驗(yàn)仿真系統(tǒng)結(jié)合Simulink仿真軟件編制了虛擬實(shí)驗(yàn)仿真體系。仿真系統(tǒng)與實(shí)驗(yàn)操作平臺(tái)的交互通過Matlab引擎控制技術(shù)和數(shù)據(jù)文件實(shí)現(xiàn)的。基于Visual C++程序和MS Access數(shù)據(jù)文件構(gòu)成了實(shí)驗(yàn)數(shù)據(jù)管理系統(tǒng),通過數(shù)據(jù)管理系統(tǒng)可以實(shí)現(xiàn)實(shí)驗(yàn)曲線的復(fù)現(xiàn)。實(shí)驗(yàn)報(bào)告生成系統(tǒng)是根據(jù)實(shí)驗(yàn)人員在Visual C++編制的實(shí)驗(yàn)報(bào)告界面填寫的信息和實(shí)驗(yàn)數(shù)據(jù),通過COM技術(shù)調(diào)用OLE自動(dòng)化對(duì)象技術(shù)進(jìn)行MS Word文檔的編制和生成,形成基于Word文檔的實(shí)驗(yàn)報(bào)告。
本系統(tǒng)中Visual C++應(yīng)用程序通過Matlab引擎執(zhí)行Simulink仿真命令行對(duì)仿真程序進(jìn)行控制,Matlab提供引擎方式函數(shù)庫,將Visual C++應(yīng)用程序同Simulink相連接。Matlab引擎的使用需要在Visual C++的工程中添加庫函數(shù)libmx.lib libeng.lib和相應(yīng)目錄,并在所應(yīng)用的程序中添加頭文件和庫文件[3,4]??紤]到虛擬仿真系統(tǒng)的可移植性,所使用的虛擬仿真程序的目錄采用相對(duì)目錄形式。實(shí)驗(yàn)仿真程序均存儲(chǔ)在與主程序有相對(duì)路徑目錄下。
Simulink的電力系統(tǒng)仿真工具箱幾乎涵蓋了電力拖動(dòng)實(shí)驗(yàn)所需要的所有元器件。根據(jù)實(shí)驗(yàn)需求將實(shí)驗(yàn)所需元器件模型匯集于一個(gè)仿真程序中,為實(shí)驗(yàn)者構(gòu)成一個(gè)虛擬仿真實(shí)驗(yàn)環(huán)境。在此環(huán)境下,按照實(shí)驗(yàn)要求進(jìn)行了元器件參數(shù)的設(shè)置;部分特殊模塊是基于S函數(shù)編制或由基本仿真模塊組合構(gòu)成,比如螺旋槳機(jī)械負(fù)載、起動(dòng)器和邏輯無環(huán)流控制器等。實(shí)驗(yàn)者所需的元器件具備與實(shí)際實(shí)驗(yàn)設(shè)備相一致的接線端子設(shè)置,即可在Simulink仿真環(huán)境下進(jìn)行實(shí)驗(yàn)線路的虛擬連接和仿真驗(yàn)證分析。
我們針對(duì)不同實(shí)驗(yàn)的實(shí)驗(yàn)數(shù)據(jù)特點(diǎn)編制了對(duì)應(yīng)的數(shù)據(jù)存取模塊來實(shí)現(xiàn)仿真數(shù)據(jù)的管理。數(shù)據(jù)存儲(chǔ)模塊為基于m文件編制的函數(shù)程序,程序運(yùn)行時(shí)構(gòu)建的臨時(shí)數(shù)據(jù)存儲(chǔ)文件實(shí)現(xiàn)了仿真程序與上位軟件之間的數(shù)據(jù)交互。臨時(shí)數(shù)據(jù)文件是為每次虛擬仿真實(shí)驗(yàn)臨時(shí)建立的,考慮到數(shù)據(jù)傳輸?shù)目焖傩裕捎昧薃SCII數(shù)據(jù)文件形式,完成包括初始值載入、上位軟件的操作產(chǎn)生的控制參數(shù)和仿真系統(tǒng)數(shù)值計(jì)算的狀態(tài)變量數(shù)據(jù)的相互傳遞等功能。通過臨時(shí)數(shù)據(jù)文件,Visual C++程序?qū)⒉僮髅顐鬟_(dá)給虛擬仿真軟件,再把仿真結(jié)果進(jìn)行實(shí)時(shí)顯示,并轉(zhuǎn)存Access數(shù)據(jù)表單,方便實(shí)驗(yàn)者后期復(fù)現(xiàn)實(shí)驗(yàn)曲線和生成實(shí)驗(yàn)報(bào)告使用。當(dāng)上位操作軟件進(jìn)行實(shí)驗(yàn)操作時(shí),將會(huì)產(chǎn)生中斷,通過數(shù)據(jù)交互實(shí)現(xiàn)仿真程序的重新設(shè)置。雖然每一次的上位機(jī)操作都會(huì)導(dǎo)致重新運(yùn)行仿真程序,但是由于將前一次運(yùn)行狀態(tài)參數(shù)作為新的仿真運(yùn)行的初始值,所以仿真全程是連續(xù)的,在上位軟件中體現(xiàn)的也將是一個(gè)連續(xù)的實(shí)驗(yàn)過程。
我們結(jié)合Visual C++與MS Word的混合編程技術(shù),將MS Office安裝目錄中的MSWORD.OLB類庫導(dǎo)入VC++中,利用COM技術(shù)編程,在源代碼中調(diào)用OLE自動(dòng)化對(duì)象來操作Word程序[5]。
由于實(shí)驗(yàn)報(bào)告的格式相對(duì)固定,編制程序事先設(shè)計(jì)好模板文件,虛擬仿真實(shí)驗(yàn)結(jié)束后,將實(shí)驗(yàn)結(jié)果曲線存為JPG文件,并導(dǎo)入到模板文件的對(duì)應(yīng)位置。報(bào)告的文本內(nèi)容,通過在需插入內(nèi)容的地方設(shè)置書簽變量,結(jié)合實(shí)驗(yàn)者在實(shí)驗(yàn)過程的對(duì)話框中依次填寫的實(shí)驗(yàn)信息、實(shí)驗(yàn)分析和實(shí)驗(yàn)總結(jié)等字符串文本,轉(zhuǎn)存到Word模板的對(duì)應(yīng)位置上,并最終生成基于Word文檔的實(shí)驗(yàn)報(bào)告。
現(xiàn)以“電力拖動(dòng)自動(dòng)控制系統(tǒng)”課程中的不可逆雙閉環(huán)直流調(diào)速系統(tǒng)實(shí)驗(yàn)為例,介紹仿真實(shí)驗(yàn)。我們選擇實(shí)驗(yàn)后進(jìn)入實(shí)驗(yàn)講義和實(shí)驗(yàn)平臺(tái)主要功能模塊的介紹界面,如圖2所示。
圖2 實(shí)驗(yàn)講義和實(shí)驗(yàn)平臺(tái)主要功能模塊的介紹界面
我們通過對(duì)按鈕控件的操作,可以完成對(duì)講義內(nèi)容和圖片介紹的翻閱;通過本界面調(diào)用Matlab引擎,進(jìn)入基于Simulink仿真環(huán)境的實(shí)驗(yàn)仿真接線以及實(shí)驗(yàn)仿真分析實(shí)驗(yàn)環(huán)境。若實(shí)驗(yàn)者已完成實(shí)驗(yàn)接線并仿真分析驗(yàn)證,也可以直接導(dǎo)入預(yù)先設(shè)置好的實(shí)驗(yàn)仿真程序,如圖3所示。
圖3 基于Simulink環(huán)境下的虛擬仿真實(shí)驗(yàn)接線圖
通過“開始虛擬實(shí)驗(yàn)”操作,可以進(jìn)入實(shí)驗(yàn)操作界面。被調(diào)用的仿真程序在后臺(tái)進(jìn)行數(shù)值計(jì)算仿真,如果實(shí)驗(yàn)者沒有進(jìn)行接線操作,將直接調(diào)用預(yù)先設(shè)置好的實(shí)驗(yàn)仿真程序。虛擬仿真實(shí)驗(yàn)操作界面如圖4所示。
圖4 虛擬仿真實(shí)驗(yàn)操作界面
實(shí)驗(yàn)完成后,點(diǎn)擊“完成實(shí)驗(yàn)”按鈕,系統(tǒng)將自動(dòng)生成以實(shí)驗(yàn)時(shí)間命名的ACCESS數(shù)據(jù)庫文件,并進(jìn)入實(shí)驗(yàn)報(bào)告生成系統(tǒng)。實(shí)驗(yàn)報(bào)告生成系統(tǒng)可以調(diào)用實(shí)驗(yàn)數(shù)據(jù)管理系統(tǒng)進(jìn)行實(shí)驗(yàn)數(shù)據(jù)的選擇與實(shí)驗(yàn)曲線的復(fù)現(xiàn);通過對(duì)所設(shè)置實(shí)驗(yàn)問題的回答,可以生成到設(shè)置好格式的Word實(shí)驗(yàn)報(bào)告文檔。
我們實(shí)施的電力拖動(dòng)類課程虛擬仿真實(shí)驗(yàn)教學(xué)改革取得如下成效。
(1)增強(qiáng)了學(xué)生對(duì)電力拖動(dòng)系統(tǒng)的認(rèn)知,降低了實(shí)驗(yàn)教學(xué)難度,提升了學(xué)生對(duì)實(shí)驗(yàn)的興趣。
(2)有效地改變了電力拖動(dòng)課程實(shí)驗(yàn)手段單一、實(shí)驗(yàn)資源不足、實(shí)驗(yàn)內(nèi)容缺乏創(chuàng)新和實(shí)驗(yàn)環(huán)境受限制的問題。
(3)解決了授課教師在教學(xué)實(shí)踐中虛擬仿真多媒體技術(shù)與電力拖動(dòng)系統(tǒng)教學(xué)過程有機(jī)結(jié)合的問題。改進(jìn)了教學(xué)方法和教學(xué)手段,提升了任課教師的教學(xué)能力。
隨著虛擬實(shí)驗(yàn)系統(tǒng)的不斷完善,其技術(shù)成果將有很好的推廣價(jià)值,為同類課程的虛擬實(shí)驗(yàn)建設(shè)提供有效的技術(shù)借鑒。
[1]陳麗蘭.“電力拖動(dòng)系統(tǒng)”課程實(shí)踐教學(xué)的探索[J].上海:實(shí)驗(yàn)室研究與探索,2011,30(11):389-391.
[2]木合亞提.伊克山.“電力拖動(dòng)自動(dòng)控制系統(tǒng)”課程實(shí)驗(yàn)的改革[J].上海:實(shí)驗(yàn)室研究與探索,2010,29(12):131-133.
[3]董建婷;王杰.VC++調(diào)用Matlab實(shí)現(xiàn)圖像處理的3種常用方法比較[J].西安:現(xiàn)代電子技術(shù),2012,35(16):46-49.
[4]來爽,慕德俊.基于VC和Matlab的PID仿真軟件實(shí)現(xiàn)[J].北京:計(jì)算機(jī)工程與應(yīng)用,2009,45(3):81-83.
[5]熊瑜容,柴毅,王淑娟,王嘉騏.基于VC++的Word文檔自動(dòng)生成技術(shù)[J].杭州:計(jì)算機(jī)時(shí)代,2010(1):52-54.