三維建模及運維應用已逐步進入到了各個行業領域,如電力、石化、建筑等,成為國內外高水平公司在工程設計、工程管理及工程實施、運行階段的重要輔助手段。目前,國網電氣一次專業、土建專業三維數字化技術的研究及應用已趨于標準化且進入推廣階段。
隨著國網公司《輸變電工程三維設計模型交互規范》系列標準的發布,電網信息模型(grid infor- mation model, GIM)進入工程化階段,達到了統一模型構建方法、數據組織、編碼統一和交互規則的目的。
同時,《三維設計通用模型庫應用目錄(2018版)》的發布,統一建模了14大類電氣一次設備、動力設施、水工暖通設施等471個三維通用模型,按照統一的模型深度、技術參數和接口建模,實現模型的通用性和標準化。三維設計的標準化建設成果已日趨成熟并進入推廣應用階段。
但是,在輸變電工程三維設計相關標準和模型庫目錄中,只規定了線路及變電一次設備的建模規范和數字化移交要求,缺少變電站二次系統三維設計方面相關的關鍵技術研究,比如二次對象模型庫、二次回路邏輯文件、二次應用接口文件等,導致輸變電工程三維設計數字化移交不完整、數字檔案不齊全。
其中,變電二次方面更多的是體現功能原理,較難的是二次三維實物模型,相關的三維數字化方面的研究還較少,二次系統三維數字化方面仍處于起步階段。變電站二次三維建模方面的缺失影響智能變電站工程三維設計覆蓋范圍和應用效果,同時制約著二次系統三維全景可視化展示及高效運檢。
針對二次對象的三維模型不完整,對變電站各類二次對象進行廣泛調研,確立二次三維建模的范圍、深度和參數,構建全面完善的二次對象三維模型并形成有效的模型管理庫,將對電網建設和生產階段產生積極作用。同時,現有的三維模型建立手段較為復雜,開發一款具有基本模型庫設計、組合模型庫設計、模型庫管理等功能的智能變電站二次對象模型庫設計軟件,具有重要的意義。
基于“輸變電工程三維設計系列標準”,三維設計以數據庫為支撐、三維模型為依托,通過數據驅動模型,從二維到三維,完成總體設計。針對三維設計配置及三維全景可視化的需求,三維軟件平臺的選擇和使用極為重要。
對工程設計而言,軟件的簡明、清晰、低成本是提升工程質量的重要因素,并且也決定了這款三維軟件的可推廣性。選定的三維引擎應既能支撐PC端和移動端的三維場景可視化,又能從開發復雜性、開發周期以及后期維護等方面考慮。
本文選取Unity3D和3DMax,以3DMax為建模工具、Unity3D為引擎,開發一款模型庫設計軟件作為模型展示管理的平臺,配合數據庫將變電站二次系統三維模型進行專業化整合分類,統一在該平臺下協同設計,以符合設計流程及體系文件的要求,滿足實際工程中各項功能的需要。數字化三維模型庫設計軟件平臺架構如圖1所示。
圖1 模型庫設計軟件平臺架構圖
模型庫設計軟件以SQL sever、Unity3D以及3DMax為基礎平臺配合模型及模型信息數據庫進行開發,同時包含基本模型庫和組合模型庫兩個庫。
應用層面包括三維模型庫設計平臺和管理平臺,三維模型庫設計平臺包括對模型分類設計、模型組裝設計、模型參數設計、模型優化設計以及模型貼圖渲染設計;管理平臺包含對模型的導入導出管理、數據庫及模型庫的管理。軟件最后輸出的成果即為二次對象三維模型以及二次對象模型Word清單。
2.1 三維建模工具3DMax
3DMax是Autodesk公司開發的一款三維建模以及制作動畫的軟件,目前已經在各個領域(如建筑設計、廣告設計、游戲等)被廣泛應用。
相比其他的一些三維建模軟件,3DMax在建模能力、模型優化、模型精度方面有著較大的優勢,具體如下所述:1)功能強大,極強的建模能力,極好的擴展性,有很多插件供用戶選擇;2)界面優質,操作方便,易上手;3)軟件的穩定性好,兼容性好;4)可以導出絕大多數通用的模型格式。
2017年底國家電網公司已制定印發了8項就輸變電工程三維設計展開的標準,將變電站二次對象三維模型作為三維設計技術實施的具體對象。模型是各方面工作、實現數據有效傳遞的基石,應遵循“標準統一、兼容交互、模型通用”三項原則。因此,選擇功能強大的3DMax對復雜多樣的二次對象進行建模,可以大大提高模型設計的效率及精度,實現模型的標準通用化。
2.2 三維引擎Unity3D
Unity3D是丹麥Unity Technologies公司開發的多平臺的游戲開發引擎,是一個全面的多平臺的綜合型游戲開發工具。相比傳統的游戲開發引擎,Unity3D的編輯器界面非常友好,如圖2所示,將大部分的開發工作以可視化的方式提供給了開發人員。
Unity引擎的功能專業且非常強大,它最顯著的特點就是可跨平臺開發。一個完整的Unity3D開發的程序是由若干個場景(scene)組合起來的,而每個場景包含許多的對象模型(game object),這些對象模型都是由腳本(script)來控制其行為的。
圖2 Unity3D編輯器界面
圖2所示為在3DMax中建好的設備模型導入到Unity3D中進行效果展示,可以看出Unity3D界面中有5種視圖:項目視圖、游戲視圖、場景視圖、層次視圖以及監測視圖。
以本項目為例,各個視圖作用如下:
1)項目視圖。存放二次對象模型庫設計軟件所用到的所有資源文件,如二次對象模型、腳本文件、貼圖材質等。
2)游戲視圖。對二次對象模型進行各種復雜的編輯之后,點擊運行按鈕,可以展示模型的最終效果。
3)場景視圖。對模型進行一系列操作,包括移動、放大縮小、旋轉、上材質等。
4)層次視圖。存放當前場景中所有用到的模型對象以及攝像機、地形、粒子效果、UI等。
5)監測視圖。點擊選中的對象,可以預覽該對象的屬性,并且可以加以修改。
本文基于Unity3D引擎,實現變電站二次對象三維模型設計軟件的開發。從實際工程二次對象三維建模以及程序設計管理角度考慮,智能變電站的所有二次對象的三維建模及呈現,同一類對象尤其二次設備,不同廠家的外觀、面板、背板結構都不統一。
故為提高設計效率,本文設計基本模型庫及組合模型庫兩個模型庫。無論二次對象在基本模型庫還是組合模型庫,都存在各式各樣的分類,并且,兩個庫之間也存在著一定的依存關系,如圖3所示。
圖3 三維模型庫存儲管理樹狀節點圖
3.1 基本模型庫建立
隨著國網公司“四統一、四規范”的發布,對測控、交換機、網關機等自動化設備進行了信息模型、菜單顯示的統一及參數配置的規范等,同時對一些二次設備的外觀進行了統一,但是規范并未涵蓋保護、合并單元、智能終端等設備,故對基本模型庫可以按照規范進行擴展設計,對屏柜、設備、線纜、硬壓板、端子排等不同的二次對象分別建立最小化基本模型,以提高工程設計及配置效率。
屏柜方面包括線路保護屏柜、測控屏等以及屏體、屏眉等。二次設備方面包括機箱、面板、插件、端口等。線纜方面包括光纜、電纜、尾纜、纖芯、跳纖等。端子排方面包括標識、類型等。由此,細化最小模型。表1—表5分別為各個基本模型的分類,至于暫時未涵蓋的內容可以后期通過模型庫管理功能中的模型添加功能進行完善。
表1 屏柜模型分類
表2 二次設備模型分類
表3 線纜模型分類
表4 端子排模型分類
表5 硬壓板模型分類
針對基本模型庫中的模型,可以將其分為簡單模型和復雜模型。簡單模型可直接通過查看CAD圖紙獲取尺寸信息,復雜模型則需要對實物對象進行三維點云掃描才能獲取尺寸,然后拍攝相應部位的照片(貼圖用)。
簡單模型和復雜模型建模方式也完全不同,簡單模型的建模方式主要有創建標準基本體、擴展標準體和樣線條,復雜模型則主要通過復合、放樣和擠出的方式進行建模。
模型創建完之后,需要對模型的位置旋轉角度等進行基本參數的修改,最后對模型進行貼圖渲染,真實還原二次對象模型?;灸P蛶斓木唧w建模流程如圖4所示。
圖4 基本模型庫具體建模流程
1)簡單模型創建
通過3DMax制作所有的模型幾乎都是在簡單模型的基礎上加以編輯組裝修改得到的。簡單模型包括常見的立方體、球體、膠囊體等。以一個檢修硬壓板為例加以說明??此坪唵蔚囊粋€壓板,也是通過將近20個簡單模型通過各種組裝、變形、擠出、封口等編輯操作得到的,如圖5所示。
圖5 檢修硬壓板模型組裝前后圖
(1)標準基本體。通過3DMax自帶的標準基本體功能,可以創建一些簡單的三維模型,如長方體、球體、圓柱體等。
(2)擴展基本體。通過擴展基本體功能可以創建異面體、切角長方體、切角圓柱體等模型。
(3)樣線條??梢詣摻ㄒ恍┚€條類的模型,如弧線、一些曲面等。
2)復雜模型創建
智能變電站二次系統三維模型均屬于復雜模型,需要在簡單模型的基礎上對其進行一系列的復雜操作,從而得到相應的模型。常見的復雜操作有復合操作、放樣操作、擠出操作。
(1)復合操作。復合模型是指兩個或者多個模型組合疊加形成的模型,布爾復合方式是最常用的,可以選取操作對象的并集、交集、切割等種類。根據不同的操作模式得到不同的復合模型。
(2)放樣操作。放樣操作是指將一個二維圖形對象作為剖面,沿著某個路徑構造出復雜模型的過程。通常這樣的二維圖形為封閉的二維曲線,如圓、多邊形、梯形等。
(3)擠出操作。擠出模型原理與放樣模型類似。擠出操作需要給定模型的一個剖面,然后通過擠出修改器,可以對模型的截面進行擠出操作,設定擠出的深度及方向,然后通常還要對模型進行封口操作,這樣才能得到封閉的實體模型。
3)參數修改
不管是簡單模型還是復雜模型,都會有相應的參數修改面板,通過修改面板上的參數可以對模型進行微調,以有效提高模型的設計精度。除了模型自身的結構參數外,還有模型的位置信息參數,在三維空間內每一個模型都有X、Y、Z坐標,這3個參數決定了模型的位置以及旋轉的角度。
圖6所示為一個二次設備的模型,把它從項目文件中提取到場景視圖中,并且選中該模型,從最右側的監測視圖中可以看到該設備模型的長寬高、旋轉角度、大小基本信息以及材質信息和綁在該模型上的腳本等。
圖6 二次設備模型信息圖
4)貼圖及材質渲染設置
通過材質編輯器可以為模型設定相應的材質。材質的來源有很多種,純色的、木質的、金屬的等。在材質編輯器中設置好之后,就可以將材質附著到模型上,這樣在模型編輯器窗口中就可以看見帶有材質的模型了,即材質效果圖。
為了減少計算機CPU的計算時間,使得傳輸速度加快,利用烘焙功能將光照信息貼到貼圖上去。在利用3DMax中高質量的材質效果與Unity3D結合后,模型的燈光效果看起來很有視覺感,材質和光照都非常清晰,具有立體感,這樣就能真實地還原二次系統三維模型。為了規范模型的光照信息,模型庫中所有模型都采用純粹的自然光照。
5)3DMax中模型導出
在3DMax中,建好對象模型之后就可以進行導出操作,非常簡單,可以選擇多模型導出,也可以只導出單個模型。強大的3DMax支持導出多種格式的模型,如圖7所示。因為Unity3D中所用的模型大多數為.obj格式,所以本文中所有模型都是.obj格式的。
3.2 組合模型庫建立
組合模型庫的設計包括物理層面和信息層面兩部分,物理層面基于基本模型庫進行二次對象的三維模型拼接,信息層面描述二次對象的基本屬性以及特殊屬性。
物理層面主要基于基本模型庫,拼接一個或者多個基本模型形成一個相對獨立且完整的二次對象的組合模型。
圖7 模型的導出
信息層面主要面向二次設備,包括設備類型、設備名稱、設備型號、設備版本、生產廠商、所屬間隔、額定電流、額定電壓、PMS設備ID號、電網標識系統編碼、物料編碼等,為各個階段的模型移交提供保障,并可以在模型進行展示時進行關聯性展示。
遵循《輸變電工程三維設計模型交互規范》系列標準,使一、二次模型得以交互,即二次設備模型庫能夠與一次設備模型庫進行無縫銜接。可以將一次設備模型導入模型庫中,編譯解析過后就可以將一次設備模型和二次設備模型進行自由拼接。
1)二次對象模型的組裝
將3DMax中創建好的二次對象模型導入到Unity3D中,導入過程中需要對模型進行一些簡單的處理,以防止一些材質信息的丟失。同時采用LZMA的壓縮算法,將一個15MB左右的模型文件壓縮為2MB左右,以達到網絡傳輸速度的要求。
將模型文件導入到模型庫設計軟件后,可以對模型進行組裝,組裝成一個完整的端子排或是設備、屏柜等。以前模型的組裝幾乎都是通過配置文件來設置模型的三維坐標,但是二次對象種類、數量繁多,所以本文開發了一個模型控制器,用來控制模型的位置信息以及旋轉角度信息。圖8所示為組裝屏柜的實時畫面。
圖8 組裝屏柜的實時畫面
組裝模型操作步驟如下:
(1)鼠標拾取對象
鼠標拾取對象主要采用的是射線檢測的方法,從屏幕發射一條射線,鼠標的位置即射線射向的位置,射線碰到的第一個物體即要操作的對象模型。如圖9所示,A、B、C 3個對象模型,如果鼠標指向C,那么射線檢測到的物體即為C對象模型。
圖9 鼠標拾取模型對象
(2)鼠標控制對象
每個對象模型都掛了一個Transform組件,這個組件顯示信息就是對象模型的位置信息、旋轉角度信息以及大小信息,如圖10所示。
圖10 模型的Transform組件
通過修改面板上的數值就可以控制對象模型的位置、角度以及大小,而本文的控制器可以直接通過鼠標控制對象模型,鼠標拾取對象模型后,左擊按住移動,對象模型就會跟著移動,相應的Transform上的值也會跟著變化;右擊按住移動,對象模型就會跟著進行旋轉;為防止模型大小被隨意更改,又考慮到用戶可能需要放大模型進行仔細觀察,故本文通過改變攝像機的位置,根據相似三角形原理拉近或拉遠對象模型,以達到放大和縮小的效果,如圖11所示。
圖11 改變攝像機位置效果示意圖
2)二次對象模型優化處理
在對二次對象模型組裝完成后,為了降低場景的復雜度,提高場景顯示實時性,減少性能消耗,加快處理速度,需要對模型進行優化處理。
針對不同的二次對象模型,選擇的優化模型方法也不同。
(1)減面工具。一些(如保護裝置、ODF等)結構比較復雜,表面細化分明,弧面較多,需要大量的頂點和多邊形的對象模型,渲染起來會十分浪費計算機空間,影響渲染的速度和質量。減面工具的原則是在保持模型不變的情況下,盡可能地減少模型的面數。
(2)模型合并?;灸P蛶熘械哪P瓦M行組裝之后,有些模型可以進行合并,比如插件端口組裝到板卡上,這樣就成了一個整體,無法再被單獨選中。
(3)優化材質與貼圖。模型創建完成后都要加上材質與貼圖。本文以模型的最優原則為準,幾乎所有的模型都是利用標準材質,只有極少數的對象(如設備液晶顯示屏的顏色)采用高光控制。組裝起來的模型可以重新上材質,可以選擇對基本模型的材質進行覆蓋,也可以進行材質合并。
(4)細節層次(level-of-detail, LOD)技術。用不同的細節程度來展現模型對象,在渲染場景時,LOD細節層次技術的機制是根據視點離對象模型的距離使用適當的層次來展現物體,當攝像機距離試點模型比較近時,采用的是高精度LOD模型繪制;反之,則采用低精度的LOD模型進行繪制。這種技術可以大幅度減少顯示多邊形的數量,極大提高渲染速度。表6所示為LOD層次模型精度表。
表6 LOD層次模型精度表
一級模型屬于精細模型,用戶視點位置距離模型6m范圍之內,能夠觀察到模型的細節紋理特征,此時模型是提供最精細的方式供用戶觀測。
二級模型屬于精簡模型,用戶視點位置距離模型6m范圍之外,模型的一些網格信息和紋理特征被忽視,此時模型以精簡模型顯示給用戶。以端子排為例進行LOD層次劃分,圖12(a)、圖12(b)所示分別為端子排的精細模型和精簡模型。
圖12 端子排精細模型和精簡模型
三維模型庫的功能設計是實現對基本模型庫以及組合模型庫的有效管理。確定模型庫的體系結構之后,應配套相應的管理系統以便從宏觀、整體的角度管理模型庫中的二次對象模型資源,維護模型庫的獨立性和完整性,這樣才能快速獲取所需模型,實現對已有模型數據集合的有效查詢及接口引用。
從最基本的管理維護功能和應用功能考慮,管理系統應該具備如下功能:模型預覽及信息屬性查詢、組合模型的保存導出、添加模型和刪除模型。各功能具體任務如下:
1)模型預覽和信息屬性查詢功能是指可以通過導航的搜索按鈕尋找目標對象模型以及顯示模型的對應信息。如圖13所示。
圖13 模型庫設計軟件搜索功能
2)組合模型的保存導出功能是指用戶從基本模型庫中選擇模型完成組裝之后,點擊保存按鈕,將組合模型保存至組合模型庫中,完成保存后可以將模型導出成.obj等常用的模型格式??紤]到與一次設備進行良好的兼容,也可以導出成.gim格式的模型,如圖14所示。
圖14 模型庫設計軟件保存功能
3)添加模型功能是指將模型庫中沒有的模型加入模型庫中,通過3DMax新建模型,同步數據庫中關于該模型的文件屬性以及一些材質貼圖等,然后通過腳本文件配置好后,放入已經部署好的數據庫,本地客戶端運行時就會自動加載新增加的模型,其原理如圖15所示。
4)刪除模型是指永久性刪除模型庫中的模型,刪除模型文件以及數據庫中的模型信息,用戶只需要選擇刪除對象,點擊刪除按鈕即可,如圖16所示。
圖15 添加模型原理圖
圖16 模型庫設計軟件刪除功能
本文面向智能變電站二次系統,研究和梳理了現有的三維模型數字化、信息化規范要求,提出了二次系統進行三維建模的方法、范圍、深度,在設計階段對三維模型進行有效管理,并實現與現階段數字化移交文件的交互。
建立二次對象的基本模型庫和組合模型庫供三維設計時調用,提高了二次對象的建模深度,實現了模型的統一管理、統一發布。在二次三維設計時,可直接調用模型庫中的二次對象模型,而無需手動拼出該模型,很大程度上改善了出圖形式,提升了三維出圖深度和設計效率。