信息化是建設(shè)堅(jiān)強(qiáng)電網(wǎng)的基礎(chǔ),智能電網(wǎng)建設(shè)將為電網(wǎng)信息化的發(fā)展帶來變革。隨著新興技術(shù)的不斷融入,智能電網(wǎng)信息化建設(shè)過程中智能化、自動化、互動性等需求的增加,智能化變電站的建設(shè)也在不斷深入。
智能變電站輔助系統(tǒng)是變電站站端系統(tǒng),包含視頻監(jiān)控子系統(tǒng)和環(huán)境監(jiān)控子系統(tǒng),實(shí)現(xiàn)對變電站視頻資源及環(huán)境數(shù)據(jù)的采集和顯示,并實(shí)現(xiàn)兩個系統(tǒng)的聯(lián)動應(yīng)用功能,為電網(wǎng)生產(chǎn)運(yùn)行提供有力的輔助手段。
隨著智能變電站規(guī)模不斷擴(kuò)大,信息技術(shù)綜合應(yīng)用的深入,智能變電站站端輔助系統(tǒng)的建成成為生產(chǎn)運(yùn)行及安防應(yīng)急提供了重要手段。目前變電站站端輔助系統(tǒng)只能顯示二維信息,為了使視頻中的場景以及物體具有立體感,更直觀、逼真、有效地再現(xiàn)現(xiàn)實(shí)場景,給人以身臨其境的感受,在智能變電站中引進(jìn)3D場景顯示技術(shù)對智能變電站輔助系統(tǒng)進(jìn)行展示。本文將對智能變電站輔助系統(tǒng)實(shí)現(xiàn)3D場景顯示的關(guān)鍵技術(shù)進(jìn)行探討。
目前國內(nèi)變電站中智能輔助系統(tǒng)的呈現(xiàn)主要以視頻資源列表、動環(huán)數(shù)據(jù)圖表、一次接線圖、設(shè)備照片和現(xiàn)場錄像等常規(guī)多媒體方式作為表現(xiàn)手段。
傳統(tǒng)顯示是基于二維平面,單純的二維場景顯示技術(shù),不能真實(shí)的體現(xiàn)出智能變電站內(nèi)場景的多方向變化,并且無法準(zhǔn)確展現(xiàn)變電站現(xiàn)場環(huán)境溫濕度、風(fēng)速、水浸等環(huán)境量,無法較為真實(shí)的感知現(xiàn)場的實(shí)際場景及各類數(shù)據(jù)信息。因此,需要更為清晰,更具立體效果、功能更加強(qiáng)大的場景顯示技術(shù)以適應(yīng)日趨復(fù)雜的電網(wǎng)現(xiàn)代化、智能化建設(shè)的需求。
目前3D場景顯示技術(shù)日益成熟,并廣泛應(yīng)用于影視娛樂、醫(yī)學(xué)以及軍事等各個領(lǐng)域,并發(fā)揮著舉足輕重的作用。在智能電網(wǎng)領(lǐng)域,3D場景顯示技術(shù)應(yīng)用還不普遍, 此技術(shù)應(yīng)用于智能變電站輔助系統(tǒng)中,將彌補(bǔ)了變電站輔助系統(tǒng)無法將站端視頻資源與變電站環(huán)境信息更準(zhǔn)確、直觀地進(jìn)行有機(jī)結(jié)合后呈現(xiàn)出來的缺陷。
將環(huán)境溫濕度及風(fēng)度、風(fēng)向等環(huán)境量通過3D顯示技術(shù)融入到視頻顯示中,達(dá)到仿真、立體的效果,給人以身臨其境的感受。能較為真實(shí)地反應(yīng)出現(xiàn)場的設(shè)備周邊環(huán)境狀況和設(shè)備的運(yùn)行狀況。管理人員通過實(shí)時對溫度、濕度、風(fēng)向等環(huán)境信息進(jìn)行采集、處理和上傳,生成曲線和報(bào)表,并與視頻資源進(jìn)行聯(lián)動整合,方便實(shí)時監(jiān)控、歷史查詢、統(tǒng)計(jì)分析,更為全面地掌握變電站的運(yùn)行狀況。
該技術(shù)的應(yīng)用優(yōu)化電力部門工作的傳統(tǒng)模式,由事后處理向事前預(yù)測轉(zhuǎn)化,使管理人員有充分的時間和精力去綜合、分析、解決系統(tǒng)運(yùn)行維護(hù)過程中出現(xiàn)的問題,從而提高其管理工作質(zhì)量。
在計(jì)算機(jī)領(lǐng)域有多種成熟的三維圖形顯示技術(shù)可以選擇。常用的3D開發(fā)軟件主要有Unity3D,HTML5等。Unity3D能輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時三維動畫等類型互動內(nèi)容的多平臺綜合型游戲開發(fā)工具,是一個全面整合的專業(yè)游戲引擎,具有優(yōu)越的效果和很高的擴(kuò)展空間;在網(wǎng)絡(luò)方面,Unity3D提供了很強(qiáng)大的可視化編輯器和語言層面的網(wǎng)絡(luò)類,支持重載和命名空間。
HTML5是基于SVG、Canvas、WebGL和CSS3的3D功能的開發(fā)工具,在瀏覽器中能達(dá)到驚人的3D顯示效果,HTML5在支持跨平臺進(jìn)行使用的同時,還提供數(shù)據(jù)與應(yīng)用接入開放接口,使外部應(yīng)用程序可以直接與瀏覽器內(nèi)部數(shù)據(jù)直接相連,例如視頻影音。
Unity3D相對于其他開發(fā)環(huán)境,其優(yōu)勢在于:可以輕松地創(chuàng)建三維視頻,并且可以使用AssetBundle動態(tài)載入外部模型,或者使用3ds Max正常制作三維模型,導(dǎo)入生成FBX文件,載入U(xiǎn)nity3D中構(gòu)建,最后進(jìn)行交互操作。
盡管HTML5也可是創(chuàng)作模擬出三維場景,但HTML5存在漏洞,產(chǎn)生的數(shù)據(jù)垃圾會對用戶進(jìn)行轟炸,甚至?xí)诙虝r間將硬盤塞滿。綜合各方面因素,選用Unity3D進(jìn)行三維場景的模擬在技術(shù)層而言相對穩(wěn)定,并且易于操作。此外,Unity3D對于同一項(xiàng)目,在不需要修改的前提下,可以通過菜單發(fā)布到各種平臺,市場空間很大。
1 三維模型建立
首先是進(jìn)行數(shù)據(jù)采集,包括地理信息、建筑物紋理等,在變電站中根據(jù)現(xiàn)實(shí)需求設(shè)置多個傳感器,通過傳感器獲取設(shè)備或周邊環(huán)境情況的信息,如圖1所示。
圖1 傳感器獲取信息
對信息進(jìn)行采集,包括錄像、信息、建筑物紋理等。在變電站中不同的位置設(shè)置攝像機(jī),對實(shí)時情況進(jìn)行錄像,通過3ds MAX根據(jù)采集的信息進(jìn)行三維模型建立。在三維模型空間中,設(shè)置一個攝像機(jī)的點(diǎn),通過設(shè)置攝像機(jī)的角度,依據(jù)現(xiàn)場攝像機(jī)所提供的實(shí)際的參數(shù)轉(zhuǎn)換為三維界面中攝像機(jī)的模擬參數(shù),形成逼真、生動的現(xiàn)場效果模擬3D圖像。
設(shè)想有一個任意方向、任意位置的物體,我們要把它渲染到任意方向、任意位置的攝像機(jī)中。為了做到這一點(diǎn),必須將物體的所有頂點(diǎn)從物體坐標(biāo)系變 換到世界坐標(biāo)系,接著再從世界坐標(biāo)系變換到攝像機(jī)坐標(biāo)系。其中的數(shù)學(xué)變換總結(jié)如下:
公式 (1)
公式(2)
矩陣乘法滿足結(jié)合律,所以我們能用一個矩陣直接從物體坐標(biāo)系變換到攝像機(jī)坐標(biāo)系:
公式(3)
這樣就能在渲染的循環(huán)外先將所有矩陣組合起來,使循環(huán)內(nèi)作矩陣乘法的時候只需要和一個矩陣相乘即可(物體有很多頂點(diǎn),省一次矩陣乘法就會提高不少效 率),如下:
公式(4)
通過攝像機(jī)和傳感器完成對信息的采集之后,存儲到相應(yīng)的數(shù)據(jù)庫中,利用三維制作軟件3ds MAX根據(jù)已經(jīng)采集的信息進(jìn)行三維模型的建立。
下面將比較動態(tài)貼圖技術(shù)和使用Unity3D軟件進(jìn)行3D場景顯示的兩種方式。
2 動態(tài)貼圖技術(shù)
動態(tài)貼圖技術(shù)利用在三維模型的不同面以動態(tài)貼圖的方式,從不同角度看到的視頻角度不同,在視覺上初步實(shí)現(xiàn)3D視頻顯示。
未經(jīng)過動態(tài)貼圖的三維模型為灰色,通過攝像機(jī)獲取監(jiān)控視頻的畫面,將視頻畫面截取為一幀一幀的圖片,利用已經(jīng)截取的圖片對已經(jīng)建立的三維模型動態(tài)貼圖。通過在模型不同的面,間隔時間段地進(jìn)行貼圖,如圖2所示。
圖2 動態(tài)貼圖顯示效果
通過視頻播放控件與GUI界面中的視頻窗口疊加,視頻截圖不間斷地替換出現(xiàn),從而實(shí)現(xiàn)對視頻的播放。
但是,通過在三維模型上動態(tài)貼圖的方式實(shí)現(xiàn)3D視頻顯示的同時也存在一些缺陷。由于三維模型的分辨率較低,將分辨率高于三維模型的視頻截圖動態(tài)貼入三維模型時,視頻截圖的分辨率也會隨之降低。背離了3D視頻顯示清晰、真實(shí)的技術(shù)要求。
3 Unity3D軟件實(shí)現(xiàn)3D場景顯示
對建立的變電站的三維模型進(jìn)行透視投影原理進(jìn)行模型渲染,發(fā)布至Web,通過視頻播放插件與GUI界面預(yù)設(shè)視頻窗口疊加,實(shí)現(xiàn)3D場景顯示。
3.1 模型建立
各個點(diǎn)的攝像機(jī)獲取的場景和設(shè)備紋理以及傳感器獲得的各種信息,通過程控放大器、A/D數(shù)模轉(zhuǎn)換以及邏輯控制,傳送到服務(wù)器的數(shù)據(jù)庫中。
利用三維軟件3ds MAX,根據(jù)計(jì)算機(jī)存放的數(shù)據(jù)庫中采集的變電站現(xiàn)場的信息進(jìn)行模型的建立,將建立的模型進(jìn)行場景的拼接,模擬出變電站現(xiàn)實(shí)場景相對應(yīng)虛擬現(xiàn)實(shí)的初步三維模型。利用Unity3D可以導(dǎo)入外部模型的特性,將已經(jīng)建立的虛擬現(xiàn)實(shí)的初步三維模型導(dǎo)入U(xiǎn)nity3D中進(jìn)行模型的透視投影和渲染等。
3.2 透視投影的實(shí)現(xiàn)
對于透視投影的標(biāo)準(zhǔn)模型,視平面的坐標(biāo)模型如圖 3 所示,它的坐標(biāo)原點(diǎn)位于視平面的中心, x 軸正向水平向右, y 軸正向垂直向上。要把透視投影的結(jié)果在計(jì)算機(jī)屏幕上顯示的話,需要對透視圖進(jìn)行坐標(biāo)變換,將其從視平面坐標(biāo)系轉(zhuǎn)換到屏幕坐標(biāo)系。
圖3 視平面坐標(biāo)模型
計(jì)算機(jī)屏幕的坐標(biāo)模型如圖4所示,它的原點(diǎn)(0,0)位于屏幕的左上角, y 軸正向垂直向下。設(shè)視平面的寬度為 Wp ,高度為 Hp ;屏幕的寬度為 Ws ,高度為 Hs 。
圖4 屏幕坐標(biāo)模型
令視平面坐標(biāo)系中的點(diǎn)( xp, yp )對應(yīng)于屏幕坐標(biāo)系中的點(diǎn)( xs, ys ),它們的變換關(guān)系如下:xs = a*xp + b; ys = c*yp + d
由圖2以及圖3可知,視平面中的( 0, 0 )點(diǎn)對應(yīng)于屏幕坐標(biāo)系中的中心點(diǎn)( 0.5*Ws-0.5, 0.5*Hs-0.5 );由于屏幕坐標(biāo)系是離散坐標(biāo)系,所有屏幕右下點(diǎn)的坐標(biāo)為( Ws-1, Hs-1 ),而不是( Ws, Hs ));另外,視平面的( -0.5*Wp, -0.5*Hp )對應(yīng)于屏幕的( 0, 0 )點(diǎn)。
將上述兩種取值代入變換方程可以得出:
3.3 載入3D模型
在3ds MAX中,已經(jīng)根據(jù)現(xiàn)場所采集的信息,包括設(shè)備、建筑等按照視頻需求比例進(jìn)行了三維模型建立;使用Matt Fairfax實(shí)現(xiàn)的Model_3DS類支持3DS模型文件的載入。并對已經(jīng)導(dǎo)入的變電站的三維模型進(jìn)行視圖變換、透視變換和屏幕變換。
3.4 視圖變換
為表示透視投影的模型,實(shí)現(xiàn)了KCamera類,除保存視點(diǎn)的位置和姿態(tài),還保存視圖變換矩陣m_kmView,隨著視點(diǎn)位置和姿態(tài)的變化,視圖矩陣也不斷更新。對于世界坐標(biāo)系中的任何一點(diǎn)v(x, y, z),通過v = m_kmView*v將其變換到透視投影的標(biāo)準(zhǔn)模型坐標(biāo)系,通過KCamera::Transform函數(shù)實(shí)現(xiàn)。
3.5 透視變換
經(jīng)過視圖變換之后,利用KFrustum類用來對透視投影的模型進(jìn)行建模,其成員包括視平面的尺寸大小,以及近截面和遠(yuǎn)截面的z軸坐標(biāo)。KFrustum通過Project函數(shù)將視圖變換的結(jié)果變換為透視坐標(biāo)。代碼實(shí)現(xiàn)如下:
void KFrustum::Project(KVector3& v)
{
// xp = x*n/z, yp = y*n/z, zp = n.
float fFactor = GetNear()/v.z;
v.x *= fFactor;
v.y *= fFactor;
v.z = GetNear();
}
3.6 屏幕變換
實(shí)現(xiàn)視圖變換和投影變換之后,需要將其轉(zhuǎn)換為適合屏幕大小的模型,繼而需要進(jìn)行屏幕變換;屏幕變換的算法通過宏實(shí)現(xiàn),代碼如下:
#define ToScreen(v, Ws, Hs) /
{/
float x = (v.x/GetWidth()+0.5f)*(Ws-1);/
float y = (v.y/GetHeight()+0.5f)*(Hs-1);/
v.x = KMath::Round(x);/
v.y = KMath::Round(y);/
}
3.7 三維模型的渲染
將已經(jīng)導(dǎo)入經(jīng)過投影變換的變電站的電力系統(tǒng)以及變電站周邊環(huán)境的三維模型進(jìn)行渲染,渲染使用軟件來實(shí)現(xiàn),沒有使用任何第三方圖形庫,主代碼在KCamera::Render函數(shù)中,它接收兩次參數(shù):Model_3DS和KSurface,對Model_3DS中的頂點(diǎn)進(jìn)行透視投影。渲染代碼如下:
using UnityEngine;
using System.Collections;
public class CameraFacingBillboard : MonoBehaviour
{
public Camera cameraToLookAt;
void Start()
{
cameraToLookAt = Camera.main;
}
void Update()
{
Vector3 v = cameraToLookAt.transform.position - transform.position;
v.x = v.z = 0.0f;
transform.LookAt(cameraToLookAt.transform.position - v);
}
}
3.8 視頻疊加重合
三維模型渲染結(jié)束之后,將其發(fā)布至Web上,在GUI客戶端界面的設(shè)計(jì)過程中,預(yù)留的配置了Web瀏覽器的視頻播放窗口,將Unity3D虛擬視頻與預(yù)先定義的視頻窗口進(jìn)行疊加重合,實(shí)現(xiàn)3D視頻的播放功能,從而達(dá)到理想中的3D場景顯示的效果,如圖5所示。
圖5 Unity3D軟件生成3D場景
4 試點(diǎn)應(yīng)用
上述兩種方式均能實(shí)現(xiàn)3D視頻的顯示,但通過實(shí)際模型對比得出第二種方式實(shí)現(xiàn)3D場景顯示的效果優(yōu)于第一種方式。因此采用第二種方式在220kV武侯變電站上試點(diǎn)建設(shè)一套3D顯示系統(tǒng)來展現(xiàn)變電站場景及站端輔助系統(tǒng)。
用戶可以通過客戶端訪問系統(tǒng),客戶端所采用的通信協(xié)議,具有很強(qiáng)的開放性和兼容性,完全能融合在電力系統(tǒng)現(xiàn)有網(wǎng)絡(luò)中。通過標(biāo)準(zhǔn)的客戶端,相關(guān)負(fù)責(zé)人和管理人員可根據(jù)不同的權(quán)限對系統(tǒng)進(jìn)行配置及監(jiān)控,操作界面全部為中文可視化界面,使用非常方便。
此系統(tǒng)將獲取的真實(shí)站端動環(huán)數(shù)據(jù),如環(huán)境溫濕度、風(fēng)度、風(fēng)向等環(huán)境量以及門禁,集成到3D場景顯示系統(tǒng)中。在此3D顯示界面上,管理人員可以根據(jù)3D虛擬現(xiàn)實(shí)視頻中得到的實(shí)時數(shù)據(jù)的模擬數(shù)據(jù),判斷設(shè)備周邊環(huán)境和設(shè)備運(yùn)行情況。
圖6所示為設(shè)備周邊環(huán)境,能真實(shí)地反映出周邊環(huán)境溫濕度、風(fēng)度、風(fēng)向等環(huán)境量以及門禁等的變化。
圖6 設(shè)備周邊環(huán)境
圖7所示為設(shè)備運(yùn)行情況,根據(jù)3D虛擬現(xiàn)實(shí)視頻中的實(shí)時數(shù)據(jù),立體、形象、真實(shí)地反映了變電站各個設(shè)備的細(xì)節(jié)和特征以及運(yùn)行情況,讓管理人員和技術(shù)人員可以更直觀地了解設(shè)備的運(yùn)行情況。
圖7 設(shè)備運(yùn)行情況
試點(diǎn)表明利用透視原理,使用Unity3D軟件可以很好地展現(xiàn)生成變電站3D場景,并能把輔助系統(tǒng)的相關(guān)數(shù)據(jù)都融合到這個界面上,對變電站的全景數(shù)據(jù)進(jìn)行有效的展示。
目前,3D視頻顯示技術(shù)雖然已經(jīng)應(yīng)用于眾多領(lǐng)域,但在電力企業(yè)的信息化建設(shè)中應(yīng)用并不普遍,武侯變電站的試點(diǎn)結(jié)果表明,在電網(wǎng)的信息化建設(shè)中,采用3D場景顯示技術(shù)呈現(xiàn)變電站設(shè)備的空間關(guān)系以及環(huán)境數(shù)據(jù)的實(shí)時變化,既可以縱覽全局,也可以觀察局部詳細(xì)信息,為變電站的智能化管理提供了直觀、準(zhǔn)確并且真實(shí)的監(jiān)控管理方式。
利用3D場景顯示技術(shù)進(jìn)行有效的監(jiān)控和管理,能更好地滿足生產(chǎn)運(yùn)維、安防應(yīng)急的需求,同時也有利于工程人員進(jìn)行擴(kuò)建項(xiàng)目的分析和設(shè)計(jì),將大大提高管理的可操作性并提升了電網(wǎng)信息化的管理和決策水平。
本文編自《電氣技術(shù)》,標(biāo)題為“3D場景顯示技術(shù)在智能變電站輔助系統(tǒng)中的應(yīng)用”,作者為馬玫、楊鴻昌 等。