劉文彪 王冬霞 董懷普
摘要:隨著電網(wǎng)信息化建設(shè)的加快,通過對變電站主設(shè)備和輔助設(shè)備進(jìn)行三維場景建模,實(shí)現(xiàn)變電站場景的數(shù)字 化 還原,并根據(jù)變電站內(nèi)設(shè)備信息將三維節(jié)點(diǎn)與數(shù)據(jù)庫點(diǎn)進(jìn)行邏輯關(guān)聯(lián),將變電站監(jiān)控推向數(shù)字化、可視化、智能化的全新高度。本文旨在研究一種通用的三維交互方法,通過規(guī)范化三維模型的動態(tài)節(jié)點(diǎn)命名的方法,實(shí)現(xiàn)三維模型和三維程序之間的交互信息的自動化提取和控制,從而對變電站主設(shè)備監(jiān)測數(shù)據(jù)、輔助設(shè)備監(jiān)測數(shù)據(jù)等進(jìn)行了全面監(jiān)視,構(gòu)建智慧變電站三維可視化交互平臺,更加高效直觀地全面監(jiān)視變電站,增強(qiáng)設(shè)備的管 控力。
關(guān)鍵詞:三維交互;三維可視化;自動關(guān)聯(lián);全面監(jiān)視
中圖分類號:TM769;TP311 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)09-0248-03
變電站數(shù)字化是將測繪、信息、計算機(jī)等多學(xué)科技術(shù)有機(jī)結(jié)合為一體的交叉學(xué)科,是三維重建的新方法與手段,通過客觀、完整地獲取電站設(shè)備元器件幾何和色彩等資料,實(shí)現(xiàn)對變電站全站模型,以及主設(shè)備和輔助設(shè)備的三維結(jié)構(gòu)重建與展示。變電站的三維可視化交互系統(tǒng)建設(shè)是國家電網(wǎng)提出主設(shè)備和輔助設(shè)備全面監(jiān)視的關(guān)鍵技術(shù)。
本文提出了一種三維模型動態(tài)節(jié)點(diǎn)命名方法,旨在探索一種三維模型和三維程序之間通用的交互配置和控制方法,使得三維程序可以適配所有變電站的三維模型,并精確地控制開關(guān)、刀閘、儀表盤以及顯示燈等的正確狀態(tài)的顯示。從而全面提升設(shè)備的管控力,完善監(jiān)視手段,實(shí)現(xiàn)對變電站主設(shè)備和輔助設(shè)備的全面監(jiān)視。
1 總體架構(gòu)設(shè)計
本系統(tǒng)采用OSG三維引擎作為電力監(jiān)控系統(tǒng)三維圖形平臺的支撐。整個系統(tǒng)分為五個模塊,分別是三維建模文件,三維動態(tài)庫、三維配置工具、二三維融合容器、畫面編輯與在線展示系統(tǒng);
變電站三維建模文件是基礎(chǔ),通過3Dmax軟件進(jìn)行三維模型的建模,模型內(nèi)的所有動點(diǎn)信息參照約定的命名規(guī)范進(jìn)行命名,便于交互信息的自動提取。
三維動態(tài)庫主要完成三維模型的渲染、三維動點(diǎn)的狀態(tài)交互變化等,是整個三維渲染系統(tǒng)的核心。
三維配置工具主要解析三維模型文件中動態(tài)節(jié)點(diǎn)信息,根據(jù)動態(tài)節(jié)點(diǎn)命名自動提取動態(tài)交互信息,提供動點(diǎn)和數(shù)據(jù)庫點(diǎn)的自動關(guān)聯(lián),同時提供對應(yīng)的編輯功能,根據(jù)動點(diǎn)類型提供不同交互配置,針對顏色變化類型,提供不同狀態(tài)的顏色配置功能;針對角度變化類型,提供角度設(shè)置功能等;以及鼠標(biāo)響應(yīng)類型的設(shè)置等;配置完成后輸出三維動點(diǎn)交互配置文件,提供給自研三維動態(tài)庫進(jìn)行統(tǒng)一的數(shù)據(jù)交互響應(yīng)。
二三維融合容器,主要提供二三維一體化展示切換功能,該容器根據(jù)聯(lián)動信息動態(tài)切換展示二維和三維畫面以及二三維畫面同時顯示的功能。該容器為畫面組態(tài)工具和在線展示系統(tǒng)提供圖形展示承載服務(wù)。
畫面編輯器提供了基本的繪圖功能,同時利用二三維渲染容器定制展示區(qū)域,并提供配置展示二維和三維畫面關(guān)聯(lián)的文件信息。配置完成后,在線展示系統(tǒng)會根據(jù)配置的二維和三維畫面文件,實(shí)時展示對應(yīng)的畫面,并根據(jù)數(shù)據(jù)庫的值更新二三維畫面的設(shè)備狀態(tài),從而真實(shí)地展示設(shè)備運(yùn)行信息。
2 模型動態(tài)節(jié)點(diǎn)命名規(guī)范
三維模型內(nèi)的動態(tài)節(jié)點(diǎn)名稱,應(yīng)全部采用字母、數(shù)字、“一”“一”、中文描述組成,節(jié)點(diǎn)名稱格式為.D_IEDName-DataType-ActionTye+三位序號_ValueRange_ControlRange _Desc。
2.1 D為統(tǒng)一動點(diǎn)前綴
D為統(tǒng)一動點(diǎn)前綴,表示該節(jié)點(diǎn)是動點(diǎn),需要交互變化。方便三維程序一次性過濾當(dāng)前三維模型文件中所有動點(diǎn)信息。
2.2 IEDName為設(shè)備名稱,包括屏柜名稱
對于裝置,名稱建議采用IEDName;如果站內(nèi)無SCD文件,IEDName建議采用和站內(nèi)點(diǎn)命名一致;
對于屏柜,建議采用PG+四位屏柜號+IEDName.四位屏柜號:前面兩位是小室號,后面兩位是屏柜號。
例如:
2#主變保護(hù)A柜:PC010IPT02,其中PG表示屏柜,0101四位屏柜號表示01號小室叭號屏柜,PT02表示IED名稱,其中P表示為保護(hù),T表示主變,02表示2#;
2#主變第二套保護(hù)柜:PG0102PT02,其中PG表示屏柜,0102表示叭號小室02號屏柜,PT02表示IED名稱,P表示為保護(hù),T表示主變,02表示2#;
2#llOkV保護(hù)測控柜:PG0103PL02,其中PG表示屏柜,0103表示01號小室03號屏柜,PL02表示IED名稱,P表示為保護(hù),L表示線路,02表示2#。
2.3 DataType節(jié)點(diǎn)關(guān)聯(lián)的數(shù)據(jù)類型
表明該動態(tài)節(jié)點(diǎn)需要關(guān)聯(lián)的數(shù)據(jù)類型,與監(jiān)控系統(tǒng)內(nèi)的采集點(diǎn)類型保持一致,便于自動關(guān)聯(lián)以及按類型進(jìn)行分類,可根據(jù)實(shí)際情況動態(tài)定義:
(1)EVT:動作事件;
(2)SPG:壓板事件;
(3)DPS:遙信事件;
(4)AIM:告警事件;
(5)MV:遙測;
(6)CTR:點(diǎn)擊控制。
2.4 AchonType節(jié)點(diǎn)交互類型[3]
(l)L:light,顏色改變,例如:裝置面板燈顏色改變,閃爍功能配置:F:Fast快閃,S:Slow慢閃。
a)燈快閃:LFO表示值為0快閃,LFI表示值為1快閃;
b)燈慢閃:LSO表示值為0慢閃,LSl表示值為1慢閃;
( 2)R:rotate,角度旋轉(zhuǎn),使節(jié)點(diǎn)根據(jù)值進(jìn)行旋轉(zhuǎn),例如:硬壓板的投入與退出、表盤指針旋轉(zhuǎn)、開關(guān)刀閘的分閘與合閘等;
(3)CR:clickRotate,鼠標(biāo)點(diǎn)擊選擇,例如點(diǎn)擊開關(guān)門等;
(4)T:text文字變化;
三位序號:用來避免同一個模型中節(jié)點(diǎn)名重復(fù),從001到999依次編號。
2.5 ControIRange控制值范圍
(1)當(dāng)節(jié)點(diǎn)為顏色變化時,值對應(yīng)的是各個狀態(tài)的顏色。
(2)當(dāng)節(jié)點(diǎn)為角度變化時,值為角度范圍,單位為度。
2.6 Desc為節(jié)點(diǎn)描述
節(jié)點(diǎn)描述應(yīng)與監(jiān)控系統(tǒng)數(shù)據(jù)庫點(diǎn)名稱盡量一致。
圖2為三維模型動態(tài)節(jié)點(diǎn)命名示例:
3 三維配置工具
三維配置工具3DConfigTool主要是從三維模型文件中,根據(jù)約定的動態(tài)節(jié)點(diǎn)名稱,解析出動態(tài)節(jié)點(diǎn)對應(yīng)的動態(tài)信息,主要是動態(tài)節(jié)點(diǎn)名稱,描述,節(jié)點(diǎn)交互類型是light或者rotate等,以及對應(yīng)的旋轉(zhuǎn)交互或者顏色變化序列等,并根據(jù)Desc描述的模糊匹配實(shí)現(xiàn)半自動的數(shù)據(jù)庫點(diǎn)的關(guān)聯(lián)。
三維動點(diǎn)配置工具界面如圖3,左側(cè)展示的變電站內(nèi)的所有三維場景目錄,中間展示的是當(dāng)前三維場景的所有動點(diǎn)列表和3D視圖,右側(cè)是電力監(jiān)控系統(tǒng)的數(shù)據(jù)庫點(diǎn)信息和實(shí)時值,提供拖拉、批量關(guān)聯(lián)等便捷地編輯三維動點(diǎn)和數(shù)據(jù)庫點(diǎn)的關(guān)聯(lián)關(guān)系。關(guān)聯(lián)配置完成后即可保存為持久化的配置文件,供三維動態(tài)庫和監(jiān)控系統(tǒng)使用,便于數(shù)據(jù)同步刷新使用。
每個三維模型文件經(jīng)過交互信息和關(guān)聯(lián)信息配置之后,可以切換到“3D視圖”標(biāo)簽頁,如圖4所示,查看三維場景內(nèi)需要實(shí)時變化的節(jié)點(diǎn)是否根據(jù)右側(cè)的實(shí)時數(shù)據(jù)值進(jìn)行了正確的開關(guān)變位以及顏色變化等。模型內(nèi)的所有動態(tài)節(jié)點(diǎn)的初始狀態(tài)為0值對應(yīng)的狀態(tài),當(dāng)值發(fā)生變化后,會根據(jù)節(jié)點(diǎn)交互類型和交互信息進(jìn)行紋理貼圖或者旋轉(zhuǎn)變換等操作。對于旋轉(zhuǎn),采用右手規(guī)則,逆時針旋轉(zhuǎn)為正值,順時針旋轉(zhuǎn)為負(fù)值。三維模型建模時的動態(tài)旋轉(zhuǎn)節(jié)點(diǎn)默認(rèn)為z軸旋轉(zhuǎn),并采用凍結(jié)變換和烘焙樞軸的方式固定交互信息,便于三維程序根據(jù)提取的交互信息對節(jié)點(diǎn)進(jìn)行交互控制。
4 三維動態(tài)庫
4.1 三維動態(tài)庫接口
三維動態(tài)庫主要是利用OSG引擎開發(fā)的針對變電站三維展示需求開發(fā)的動態(tài)鏈接庫。便于電力二維監(jiān)控系統(tǒng)根據(jù)需要靈活地動態(tài)加載三維模塊。同時該三維模塊適用于所有基于Qt開發(fā)的監(jiān)控系統(tǒng)中,具有廣泛的適用性。其中三維接口文件格式如下:
ComponentN23D_create0用于創(chuàng)建基于QGLWidget的窗口句柄N23DPlayerWidget,并完成窗口布局,供監(jiān)控系統(tǒng)進(jìn)行調(diào)用,返回給監(jiān)控系統(tǒng)進(jìn)行展示。
ComponentN23D_configure(COMPONENT3DHANDLE han-dle,std::string& configlnfo)用于監(jiān)控系統(tǒng)給三維窗口句柄傳遞需要展示的三維模型文件和三維動點(diǎn)配置文件,從而提供三維場景的渲染和動態(tài)數(shù)據(jù)交互所需的文件信息。
ComponentN23D_setRefreshTime(COMPONENT3DHAN
—DLE handle,int timelnt)用于監(jiān)控系統(tǒng)設(shè)置指定的三維窗口的動態(tài)數(shù)據(jù)刷新周期。
ComponentN23D_setExcute(COMPONENT3DHANDLE han-dle,type_fn_excute exc_fn)用于執(zhí)行周期刷新,根據(jù)監(jiān)控系統(tǒng)回調(diào)函數(shù)反饋的實(shí)時數(shù)據(jù)完成所有動態(tài)節(jié)點(diǎn)的狀態(tài)變化。
typedef bool (*ComponentN23D_dataRefresh) (std:: vector request,std::vector &response);
ComponentN23D_dataRefresh用于監(jiān)控系統(tǒng)和三維動態(tài)庫之間定義實(shí)時數(shù)據(jù)回調(diào)函數(shù)指針和參數(shù)類型,供三維動態(tài)庫周期傳遞動點(diǎn)列表,監(jiān)控系統(tǒng)返回點(diǎn)列表對應(yīng)的實(shí)時值。
ComponentN23D_locateNode(COMPONENT3DHANDLEhandle.std::string nodeName)提供高亮居中展示節(jié)點(diǎn)的功能,當(dāng)配置工具或者監(jiān)控系統(tǒng)需要定位動態(tài)點(diǎn)對應(yīng)于三維模型中具體位置時使用,便于直觀觀察某一個點(diǎn)實(shí)際狀態(tài),亦可以鼠標(biāo)右擊來放大居中點(diǎn)擊的節(jié)點(diǎn),用于局部放大查看。
4.2 三維渲染流程
三維動態(tài)庫利用osgDB::readNodeFile函數(shù)完成各種類型的三維模型文件的讀取,創(chuàng)建三維視圖osgViewer::Viewer,調(diào)用視圖的setSceneData把讀取的三維場景數(shù)據(jù)傳給視圖,即可完成三維場景的渲染展示;其次利用傳遞的三維動點(diǎn)配置文件,解析出當(dāng)前三維場景中所有需要動態(tài)變化的節(jié)點(diǎn),根據(jù)變化類型形成不同的列表,比如動點(diǎn)變色列表、動點(diǎn)旋轉(zhuǎn)列表、動點(diǎn)鼠標(biāo)響應(yīng)列表等,并完成所有節(jié)點(diǎn)狀態(tài)的初始化展示。
三維動態(tài)庫傳遞當(dāng)前場景中所有動點(diǎn)關(guān)聯(lián)的obid列表信息,監(jiān)控系統(tǒng)根據(jù)列表獲取當(dāng)前數(shù)據(jù)庫中的實(shí)時值,返回給三維動態(tài)庫,三維動態(tài)庫根據(jù)實(shí)時值動態(tài)刷新三維場景中的動態(tài)節(jié)點(diǎn)狀態(tài)。
4.3 三維動態(tài)交互
4.3.1顏色交互
顏色的變化使用材質(zhì)變換來實(shí)現(xiàn),首先獲取動態(tài)節(jié)點(diǎn)的渲染狀態(tài)管理信息osg::StateSet* stateSet =node->getOrCreateState-Set0.根據(jù)不同的顏色傳遞不同的材質(zhì)數(shù)據(jù),比如分態(tài)需要展示紅色:
mat->setAmbient(osg:: Material:: FRONT_AND_BACK, red-Color).
mat->setColorMode(osg::Material::AM BIENT);
stateSet->setAttributeAndModes(mat. get0, osg:: StateAttrib-ute::ON l osg::StateAttribute::OVERRIDE);
4.3.2 旋轉(zhuǎn)交互
對于需要旋轉(zhuǎn)的把手和儀表盤等節(jié)點(diǎn),通過改變節(jié)點(diǎn)變換矩陣即可。關(guān)鍵是儀表盤的旋轉(zhuǎn)角度的計算,通過儀表盤的最小minValue和最大值MaxValue,以及儀表盤的可視區(qū)域角度范圍factor,利用公式float angle= (value - minValue)+ factor/(max-Value - minValue);即可計算出表盤指針的旋轉(zhuǎn)角度,通過矩陣運(yùn)算完成旋轉(zhuǎn)操作:
//獲取節(jié)點(diǎn)的初始矩陣
osg::Matrix m_matrix= node->getMatrix0; //設(shè)置旋轉(zhuǎn)矩陣
node->setMatrix(osg:: Matrix:: rotate(osg:: DegreesToRadians(-angle), osg::Z_AXIS)*m_matrix);
4.3.3 鼠標(biāo)事件交互
對于需要響應(yīng)鼠標(biāo)事件來進(jìn)行操作的動態(tài)交互,首先需要自定義鼠標(biāo)事件處理類CPickHandler,該類繼承自osgGA::G UIEventHandler。根據(jù)ea.getEventType0不同的鼠標(biāo)操作系統(tǒng),響應(yīng)不同的操作[10]。
(1)雙擊導(dǎo)航功能,雙擊特定節(jié)點(diǎn)的時候,完成三維到二維的導(dǎo)航切換,調(diào)用Navigate函數(shù)處理,解析二維畫面;
(2)節(jié)點(diǎn)信息窗口,鼠標(biāo)移動到某一個節(jié)點(diǎn)上時,彈出信息提示框,調(diào)用Popup函數(shù)處理,鼠標(biāo)離開后,提示框消失;
(3)鼠標(biāo)左擊開門或者關(guān)門,調(diào)用OpenDoor函數(shù)處理;
(4)節(jié)點(diǎn)定位居中功能,鼠標(biāo)右擊區(qū)域,自動放大居中顯示,并使用osgFX::Scribe0高亮該節(jié)點(diǎn)。
5 結(jié)論
本文介紹了一種變電站三維模型可視化交互方法,通過規(guī)范化三維模型的動態(tài)節(jié)點(diǎn)命名的方法,并對三維模型中動態(tài)節(jié)點(diǎn)的初始狀態(tài)進(jìn)行統(tǒng)一配置,實(shí)現(xiàn)三維模型和三維程序之間的交互信息的自動化提取和控制。同時闡述了三維配置工具和三維動態(tài)庫渲染交互的全過程,實(shí)現(xiàn)了在二維電力監(jiān)控系統(tǒng)中無縫接入變電站的三維畫面的功能,并同步更新電氣設(shè)備的真實(shí)狀態(tài)到二三維畫面內(nèi)的設(shè)備顯示狀態(tài),更加高效直觀地監(jiān)視變電站,進(jìn)一步增加了設(shè)備的管控力,實(shí)現(xiàn)變電站主輔控設(shè)備的全面監(jiān)視。該變電站三維模型可視化交互系統(tǒng)成功在無錫llOkV鄧巷變試點(diǎn)運(yùn)行,實(shí)際效果圖如圖5。將智慧變電站監(jiān)控推向數(shù)字化、三維可視化、智能化的新高度。
參考文獻(xiàn):
[1]王益,陳珉,王濤,等,智能變電站仿真三維可視化組件裝配技術(shù)研究[J].電力系統(tǒng)保護(hù)與控制,2018,46(23):118-126.
[2]王會勤,周育才,左萃,等.變電站三維智能虛擬運(yùn)檢系統(tǒng)[Jl.電子科學(xué)與技術(shù)學(xué)報,2017,32(4):73-78.
[3]侯俊,李蔚清,林昌年.變電站三維交互場景仿真關(guān)鍵技術(shù)研究[J].電網(wǎng)技術(shù),2005,29(9):70-75.
[4]陶松梅,張煒.基于CIM模型的變電站三維可視化交互技術(shù)應(yīng)用[J].廣西電力,2014,37(6):22-24.
[5]胡星,李維,李書明,基于OSG的水電站運(yùn)行仿真三維交互系統(tǒng)[J].水電廠自動化,2017,38(2):12-15.
[6]李琳琳,宋艷芳.OSG三維渲染引擎在變電站可視化中的英語[J].齊魯工業(yè)大學(xué)學(xué)報,2014,28(1):68-71.
[7]張照彥,段新會,王興武,等.OSG技術(shù)在變電站仿真中的應(yīng)用[Jl,電力科學(xué)與工程,2008,24(8):60-64.
【通聯(lián)編輯:朱寶貴】
作者簡介:劉文彪(1975-),男,碩士,高級工程師,主要研究方向為電力系統(tǒng)監(jiān)控與自動化;王冬霞(1981-),女,博士,高級工程師,主要研究方向為電力系統(tǒng)的監(jiān)控和三維可視化技術(shù)研究;董懷普(1988-),男,碩士,工程師,主要研究方向為電力系統(tǒng)繼電保護(hù)及自動化。