王大虎+盧正帥+賈倩
摘 要:針對高校電氣控制課程實訓(xùn)平臺數(shù)量不足、實訓(xùn)內(nèi)容簡易匱乏和學(xué)生工程實踐能力差等問題,選擇生活中較為典型的恒壓供水系統(tǒng)作為教學(xué)載體,設(shè)計了恒壓供水虛擬實訓(xùn)裝置。系統(tǒng)采用3ds Max建立水泵、壓力傳感器、水池等三維模型,利用Unity 3D開發(fā)恒壓供水上位機虛擬仿真軟件,以PLC、變頻器和繼電器等搭建硬件控制電路作為下位機,上位機仿真軟件和下位機硬件控制電路通過通信接口模塊連接交換數(shù)據(jù),實現(xiàn)了融合虛擬場景和硬件控制電路的虛擬實訓(xùn)裝置的開發(fā)。結(jié)果表明,虛擬實訓(xùn)裝置能夠有效降低實訓(xùn)設(shè)備成本,彌補實驗設(shè)備數(shù)量不足,充實實訓(xùn)內(nèi)容,提升學(xué)生工程實踐能力。
關(guān)鍵詞:恒壓供水;虛擬現(xiàn)實;三維建模;工程實踐
DOIDOI:10.11907/rjdk.171369
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號文章編號:1672-7800(2017)008-0100-03
0 引言
恒壓供水系統(tǒng)在自來水廠、居民生活區(qū)、企業(yè)生產(chǎn)用水和農(nóng)田灌溉系統(tǒng)等方面應(yīng)用廣泛,恒壓供水設(shè)備可靠安全運行直接關(guān)系到人民群眾的生命和財產(chǎn)安全[1]。電氣控制課程專業(yè)實踐性強,實驗教學(xué)在學(xué)生將理論水平轉(zhuǎn)化為動手能力過程中和培養(yǎng)實際解決問題能力方面發(fā)揮了重要作用。因此,將恒壓供水系統(tǒng)列入電氣控制課程實訓(xùn)內(nèi)容十分必要。
目前電氣控制課程實驗教學(xué)方式主要有以下3種[2]:①學(xué)生通過計算機編寫PLC梯形圖控制程序后下載到控制器中觀察輸出點指示燈狀態(tài),判斷程序是否實現(xiàn)控制目標(biāo),因該方法缺少控制對象,故只可進行簡單軟件調(diào)試;②高校依據(jù)課程安排選取典型控制對象如電機和交通燈等模擬實際控制系統(tǒng),但與實際工程相差較遠(yuǎn);③采用大型PLC綜合實訓(xùn)平臺能夠模擬多種工業(yè)控制系統(tǒng),但設(shè)備價格昂貴,設(shè)備損耗嚴(yán)重,大量購買設(shè)備并不現(xiàn)實。胡盤峰等[3]設(shè)計的基于PLC的新型變頻恒壓供水系統(tǒng),缺少上位機組態(tài),人機交互性差,主要適用對象為住宅小區(qū),不適用于學(xué)生實訓(xùn)。居榮等[4]開發(fā)的基于實際應(yīng)用的恒壓供水實驗裝置,僅有缺少樓層模擬,與實際工程應(yīng)用差距較大。張學(xué)輝等[5]的開發(fā)基于PLC及變頻器的恒壓供水實訓(xùn)系統(tǒng),系統(tǒng)結(jié)構(gòu)復(fù)雜且可擴展性差。
針對上述問題,本文設(shè)計了基于Unity 3D的恒壓供水系統(tǒng)虛擬實訓(xùn)裝置。系統(tǒng)采用3ds Max創(chuàng)建虛擬實驗場景、虛擬傳感器和虛擬水泵等設(shè)備三維模型,以Unity 3D為模型引擎開發(fā)上位機虛擬仿真軟件,下位機采用PLC和變頻器等設(shè)備組成硬件控制電路,上位機虛擬仿真軟件和下位機硬件控制電路通過通信接口模塊交換數(shù)據(jù),具有操作簡便、成本低、擴展性好等優(yōu)點。
1 虛擬恒壓供水系統(tǒng)總體設(shè)計
針對電氣控制課程實驗教學(xué)特點,系統(tǒng)主要應(yīng)用于電氣控制課程實驗教學(xué),在PLC程序運行時需要實時通過虛擬場景驗證控制器的輸出信號,同時也需要將虛擬傳感器的狀態(tài)傳給控制器,通過虛實結(jié)合的方式來再現(xiàn)整個控制過程。系統(tǒng)總體框圖如圖1所示,系統(tǒng)由仿真軟件、接口模塊和硬件電路三部分構(gòu)成。硬件電路輸出的各種控制信號,經(jīng)過接口電路處理后送給仿真軟件,實現(xiàn)對虛擬場景中虛擬開關(guān)和執(zhí)行機構(gòu)的控制,虛擬傳感器的檢測信號經(jīng)過接口模塊送給控制電路,實現(xiàn)壓力控制的閉環(huán)。
仿真軟件主要用來模擬恒壓供水系統(tǒng)實際工作現(xiàn)場,根據(jù)工藝要求和性能要求,壓力傳感器采集壓力信號由A/D轉(zhuǎn)換模塊將設(shè)定值與采集值比較,PID根據(jù)變頻器參數(shù)進行數(shù)據(jù)處理,處理結(jié)果以頻率形式輸出以此控制水泵工變頻運行,實現(xiàn)管網(wǎng)壓力穩(wěn)定的目標(biāo)[1,6-7]。Unity 3D是虛擬恒壓供水系統(tǒng)仿真軟件的開發(fā)工具,可視化編程界面,腳本編輯高效,支持多種編程語言,可以用來控制虛擬三維設(shè)備模型動作和模擬真實控制效果,再現(xiàn)恒壓供水現(xiàn)場控制過程。
硬件部分包括接口模塊和控制電路,控制電路包括操作平臺和交互設(shè)備,交互設(shè)備包括鍵盤和鼠標(biāo),用來控制虛擬場景和視角。控制電路主要由PLC、開關(guān)電源、繼電器和變頻器等設(shè)備組成,接口模塊來以單片機和繼電器為核心實現(xiàn)電平轉(zhuǎn)換和電壓線性轉(zhuǎn)換來進行數(shù)據(jù)交換。
2 仿真軟件
2.1 模型創(chuàng)建
建模是虛擬仿真軟件開發(fā)的基礎(chǔ),模型質(zhì)量好壞決定了仿真軟件水平高低[8]。根據(jù)在現(xiàn)場拍攝的恒壓供水系統(tǒng)照片及網(wǎng)上搜集的相關(guān)資料,采用3ds Max創(chuàng)建恒壓供水裝置的三維模型及場景模型,如樓房、水箱、水泵、壓力傳感器等。建模時需要保證虛擬場景和真實場景相同,虛擬物體在場景中的擺放位置也應(yīng)與真實物體在現(xiàn)實世界中的擺放位置保持一致,在創(chuàng)建三維模型時為了減少軟件占用內(nèi)存空間,使軟件運行更為流暢,需要刪除模型的面數(shù)和分段數(shù)。為了讓模型細(xì)節(jié)更加逼真,需要為模型添加貼圖。通常情況下設(shè)置圖片大小為512×512,格式為png。虛擬場景中管道模型材質(zhì)為不銹鋼,具有反射特性,因此需要為其添加反射貼圖,提高光澤度,降低高光級別,實現(xiàn)更逼真的效果。模型創(chuàng)建完成后,為保證模型比例一致,需要通過3ds Max將模型導(dǎo)出為.FBX格式文件。圖2為恒壓供水系統(tǒng)實物與三維線框模型對比。
2.2 數(shù)據(jù)交換
數(shù)據(jù)交換是虛擬交互基礎(chǔ),通過C#命名空間System.IO.Ports中SerialPort類實現(xiàn)[9]。關(guān)鍵通信程序如下:
void Start()
{
SP = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
SP.Open();
_thPort = new Thread(RecData);
_thPort.Start();
}
首先在Start函數(shù)內(nèi)實例化一個SerialPort類SP串口,初始化參數(shù)包括串口號、波特率、校驗位、數(shù)據(jù)位和停止位,該參數(shù)應(yīng)與接口模塊串口參數(shù)一致。然后打開串口,利用Thread函數(shù)開啟一個RecData線程,用來接收數(shù)據(jù)幀。最后在FixedUpdat函數(shù)中調(diào)用。RecData程序如下:endprint
private void RecData()
{ try
{ Byte[] buf = new Byte[1];
if (SP.IsOpen) SP.Read(buf, 0, 1);
if (buf.Length == 0)
return;//如果沒有數(shù)據(jù),直接返回;
else
UserData = buf[0]; //接收一位數(shù)據(jù)
}
catch (Exception ex)
{
Debug.Log(ex);
}
}
在RecData線程內(nèi),使用SP串口的Read函數(shù)循環(huán)讀取接收緩沖區(qū)數(shù)據(jù),并將結(jié)果返回給數(shù)組buf。根據(jù)buf的長度判斷是否讀取到數(shù)據(jù),如果數(shù)組長度為0則直接返回,否則將數(shù)據(jù)賦給UserData。軟件根據(jù)UserData的不同數(shù)值,執(zhí)行視角切換、水泵啟停、位置轉(zhuǎn)換等操作。
2.3 模型驅(qū)動
將創(chuàng)建好的三維模型導(dǎo)入Unity 3D,同時為模型添加粒子特效模擬水流效果,設(shè)定粒子碰撞和粒子渲染參數(shù)。為了讓模擬場景水泵運行聲音,需要在場景中添加音源組件Audio Source和聲音監(jiān)聽組件Audio Listener,并添加到對象物體上,通過腳本控制水泵運行聲音的有無。采用鍵盤和鼠標(biāo)來控制Cam行走、轉(zhuǎn)向、仰視和俯視等動作,通過RoleControl腳本實現(xiàn)角色控制,實現(xiàn)仰視和俯視角度的控制,Clamp和Euler兩個函數(shù)實現(xiàn):Mathf.Clamp(headAngleY, downLimit, upLimit);Head.transform.localRotation = Quaternion.Euler(headAngleY, 0, 0)。函數(shù)中參數(shù)headAngleY表示相機當(dāng)前沿Y軸方向的傾斜角度,downLimit和upLimit分別表示俯視和仰視的最大角度[10]。Clamp函數(shù)將返回一個位于downLimit和upLimit之間的值。當(dāng)headAngleY小于downLimit時,返回downLimit,當(dāng)headAngleY大于upLimit時,返回upLimit,否則返回headAngleY。從而避免出現(xiàn)俯視和仰視角度過大與現(xiàn)實不符的情況。Quaternion.Euler(headAngleY, 0, 0)表示繞X軸旋轉(zhuǎn)headAngleY度,即限制角色只在YZ平面仰視和俯視,以免出現(xiàn)左右傾斜的現(xiàn)象。
3 硬件電路
3.1 接口模塊
接口模塊采用STC12C5A60S2型號的單片機作為數(shù)據(jù)處理核心,包括電源電路、時鐘電路、復(fù)位電路和輸入輸出接口等[11]。電源電路用于將AC220V轉(zhuǎn)化為DC5V為單片機各部分供電,時鐘電路用于控制單片機,各部分電路嚴(yán)格按照時序進行工作,通過外部按鍵在單片機RST端產(chǎn)生高電平恢復(fù)各寄存器默認(rèn)狀態(tài),輸入輸出電路則通過循環(huán)掃描端口的方式,接收外部經(jīng)過4N35光電隔離器的輸入信號。
3.2 控制電路
恒壓供水系統(tǒng)的目標(biāo)是將供水管網(wǎng)壓力通過傳感器送給控制器,由變頻器A/D轉(zhuǎn)換模塊將模擬量轉(zhuǎn)化為數(shù)字量,壓力設(shè)定值和采集值兩個數(shù)據(jù)同時經(jīng)過PID控制模塊進行數(shù)據(jù)處理,并將結(jié)果以運行頻率的形式進行輸出。PID控制模塊具有比較和差分的功能,當(dāng)供水壓力低于設(shè)定壓力時,運行頻率升高,反之則降低,同時也可根據(jù)壓力變化快慢進行差分調(diào)節(jié)[12-14]??刂齐娐酚蒔LC、變頻器和觸摸屏等組成,PLC采用的是西門子S7-200系列,虛擬傳感器采集的壓力流量值通過接口模塊送給PLC,然后PLC經(jīng)過PID運算后輸出給控制變頻器和接口模塊,最后傳給虛擬仿真軟件用于控制虛擬水泵轉(zhuǎn)速和閥門開度等模型,觸摸屏用于設(shè)定管網(wǎng)壓力,顯示設(shè)備運行狀態(tài)。如表1所示I/O分配表。
4 測試結(jié)果
無負(fù)壓供水系統(tǒng)是目前常見的較為先進的供水設(shè)備,主要由水泵、電機、控制柜、穩(wěn)流罐、遠(yuǎn)傳壓力表、集水管、負(fù)壓解除器、出水管、電磁閥等構(gòu)成,具有投資成本低、節(jié)能和設(shè)備占地少等優(yōu)點[15]。當(dāng)用戶用水量增加時,壓力傳感器檢測到自來水的壓力低于用戶所需用水壓力,控制器則通過變頻器啟動管網(wǎng),直到管網(wǎng)壓力增加到用戶所需用水壓力時控制器控制變頻器以輸出恒定的工作頻率,保證管網(wǎng)壓力恒定。系統(tǒng)效果如圖3所示。
5 結(jié)語
采用三維建模、人機交互、虛擬仿真等技術(shù),以生活中典型的恒壓供水系統(tǒng)為研究對象開發(fā)的恒壓供水虛擬實訓(xùn)教學(xué)裝置解決了電氣控制課程中教學(xué)中實驗設(shè)備數(shù)量不足、實驗內(nèi)容簡易匱乏和學(xué)生工程實踐能力差等問題。系統(tǒng)具有成本低廉、模型逼真和使用方便等優(yōu)點,能夠激發(fā)學(xué)生的學(xué)習(xí)熱情、提高學(xué)生的工程實踐能力。
參考文獻(xiàn):
[1] 張邦成,王華振,李淼,等.基于PLC控制的恒壓供水系統(tǒng)設(shè)計[J].計算機測量與控制,2013,21(8):2136-2145.
[2] 王敬沖,王大虎,劉海洋.虛擬仿真在PLC配料控制系統(tǒng)教學(xué)中的應(yīng)用[J].實驗室研究與探索,2015,34(9):75-78.
[3] 胡盤峰,陳慧敏.基于PLC的新型變頻恒壓供水系統(tǒng)設(shè)計[J].機械工程與自動化,2011,4(2):141-143.
[4] 居榮,鞠勇.基于實際應(yīng)用的恒壓供水系統(tǒng)實驗裝置設(shè)計[J].南京師范大學(xué)學(xué)報,2006,6(4):21-25.
[5] 張學(xué)輝,程顯吉,韓培成.基于PLC及變頻器的恒壓供水實訓(xùn)系統(tǒng)開發(fā)[J].機械與電子,2011,28(9):99-100.
[6] 楊柏松,熊建斌,李長庚.基于變頻器內(nèi)置 PID 模塊的恒壓供水系統(tǒng)[J].電子設(shè)計工程,2015,23(20):161-165.
[7] 齊繼陽,孟洋,李金燕,等.模糊 PID 在恒壓供水控制系統(tǒng)中的應(yīng)用[J].自動化與儀表,2015,35(3):44-47.
[8] 王大虎,史艷楠,陳文博.基于Quest3D的煤礦副井提升機虛擬實操系統(tǒng)的開發(fā)[J].制造業(yè)自動化,2014,36(9):114-117.
[9] 羅資琴,羅超,徐帥.基于Unity3D的化工裝置虛擬培訓(xùn)系統(tǒng)技術(shù)與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2015,32(2):52-55.
[10] 劉海洋,王大虎,王敬沖.基于Quest3D的采煤機虛擬培訓(xùn)系統(tǒng)設(shè)計[J].工礦自動化,2015,4(4):102-105.
[11] 朱向慶, 胡均萬, 陳宏華,等.多功能單片機實驗系統(tǒng)的研制[J].實驗室研究與探索,2012,31(4):41-44.
[12] 田亞娟,郭麗穎.變頻恒壓供水PLC控制系統(tǒng)的設(shè)計[J].計算技術(shù)與自動化,2010,29(1):25-28.
[13] 朱雪凌,張娟,許智勇,等.基于PLC的變頻恒壓供水系統(tǒng)的設(shè)計[J].華北水利水電學(xué)院學(xué)報,2013,34(2):87-90.
[14] 王梅,馬小平,金立.基于S7-200的恒壓供水控制系統(tǒng)設(shè)計[J].工礦自動化,2010,32(9):129-131.
[15] 王歡歡,劉書明,姜帥,等.無負(fù)壓供水模式下管網(wǎng)水力模擬與安全評價分析[J].環(huán)境科學(xué),2013,34(1):163-168.endprint