整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          3D場景顯示技術在智能變電站輔助系統中的應用

          3D場景顯示技術在智能變電站輔助系統中的應用

          了提升智能變電站輔助系統的呈現效果,使智能變電站輔助系統的信息呈現更直觀和有效,提出了一種面向智能變電站的3D場景顯示方案。通過圖形透視原理的應用,利用三維軟件Unity3D輔助設計對智能變電站輔助系統進行3D建模、渲染并疊加顯示。武侯變電站試點工程顯示此方案效果良好,適合推廣應用。

          信息化是建設堅強電網的基礎,智能電網建設將為電網信息化的發展帶來變革。隨著新興技術的不斷融入,智能電網信息化建設過程中智能化、自動化、互動性等需求的增加,智能化變電站的建設也在不斷深入。

          智能變電站輔助系統是變電站站端系統,包含視頻監控子系統和環境監控子系統,實現對變電站視頻資源及環境數據的采集和顯示,并實現兩個系統的聯動應用功能,為電網生產運行提供有力的輔助手段。

          隨著智能變電站規模不斷擴大,信息技術綜合應用的深入,智能變電站站端輔助系統的建成成為生產運行及安防應急提供了重要手段。目前變電站站端輔助系統只能顯示二維信息,為了使視頻中的場景以及物體具有立體感,更直觀、逼真、有效地再現現實場景,給人以身臨其境的感受,在智能變電站中引進3D場景顯示技術對智能變電站輔助系統進行展示。本文將對智能變電站輔助系統實現3D場景顯示的關鍵技術進行探討。

          3?D場景顯示技術的現狀及在電力中的需求

          目前國內變電站中智能輔助系統的呈現主要以視頻資源列表、動環數據圖表、一次接線圖、設備照片和現場錄像等常規多媒體方式作為表現手段。

          傳統顯示是基于二維平面,單純的二維場景顯示技術,不能真實的體現出智能變電站內場景的多方向變化,并且無法準確展現變電站現場環境溫濕度、風速、水浸等環境量,無法較為真實的感知現場的實際場景及各類數據信息。因此,需要更為清晰,更具立體效果、功能更加強大的場景顯示技術以適應日趨復雜的電網現代化、智能化建設的需求。

          目前3D場景顯示技術日益成熟,并廣泛應用于影視娛樂、醫學以及軍事等各個領域,并發揮著舉足輕重的作用。在智能電網領域,3D場景顯示技術應用還不普遍, 此技術應用于智能變電站輔助系統中,將彌補了變電站輔助系統無法將站端視頻資源與變電站環境信息更準確、直觀地進行有機結合后呈現出來的缺陷。

          將環境溫濕度及風度、風向等環境量通過3D顯示技術融入到視頻顯示中,達到仿真、立體的效果,給人以身臨其境的感受。能較為真實地反應出現場的設備周邊環境狀況和設備的運行狀況。管理人員通過實時對溫度、濕度、風向等環境信息進行采集、處理和上傳,生成曲線和報表,并與視頻資源進行聯動整合,方便實時監控、歷史查詢、統計分析,更為全面地掌握變電站的運行狀況。

          該技術的應用優化電力部門工作的傳統模式,由事后處理向事前預測轉化,使管理人員有充分的時間和精力去綜合、分析、解決系統運行維護過程中出現的問題,從而提高其管理工作質量。

          3D場景顯示開發環境的比較及選擇

          在計算機領域有多種成熟的三維圖形顯示技術可以選擇。常用的3D開發軟件主要有Unity3D,HTML5等。Unity3D能輕松創建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺綜合型游戲開發工具,是一個全面整合的專業游戲引擎,具有優越的效果和很高的擴展空間;在網絡方面,Unity3D提供了很強大的可視化編輯器和語言層面的網絡類,支持重載和命名空間。

          HTML5是基于SVG、Canvas、WebGL和CSS3的3D功能的開發工具,在瀏覽器中能達到驚人的3D顯示效果,HTML5在支持跨平臺進行使用的同時,還提供數據與應用接入開放接口,使外部應用程序可以直接與瀏覽器內部數據直接相連,例如視頻影音。

          Unity3D相對于其他開發環境,其優勢在于:可以輕松地創建三維視頻,并且可以使用AssetBundle動態載入外部模型,或者使用3ds Max正常制作三維模型,導入生成FBX文件,載入Unity3D中構建,最后進行交互操作。

          盡管HTML5也可是創作模擬出三維場景,但HTML5存在漏洞,產生的數據垃圾會對用戶進行轟炸,甚至會在短時間將硬盤塞滿。綜合各方面因素,選用Unity3D進行三維場景的模擬在技術層而言相對穩定,并且易于操作。此外,Unity3D對于同一項目,在不需要修改的前提下,可以通過菜單發布到各種平臺,市場空間很大。

          實現的關鍵技術

          1 三維模型建立

          首先是進行數據采集,包括地理信息、建筑物紋理等,在變電站中根據現實需求設置多個傳感器,通過傳感器獲取設備或周邊環境情況的信息,如圖1所示。

          圖1 傳感器獲取信息

          對信息進行采集,包括錄像、信息、建筑物紋理等。在變電站中不同的位置設置攝像機,對實時情況進行錄像,通過3ds MAX根據采集的信息進行三維模型建立。在三維模型空間中,設置一個攝像機的點,通過設置攝像機的角度,依據現場攝像機所提供的實際的參數轉換為三維界面中攝像機的模擬參數,形成逼真、生動的現場效果模擬3D圖像。

          設想有一個任意方向、任意位置的物體,我們要把它渲染到任意方向、任意位置的攝像機中。為了做到這一點,必須將物體的所有頂點從物體坐標系變 換到世界坐標系,接著再從世界坐標系變換到攝像機坐標系。其中的數學變換總結如下:

          公式 (1)

          公式(2)

          矩陣乘法滿足結合律,所以我們能用一個矩陣直接從物體坐標系變換到攝像機坐標系:


          公式(3)

          這樣就能在渲染的循環外先將所有矩陣組合起來,使循環內作矩陣乘法的時候只需要和一個矩陣相乘即可(物體有很多頂點,省一次矩陣乘法就會提高不少效 率),如下:

          公式(4)

          通過攝像機和傳感器完成對信息的采集之后,存儲到相應的數據庫中,利用三維制作軟件3ds MAX根據已經采集的信息進行三維模型的建立。

          下面將比較動態貼圖技術和使用Unity3D軟件進行3D場景顯示的兩種方式。

          2 動態貼圖技術

          動態貼圖技術利用在三維模型的不同面以動態貼圖的方式,從不同角度看到的視頻角度不同,在視覺上初步實現3D視頻顯示。

          未經過動態貼圖的三維模型為灰色,通過攝像機獲取監控視頻的畫面,將視頻畫面截取為一幀一幀的圖片,利用已經截取的圖片對已經建立的三維模型動態貼圖。通過在模型不同的面,間隔時間段地進行貼圖,如圖2所示。


          圖2 動態貼圖顯示效果

          通過視頻播放控件與GUI界面中的視頻窗口疊加,視頻截圖不間斷地替換出現,從而實現對視頻的播放。

          但是,通過在三維模型上動態貼圖的方式實現3D視頻顯示的同時也存在一些缺陷。由于三維模型的分辨率較低,將分辨率高于三維模型的視頻截圖動態貼入三維模型時,視頻截圖的分辨率也會隨之降低。背離了3D視頻顯示清晰、真實的技術要求。

          3 Unity3D軟件實現3D場景顯示

          對建立的變電站的三維模型進行透視投影原理進行模型渲染,發布至Web,通過視頻播放插件與GUI界面預設視頻窗口疊加,實現3D場景顯示。

          3.1 模型建立

          各個點的攝像機獲取的場景和設備紋理以及傳感器獲得的各種信息,通過程控放大器、A/D數模轉換以及邏輯控制,傳送到服務器的數據庫中。

          利用三維軟件3ds MAX,根據計算機存放的數據庫中采集的變電站現場的信息進行模型的建立,將建立的模型進行場景的拼接,模擬出變電站現實場景相對應虛擬現實的初步三維模型。利用Unity3D可以導入外部模型的特性,將已經建立的虛擬現實的初步三維模型導入Unity3D中進行模型的透視投影和渲染等。

          3.2 透視投影的實現

          對于透視投影的標準模型,視平面的坐標模型如圖 3 所示,它的坐標原點位于視平面的中心, x 軸正向水平向右, y 軸正向垂直向上。要把透視投影的結果在計算機屏幕上顯示的話,需要對透視圖進行坐標變換,將其從視平面坐標系轉換到屏幕坐標系。


          圖3 視平面坐標模型

          計算機屏幕的坐標模型如圖4所示,它的原點(0,0)位于屏幕的左上角, y 軸正向垂直向下。設視平面的寬度為 Wp ,高度為 Hp ;屏幕的寬度為 Ws ,高度為 Hs 。


          圖4 屏幕坐標模型

          令視平面坐標系中的點( xp, yp )對應于屏幕坐標系中的點( xs, ys ),它們的變換關系如下:xs=a*xp + b; ys=c*yp + d

          由圖2以及圖3可知,視平面中的( 0, 0 )點對應于屏幕坐標系中的中心點( 0.5*Ws-0.5, 0.5*Hs-0.5 );由于屏幕坐標系是離散坐標系,所有屏幕右下點的坐標為( Ws-1, Hs-1 ),而不是( Ws, Hs ));另外,視平面的( -0.5*Wp, -0.5*Hp )對應于屏幕的( 0, 0 )點。

          將上述兩種取值代入變換方程可以得出:


          3.3 載入3D模型

          在3ds MAX中,已經根據現場所采集的信息,包括設備、建筑等按照視頻需求比例進行了三維模型建立;使用Matt Fairfax實現的Model_3DS類支持3DS模型文件的載入。并對已經導入的變電站的三維模型進行視圖變換、透視變換和屏幕變換。

          3.4 視圖變換

          為表示透視投影的模型,實現了KCamera類,除保存視點的位置和姿態,還保存視圖變換矩陣m_kmView,隨著視點位置和姿態的變化,視圖矩陣也不斷更新。對于世界坐標系中的任何一點v(x, y, z),通過v=m_kmView*v將其變換到透視投影的標準模型坐標系,通過KCamera::Transform函數實現。

          3.5 透視變換

          經過視圖變換之后,利用KFrustum類用來對透視投影的模型進行建模,其成員包括視平面的尺寸大小,以及近截面和遠截面的z軸坐標。KFrustum通過Project函數將視圖變換的結果變換為透視坐標。代碼實現如下:

          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 屏幕變換

          實現視圖變換和投影變換之后,需要將其轉換為適合屏幕大小的模型,繼而需要進行屏幕變換;屏幕變換的算法通過宏實現,代碼如下:

          #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 三維模型的渲染

          將已經導入經過投影變換的變電站的電力系統以及變電站周邊環境的三維模型進行渲染,渲染使用軟件來實現,沒有使用任何第三方圖形庫,主代碼在KCamera::Render函數中,它接收兩次參數:Model_3DS和KSurface,對Model_3DS中的頂點進行透視投影。渲染代碼如下:

          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 視頻疊加重合

          三維模型渲染結束之后,將其發布至Web上,在GUI客戶端界面的設計過程中,預留的配置了Web瀏覽器的視頻播放窗口,將Unity3D虛擬視頻與預先定義的視頻窗口進行疊加重合,實現3D視頻的播放功能,從而達到理想中的3D場景顯示的效果,如圖5所示。


          圖5 Unity3D軟件生成3D場景

          4 試點應用

          上述兩種方式均能實現3D視頻的顯示,但通過實際模型對比得出第二種方式實現3D場景顯示的效果優于第一種方式。因此采用第二種方式在220kV武侯變電站上試點建設一套3D顯示系統來展現變電站場景及站端輔助系統。

          用戶可以通過客戶端訪問系統,客戶端所采用的通信協議,具有很強的開放性和兼容性,完全能融合在電力系統現有網絡中。通過標準的客戶端,相關負責人和管理人員可根據不同的權限對系統進行配置及監控,操作界面全部為中文可視化界面,使用非常方便。

          此系統將獲取的真實站端動環數據,如環境溫濕度、風度、風向等環境量以及門禁,集成到3D場景顯示系統中。在此3D顯示界面上,管理人員可以根據3D虛擬現實視頻中得到的實時數據的模擬數據,判斷設備周邊環境和設備運行情況。

          圖6所示為設備周邊環境,能真實地反映出周邊環境溫濕度、風度、風向等環境量以及門禁等的變化。


          圖6 設備周邊環境

          圖7所示為設備運行情況,根據3D虛擬現實視頻中的實時數據,立體、形象、真實地反映了變電站各個設備的細節和特征以及運行情況,讓管理人員和技術人員可以更直觀地了解設備的運行情況。


          圖7 設備運行情況

          試點表明利用透視原理,使用Unity3D軟件可以很好地展現生成變電站3D場景,并能把輔助系統的相關數據都融合到這個界面上,對變電站的全景數據進行有效的展示。

          結束語

          目前,3D視頻顯示技術雖然已經應用于眾多領域,但在電力企業的信息化建設中應用并不普遍,武侯變電站的試點結果表明,在電網的信息化建設中,采用3D場景顯示技術呈現變電站設備的空間關系以及環境數據的實時變化,既可以縱覽全局,也可以觀察局部詳細信息,為變電站的智能化管理提供了直觀、準確并且真實的監控管理方式。

          利用3D場景顯示技術進行有效的監控和管理,能更好地滿足生產運維、安防應急的需求,同時也有利于工程人員進行擴建項目的分析和設計,將大大提高管理的可操作性并提升了電網信息化的管理和決策水平。

          本文編自《電氣技術》,標題為“3D場景顯示技術在智能變電站輔助系統中的應用”,作者為馬玫、楊鴻昌 等。

          tml5/3D旋轉特效

          html5/3D旋轉特效,毫無javascript痕跡!

          做這個html5特效,其實對于新手來說還是有一定的難度的,雖然沒有javascript,但是用到了許多html5的新特性,包括構建3d場景,對于旋轉的一些計算,對于3d多邊體的組合,都是這個特效里面的一些難點,當然如果配合javascript來做,肯定會更加簡單,更何況現在html5的兼容性也是一個大問題,有興趣的可以把這個特效用原生javascript寫出來,那樣對于自己的javascript肯定是有很大的提升的!下面附上HTML5源碼!

          對于web前端的學習有不懂的,或者不知道學習路線,不知道學習方法,不知道該如何扎實能找到工作的朋友,可以來我們頭條前端群570946165,全套系統學習資料已上傳群文件!

          html5/3D旋轉特效,毫無javascript痕跡源碼:

          代碼過長不利于排版需要文檔版源碼請來頭條前端群570946165

          需要更多前端學習資料/視頻/學習方法,請關注后,私信“學習”

          近期群里有很多朋友反饋,html5不重要,學好框架就行了,但是現在的面試其實很重視基礎的,對于原生javascript以及html5更是重視,比如面試中,你會不會移動端,會不會封裝javascript插件,都是你面試的一個加分項,如果你只想找外包,那么可以多學些框架的運用,但是如果你想有更大的發展,對自己的未來負責的話,原生javascript和html5是必須要學的很精的!

          發語言:Html5

          開發工具:HBuilderX

          先說一下,開發工具下載,可以直接去百度搜HBuilderX,


          百度搜“HBuilder”


          根據自己的系統點擊直接下載

          準備工作


          提前準備好js,css,img圖片


          廢話不多說,我們直接把代碼敲起來

          開發步驟:

          1、雙擊打開HBuilderX

          2、點擊創建項目

          3、 在項目中添加素材

          1)將圖片素材拷貝至img文件夾中

          2)將style.css文件拷貝至css文件夾中

          3)將3d-tv.js文件拷貝至js文件夾中

          4、編輯index.html

          5、運行看效果

          <script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>


          小伙伴,如果你覺得不錯,幫忙點贊噢


          主站蜘蛛池模板: 国产一区二区三区露脸| 精品久久久久久无码中文字幕一区| 亚洲国产日韩在线一区| V一区无码内射国产| 3d动漫精品啪啪一区二区中文| 亚洲综合无码一区二区痴汉| 亚洲一区二区三区久久| 国产精品男男视频一区二区三区| 99精品高清视频一区二区| 国产一区二区三区精品久久呦| 久久精品一区二区三区资源网| 国产AV午夜精品一区二区入口 | 好吊妞视频一区二区| 麻豆一区二区三区蜜桃免费| 久久无码精品一区二区三区| 国产福利91精品一区二区三区 | 美女福利视频一区二区| 国产精品无码一区二区三级| 成人久久精品一区二区三区| 国产成人精品一区在线 | 国产一区二区三区在线免费观看 | 亚洲电影国产一区| 国产A∨国片精品一区二区| 中文无码一区二区不卡αv| 日韩亚洲一区二区三区| 国产激情一区二区三区成人91| 亚洲字幕AV一区二区三区四区| 亚洲日韩激情无码一区| 国模私拍一区二区三区| 无码少妇一区二区| 视频一区二区三区人妻系列| 国产乱码精品一区二区三区四川人| 亚洲一区精品视频在线| 女女同性一区二区三区四区| 日本免费一区二区三区最新| 日韩在线一区二区| 国产精品成人一区二区| 亚洲美女一区二区三区| 无码人妻精品一区二区三区66 | 久久久久久人妻一区精品| 久久久国产精品无码一区二区三区 |