張陳擎宇, 陳德明(西南交通大學 電氣工程學院,四川 成都 610031)
變電站是電力系統(tǒng)中的貴重關(guān)鍵設(shè)備,其涉及電力供應(yīng)安全與否,對國民經(jīng)濟發(fā)展與人民生活影響重大。而變電站的特殊環(huán)境必然使得技術(shù)人員不可能通過停用實際設(shè)備來進行學習,這就使得工人在正常操作和事故判斷和處理方面的專業(yè)能力難以提高。隨著計算機科學的飛速發(fā)展,變電站仿真培訓(xùn)系統(tǒng)(Substation Training Simulator)作為變電站培訓(xùn)的一種新型的有效手段,其實用性得到行業(yè)各界的認可[1-3]。傳統(tǒng)的變電站仿真培訓(xùn)系統(tǒng)通常以接線圖、數(shù)字圖表、設(shè)備照片和現(xiàn)場錄像方式等常規(guī)多媒體方式作為表現(xiàn)手段,缺少場景互動,難以調(diào)動學員的積極性?;谔摂M現(xiàn)實技術(shù)(Virtual Reality, VR)的變電站仿真培訓(xùn)系統(tǒng)創(chuàng)造了沉浸式的三維虛擬環(huán)境,豐富的交互式功能能讓學員產(chǎn)生濃厚學習興趣,使培訓(xùn)質(zhì)量得到極大保障。就目前來看,加拿大已經(jīng)開發(fā)出較為成熟的虛擬變電站三維仿真培訓(xùn)系統(tǒng)[4],我國在這方面研究也取得了一定的成果[5-7]。
現(xiàn)今的VR環(huán)境變電站培訓(xùn)系統(tǒng)仍存在一定的缺陷,如環(huán)境建模粗糙、交互功能不夠完善、運行和故障原理演示動畫的缺失等。本文針對這些不足展開研究工作,并取得了初步的成果。
本文開發(fā)的系統(tǒng)主要涉及牽引變電所室外設(shè)備的三維仿真及其相關(guān)交互功能,對一次側(cè)的主要電氣設(shè)備如變壓器、斷路器、互感器、隔離開關(guān)、避雷器等進行場景建模,利用OpenSceneGraph(以下簡稱OSG)對變電站虛擬環(huán)境進行節(jié)點組織管理和層次細節(jié)優(yōu)化(Level of Detail,LOD),再進行數(shù)據(jù)庫對接,以實現(xiàn)虛擬場景的人機交互,利用邏輯變量實時仿真設(shè)備的正常、故障的運行狀態(tài)。此外,OSG還提供了豐富的可擴展對象庫,用于增強場景真實感,如設(shè)備出現(xiàn)短路故障時出現(xiàn)的高壓放電電弧等動態(tài)現(xiàn)象均可以通過粒子系統(tǒng)配合相應(yīng)的實時算法進行構(gòu)建。另外,為確保場景的實時高效性,應(yīng)盡量減少復(fù)雜體系的動態(tài)模型仿真,提高系統(tǒng)渲染效率。在系統(tǒng)交互窗口模式下,用戶僅需通過簡單的鼠標或鍵盤操作,實現(xiàn)環(huán)境巡檢、設(shè)備開閉、對象拾取、故障演示等功能,圖1為培訓(xùn)系統(tǒng)整體結(jié)構(gòu)圖。
圖1 培訓(xùn)系統(tǒng)整體結(jié)構(gòu)設(shè)計
精細的模型會大大增加虛擬環(huán)境的真實程度,讓用戶的沉浸感得到進一步提升。本文擬參照中南通道220 kV/27.5 kV重載牽引變電所實例,搭建虛擬場景模型,包括兩臺V/X油浸式主變壓器、主變繼電保護裝置、高低壓側(cè)線路互感器、繼電器、斷路器、隔離開關(guān)、避雷器等,以及外圍環(huán)境的構(gòu)建,如線路桿塔、廠房外形、電站圍墻和碎石地面等。模型設(shè)計主要采用以點、線、面描述物體形態(tài)結(jié)構(gòu)的多邊形建模方式,它是3dsMax最佳的一種建模手段[8],在制作過程中可以最大限度地降低模型的復(fù)雜程度且能夠控制模型構(gòu)成的面數(shù),有效地提高了可視化系統(tǒng)實時渲染的速度。如圖2所示,在牽引變電所中大量重復(fù)的模型,通常采用實例的命令進行量產(chǎn),以減小場景模型的計算量,提升渲染出圖效率。在構(gòu)建了以點、線、面為基礎(chǔ)的形態(tài)模型之后,還需對虛擬場景添加合適的燈光、材質(zhì)、貼圖等,使線框模型具備物理世界的顏色、光澤、質(zhì)感[9]。
圖2 牽引變電所場景三維模型
圖3 LOD模型調(diào)度原理示意圖
牽引變電所虛擬環(huán)境采用基于電氣連接特性的空間N叉樹結(jié)構(gòu)在OSG中進行場景組織和管理,其規(guī)則是:以母線為緯,以電氣單元為經(jīng),以斷路器為基準,按接線順序排列[10]。場景內(nèi)一般具備較多的電氣設(shè)備,空間布局十分復(fù)雜。本文建立的虛擬牽引變電所環(huán)境模型的多邊形面片數(shù)超過600萬,若在開發(fā)的系統(tǒng)界面中同時渲染出這些模型,則會遠遠超出計算機的處理能力,無法滿足系統(tǒng)的實時交互要求達到15 幀/秒~25 幀/秒的速率。為此對場景進行LOD優(yōu)化是十分有必要的。在優(yōu)化處理后的實時窗口界面中,系統(tǒng)并不會同時加載所有的模型,而是按照一定的算法進行渲染。本文擬采用的設(shè)計方案是僅渲染以視口所在位置為圓心,某個特定的距離Δr為半徑的場景模型,如圖3所示:LOD1區(qū)域顯示精細模型,LOD2區(qū)域顯示粗糙模型,Hidden區(qū)域所有模型不參與渲染或者渲染后隱藏。而OSG擴展庫中提供了LOD類,可以實現(xiàn)基于視點距離(osg::LOD::DISTANCE_FROM_EYE_POINT)等模型調(diào)度算法。
通過osgGA:MatrixManipulator類在虛擬環(huán)境中添加一臺攝影機作為其交互視口,其位置和朝向用不同的矩陣描述;同時操作器還需響應(yīng)事件,且具備視口矩陣操作的功能。osgGA::GUIEventHandler作為事件適配器,定義了包括鼠標和鍵盤狀態(tài)等在內(nèi)的所有與事件有關(guān)的變量,而handle函數(shù)則根據(jù)不同的外部響應(yīng)判斷需處理的事件類型。當新事件發(fā)生時,handle函數(shù)應(yīng)根據(jù)自定義規(guī)則對視口矩陣參數(shù)進行更改,從而實時更新場景渲染狀態(tài)[11]。此外,操作器還需具備碰撞檢測模塊,在靠近大型設(shè)備后停止移動。該模塊的設(shè)計通常采用“線/體”檢測方法,運用osgUtil::IntersectVisitor.hits檢測沿視點反向發(fā)出的射線是否與場景模型的包圍體有交點,如果有則開啟碰撞檢測相關(guān)函數(shù),沒有則繼續(xù)移動[12]。操作器變量代碼如下:
void changePosition(osg::Vec3 delta); //改變坐標參數(shù)的函數(shù)
bool m_bPeng; //是否開啟碰撞檢測
osg::Vec3 m_vPosition; //視點當前位置
osg::Vec3 m_vRotation; //視點當前朝向
int m_vMoveStep; //移動步長
float m_vRotateStep; //旋轉(zhuǎn)角度
圖4 隔離開關(guān)分合閘效果圖
如圖4所示,在實現(xiàn)場景漫游的基礎(chǔ)上,還需增設(shè)相關(guān)交互功能,如真實變電站中對主變端子箱、開關(guān)操作桿的控制行為等。以手動控制隔離開關(guān)刀閘位置為例,打開機構(gòu)箱后插入操作桿,可實現(xiàn)隔離開關(guān)的分合閘。通過OSG編程對鼠標點選操作進行響應(yīng),并觸發(fā)機構(gòu)箱門的旋轉(zhuǎn)開啟動作;包圍體相交檢測集函數(shù)作為操作桿與箱體是否接觸的判斷依據(jù),若存在交點則執(zhí)行隔離開關(guān)刀閘位置變更的相關(guān)程序。
對場景模型的節(jié)點進行相關(guān)矩陣乘法計算,就能實現(xiàn)平移、旋轉(zhuǎn)、縮放等常用變換功能[13]。OSG將添加到虛擬場景的矩陣視為一類特殊的節(jié)點,通過osg::MatrixTransform類進行控制。刀閘旋轉(zhuǎn)變換的主程序結(jié)構(gòu)如下:
osg::ref_ptr
osg::ref_ptr
//創(chuàng)建矩陣節(jié)點實現(xiàn)繞Z軸的旋轉(zhuǎn)
rot->setMatrix(osg::Matrix::rotate(osg::DegreeToRadians(45.0),0,0,1));
rot->addChild(Disconnector.get());
//將變換矩陣加入場景根節(jié)點
root->addChild(Disconnector.get());
root->addChild(rot.get());
此外,對該系統(tǒng)的后臺建立簡易動態(tài)數(shù)據(jù)庫有助于其他后續(xù)功能的開發(fā),比如三維虛擬環(huán)境和匯控柜實時數(shù)據(jù)的一體化仿真模塊等。根據(jù)IEC61850標準,虛擬變電所可采用層次加關(guān)系的數(shù)據(jù)庫,以保證虛擬環(huán)境和其他并行系統(tǒng)的信息共享[14]。場景模型的基本屬性,如設(shè)備名稱、電壓等級、歸屬母線等,均以靜態(tài)數(shù)據(jù)的形式儲存;而設(shè)備當前狀態(tài)則以邏輯值形式儲存于實時數(shù)據(jù)庫,用于拓展功能平臺的開發(fā)。以隔離開關(guān)為例,其狀態(tài)值0代表分閘,1代表合閘,以是否進行矩陣變換為標準,對當前狀態(tài)值進行實時更替。而變壓器、互感器等無需交互操作的大型設(shè)備通常是僅有運行或停用(包括故障)狀態(tài),亦可用兩種邏輯狀態(tài)值進行描述。表1所示的是用Microsoft SQL Server搭建的牽引變電所主要電氣單元的數(shù)據(jù)庫。
表1 培訓(xùn)系統(tǒng)部分設(shè)備數(shù)據(jù)庫
牽引變電所的電氣設(shè)備在受天氣影響或是發(fā)生短路故障時,會出現(xiàn)相應(yīng)的動態(tài)物理現(xiàn)象,其中最常見的就是放電電弧,而運用OSG完善的粒子系統(tǒng)功能可以實現(xiàn)逼真的放電電弧特效仿真[15]。放電現(xiàn)象微觀機理十分復(fù)雜,早期對雷電閃擊的弧道空間性質(zhì)研究就借助了分形動力學[16],其仿真建立在嚴謹?shù)臄?shù)學模型基礎(chǔ)上,得到的電弧路徑和形狀有相當?shù)木_度。而基于虛擬環(huán)境的可視化系統(tǒng)的建模中,更多關(guān)注的是模型的真實化程度,因此僅需實現(xiàn)基本形態(tài)仿真,無需從原理上去精確描述電弧的各類物理參數(shù)。
圖5 粒子系統(tǒng)模擬放電電弧的算法示意圖
電力系統(tǒng)的短路故障,其電弧不像雷電閃擊那樣具備明顯的分支,描繪其紋理時只需考慮其主干。本文給出一種基于粒子運動軌跡的仿真算法,原理如圖5所示。
粒子在虛擬三維環(huán)境的運動可以分解為x-z和y-z平面上的兩組分運動。首先以x-z平面為例,以粒子模擬電弧逐步擊穿的運動,設(shè)A(x1,z1)為粒子的初始位置,以折線段方式分別運動到B(x2,z2),C(x3,z3),D(x4,z4),……則粒子的運動軌跡可描述電弧的基本形態(tài);θ是相鄰兩條線段的夾角,為簡化模型以減小運算量,每一段的Z坐標增量設(shè)為恒定值h,則它與短路故障兩點間距離d、電弧分段數(shù)k的關(guān)系為:d=kh。再根據(jù)幾何關(guān)系可得各點坐標算式:
(1)
式中:i∈(1,2,3,…,k)。同理粒子在y-z平面上的分運動,初始位置為(y1,z1),相鄰折線段夾角為δ,則拐點坐標計算式:
(2)
式中:夾角θ和δ之間的“+”和“-”代表粒子處于拐角處的旋轉(zhuǎn)方向,前者為逆時針,后者為順時針。為了符合統(tǒng)計學規(guī)律,通常是相鄰兩個拐點處的粒子呈現(xiàn)出相反方向的旋轉(zhuǎn)運動。
OSG圖形引擎對常用的粒子模擬均提供了特有的類,如osgParticale::Particale類控制粒子個體屬性,包括大小、顏色、壽命等;osgParticale::ParticaleSystem類控制粒子整體屬性,包括數(shù)目、紋理、初速等。設(shè)置好粒子的初始位置后,按照式(1)、式(2)可以確定運動軌跡所在折線段的拐點坐標。控制粒子軌跡的代碼如下:
osgParticle::MultiSegmentPlacer *pp = new osgParticle::MultiSegmentPlacer;
pp->addVertex(x1, y1, z1);
pp->addVertex(x2, y2, z2);
pp->addVertex(x3, y3, z3);
……
pp->addVertex(xk, yk, zk);
emitter->setPlacer(pp);
圖6 短路故障點放電電弧特效仿真
在賦值時k一般取得較大,在短路故障點間距離d確定的條件下,h則自然偏小,如此就能保證拐點間的密集程度,其形態(tài)會更加接近真實的電弧。最后賦予光效材質(zhì)使其更加真實,渲染后的電弧特效如圖6所示。
本文針對現(xiàn)階段變電站仿真培訓(xùn)系統(tǒng)的局限性,詳細研究了虛擬牽引變電所三維場景精細化建模技巧、場景漫游交互功能開發(fā)、粒子特效實時仿真等,營造了模型真實、沉浸感良好的虛擬變電所環(huán)境,同時就場景設(shè)備狀態(tài)的變化搭建后臺實時數(shù)據(jù)庫,為實現(xiàn)虛擬環(huán)境和電力調(diào)度仿真、分布式協(xié)同仿真一體化等拓展功能的開發(fā)奠定了基礎(chǔ)。
參考文獻:
[ 1 ] 王邦志,林昌年,蒲天驕.變電站集中監(jiān)控仿真培訓(xùn)系統(tǒng)的設(shè)計與實現(xiàn) [J].電網(wǎng)技術(shù),2004,28(15):21-24.
[ 2 ] 王仁德,杜勇,沈小軍.變電站三維建模方法現(xiàn)狀及展望[J].華北電力技術(shù),2015,45(2):19-23.
[ 3 ] 龔慶武,姜芳芳,陳義飛.基于虛擬現(xiàn)實技術(shù)的變電站仿真培訓(xùn)系統(tǒng)[J].電網(wǎng)技術(shù),2005,29(24):74-77.
[ 4 ] 李蔚清,吳慧中,林昌年.變電站仿真培訓(xùn)系統(tǒng)虛擬環(huán)境的研究與實現(xiàn)[J].系統(tǒng)仿真學報,2006,18(1):123-126.
[ 5 ] 韓念杭,王蘇,張惠剛.面向維護人員的變電站自動化技術(shù)培訓(xùn)系統(tǒng)[J].電力系統(tǒng)自動化,2007,31(2):88-90.
[ 6 ] 林尉,徐正清,馮可.上海500 kV變電站三維仿真培訓(xùn)系統(tǒng)開發(fā)[J].電網(wǎng)技術(shù),2009,33(17):210-215.
[ 7 ] 劉世安,胡俊華,李顯鵬.變電站仿真培訓(xùn)系統(tǒng)設(shè)計[J].科技創(chuàng)新導(dǎo)報,2015,12(1):211-212.
[ 8 ] 張凡.3dsMax2012中文版實用教程[M].4版.北京:機械工業(yè)出版社,2012.
[ 9 ] 廖毅.3dsMax建模技術(shù)在虛擬現(xiàn)實中的應(yīng)用[J].中國科教創(chuàng)新導(dǎo)刊,2011,40(18):113.
[10] 侯俊,李蔚清,林昌年.變電站三維交互場景仿真關(guān)鍵技術(shù)研究[J].電網(wǎng)技術(shù),2005,29(9):70-75.
[11] 楊化斌.OpenSceneGraph 3.0三維視景仿真技術(shù)開發(fā)詳解[M].北京:國防工業(yè)出版社,2012.
[12] 查小菲.基于OpenSceneGraph的數(shù)字礦井三維可視化系統(tǒng)的研究與開發(fā)[D].河南:河南理工大學,2011.
[13] Fletcher Dunn, Ian Parberry. 3D數(shù)學基礎(chǔ):圖形與游戲開發(fā)[M].北京:清華大學出版社,2005.
[14] 彭云建,鄧飛其.電力綜合信息管理系統(tǒng)面向?qū)ο髷?shù)據(jù)庫的建模[J].電力系統(tǒng)及其自動化學報,2007,19(1):49-54.
[15] 杜俊賢.基于OSG的虛擬場景中運動控制與交互技術(shù)研究[D].武漢:武漢理工大學,2010.
[16] 任順平,遲建平,莊洪春.閃電路徑與分形[J].空間科學學報,1998,18(4):363-369.