李福林,宋元斌,吳 冰,嚴 偉
(1.上海交通大學 船舶海洋與建筑工程學院,上海 200240;2.國家電網(wǎng)浙江省電力有限公司經(jīng)濟技術研究院,杭州 310008;3.浙江華云清潔能源有限公司,杭州 310008)
設計階段的合規(guī)性審核將影響變電站建成后的安全與可靠運行,可以從設計源頭消除事故隱患。變電站布置設計的合規(guī)性審核包括檢查各電氣設備及建(構)筑物的空間布局等是否符合相關設計規(guī)范的要求。目前,變電站布置的合規(guī)性審核主要依賴人工完成,工作量大、耗時長、且易產(chǎn)生錯漏[1]。實現(xiàn)變電站布置的合規(guī)性自動化審核是解決上述問題的一條重要途徑。
近年,工程設計的自動審核在施工隱患識別[2]、防火[3]等領域取得積極進展。相關研究表明,設計合規(guī)性自動審核的關鍵模塊是將設計規(guī)范轉譯為機器可執(zhí)行的程序[4]。目前常見的規(guī)則編碼方法有2種:硬編碼法[5]和語義網(wǎng)[6,7]。前者將規(guī)范直接編寫為命令式程序語言檢查信息模型,如新加坡CORENET項目[8]聘請專業(yè)軟件公司開發(fā)規(guī)則對象庫FORNAX并使用C++語言編寫審核規(guī)則。這類方法對領域專家的編程能力要求高且審核系統(tǒng)不透明、可維護性差。而部分學者提出的基于語義網(wǎng)的編碼方法,借助語義網(wǎng)與本體建模將規(guī)范轉換為描述式邏輯語言,與命令式程序語言相比編碼難度有所降低。例如Lu等[9]通過簡單的“IF…ELSE…”模板將屋頂開口尺寸設計規(guī)范編寫為SWRL規(guī)則并利用Jess引擎推理評判設計的合規(guī)性。為了審核變電站布置的合規(guī)性,除了需要邏輯語言描述的設計規(guī)則外,還涉及大量的圖形幾何和空間分析算法,此類過程用邏輯語言表述極其復雜[10]。更加困難的是,一般工程技術人員難以在短時間內掌握上述編碼方法,而且編碼成果的可讀性差,工程技術專家難以審核和維護編碼成果,而計算機專家對規(guī)則的理解又存在局限性。
近年來,可視化編程得到廣泛應用,它主要是讓用戶以繪制流程圖的形式編寫程序[11,12]。在梳理變電站布置規(guī)則構成的共性要素基礎上,筆者提出面向變電站布置自動審核的設計規(guī)范可視化編程方法,主要包括一個三層結構的可視化編程框架和編程步驟,并詳細定義了節(jié)點、端子與流的類型,以期降低設計規(guī)則的編碼難度,同時提高自動審核工具的可維護性和透明性,從而更好地輔助變電站布置設計的自動審核。
在設計規(guī)范中,變電站布置的設計規(guī)則可以歸納為五個方面:
1)工作環(huán)境:電氣設備應布置在合理場地且周邊自然環(huán)境滿足裝置安全運行的要求。
2)電氣安全空間:帶電體之間以及與其他設施之間應保持足夠距離以避免強電場擊穿介質閃絡放電而引起各種短路、火災和爆炸事故。
3)圍擋防護:在部分電氣設備周圍需布置圍擋防護以防止人和物過分觸及或接近。
4)防火消防:電氣設備的布置應考慮防火要求,并設置必要的消防設施。
5)可維修性:電氣設備之間,以及電氣設備與建(構)筑物之間,應預留足夠的空間以滿足檢修的要求。
上述五類布置設計規(guī)則的審核推理與運算主要需要以下三類計算功能的支持:
1)基本代數(shù)運算:算術運算、邏輯運算及關系運算功能等。
2)空間分析:主要負責計算對象之間的空間關系等信息,如“在變壓器、配電裝置和裸導線的正上方不應布置燈具”[13](《20KV及以下變電所設計規(guī)范》6.4.3條)。
3)幾何模型計算:主要負責計算對象的幾何模型等信息,如“配電裝置中電氣設備的柵狀遮攔高度不應小于1.2m。”[14](《3~110KV高壓配電裝置設計規(guī)范》5.3.7條)。
以《3~110KV高壓配電裝置設計規(guī)范》為例,各類布置規(guī)則涉及的基本計算功能需求如表1所示。
表1 基本計算功能需求統(tǒng)計
總體上,空間分析和幾何模型計算是規(guī)則編碼的重點,它們都涉及較為復雜的幾何(形體)計算或空間分析算法,此類算法不易采用邏輯語言描述;盡管也可采用硬編碼法轉譯,但對設計專家的編程能力要求高,編碼難度大。
可視化編程的核心思想是將各類基本計算功能封裝于節(jié)點內部,各個節(jié)點用數(shù)據(jù)流和控制流加以連接形成程序?;谏鲜鼍幊趟枷?,工程技術專家可專注于布置設計規(guī)則表述本身而不需要考慮具體的編程細節(jié)。為了實現(xiàn)上述可視化編程思想,需要提出一個框架,從可視化編程的要素與層次方面規(guī)定設計規(guī)則的程序。
圖1展示了布置設計規(guī)范可視化編程的三層框架,自底向上為別為基礎層、復用層和規(guī)則層。
圖1 設計規(guī)范的可視化編程框架
最底層為基礎層,包含預定義的各類節(jié)點、端子、流。節(jié)點不僅封裝了前述的3類基本計算功能,還封裝了設計模型訪問等功能。端子是節(jié)點的數(shù)據(jù)輸入和輸出接口,流是實現(xiàn)數(shù)據(jù)傳遞和流程控制的方式,包括數(shù)據(jù)流和控制流2類。以空間拓撲分析節(jié)點為例,圖2展示了其各個要素。
圖2 節(jié)點示例
另外,節(jié)點的設計還需考慮其泛用性和合適的顆粒度,以保證節(jié)點的復用性強,且易于專家理解和使用。以圖2中的空間拓撲分析節(jié)點為例,其泛用性表現(xiàn)在能夠判斷兩個任意對象的拓撲關系而不局限于特定對象;而合適顆粒度則表現(xiàn)為領域專家僅需要關心節(jié)點的輸入和輸出,而無需了解節(jié)點內部封裝的3DR27等復雜計算模型[15]。
中間的復用層包含專家利用基本功能節(jié)點編寫設計規(guī)則的一些中間結果,它們由專家二次封裝形成復用節(jié)點以便于在其他規(guī)則的編程中重復使用,例如“外墻”、“帶電構件”等概念。復用節(jié)點之間也可相互引用并進一步封裝。
最頂層為規(guī)則層,專家基于復用層和基礎層,通過獲取審核對象、規(guī)范編碼、合規(guī)性評價三步構建最終的數(shù)字化審核規(guī)則。復用層與規(guī)則層的節(jié)點組合和連接信息均可采用XML格式記錄。
布置設計規(guī)則的詳細節(jié)點類型如表2所示。
表2 節(jié)點類型
節(jié)點的端子是數(shù)據(jù)的入口和出口,主要數(shù)據(jù)類型及其標識如表3所示。
表3 節(jié)點端子數(shù)據(jù)類型
為了保證節(jié)點的泛用性,本文基于國家電網(wǎng)有限公司針對變電站三維設計提出的電網(wǎng)信息模型(Grid Information Modeling,GIM)[16],定義了由圖形數(shù)據(jù)段和非圖形數(shù)據(jù)段組成的內部類GIMObject,從而統(tǒng)一設計對象的數(shù)據(jù)類型。此外,數(shù)據(jù)格式之間應具備一定的兼容性,例如浮點型兼容整型、GIM對象型兼容三維模型對象型等。
1)數(shù)據(jù)流:運行過程中節(jié)點間的數(shù)據(jù)流轉,包括基本的數(shù)據(jù)類型,例如整型、浮點型、布爾型等。
2)控制流:控制程序執(zhí)行的邏輯順序,一般包括分支和循環(huán)控制。
首先在必要的功能節(jié)點輸入端子上額外增加布爾控制型輸入端子以定義該節(jié)點是否執(zhí)行。其次,將循環(huán)結構嵌入節(jié)點內部實現(xiàn)循環(huán)控制,其中內部循環(huán)分為2類:全循環(huán)與分組循環(huán)。全循環(huán)是指遍歷輸入數(shù)組中的每一個元素進行運算;分組循環(huán)是指在處理多個數(shù)組輸入時,以相同數(shù)組索引的元素為一組進行遍歷計算。以空間拓撲分析節(jié)點為例,假設分析類型為判斷分析對象(bj,j=1,2)是否在參考對象(ai,i=1,2)內部,那么全循環(huán)和分組循環(huán)的計算過程分別如圖3(a)~圖3(b)所示。
圖3 帶有循環(huán)的節(jié)點計算過程
如圖3(a)所示,全循環(huán)控制遍歷數(shù)組A,B中的每一個元素,共進行4次運算,最終輸出滿足拓撲關系的元素數(shù)組,并使用統(tǒng)一的數(shù)組索引指示對象間的關系(即對象b1,b2在a1內部,b2在a2內部);而如圖3(b)所示,分組循環(huán)控制以相同數(shù)組索引的元素為組遍歷,共進行2次運算,最終輸出滿足拓撲關系的元素數(shù)組(即對象b1在a1內部,b2在a2內部)。全循環(huán)與分組循環(huán)的本質區(qū)別在于是否考慮多個輸入數(shù)組對應元素間的關系。
當審核的設計對象在模型中已經(jīng)明確定義時,可直接使用模型數(shù)據(jù)訪問節(jié)點查詢。查詢的約束條件通常包括對象的類型(如變壓器,裸導線)、屬性(如額定電壓、安裝場所)、關系(如對象所屬的上級系統(tǒng))等,而對象圖形方面的約束則通過幾何模型計算中的相關節(jié)點實現(xiàn)。當審核對象未在模型中明確定義時(如外墻),需要通過計算獲取審核對象。
獲取審核對象后,按照規(guī)范內容進行編程,若待審核信息已經(jīng)在模型中顯式定義,則可直接從審核對象中抽取,例如變壓器的額定電壓、安裝位置等;若待審核信息未在模型中顯式定義,如變壓器與裸導線的空間拓撲關系,則需要利用相關基礎節(jié)點或復用節(jié)點進一步計算獲取。
獲取待審核的信息后,與設計規(guī)范中的標準進行比較并評價審核信息的合規(guī)性。
本文基于Grasshopper平臺開發(fā)了變電站布置設計規(guī)則的可視化編程原型系統(tǒng),以復雜的布置設計規(guī)則的編碼為例,實現(xiàn)某變電站GIM模型的合規(guī)性自動審核,驗證所提出方法的有效性和實用性,其他布置規(guī)則的編碼過程類似。案例數(shù)據(jù)來源如下:
GIM模型數(shù)據(jù):某變電站工程設計GIM模型實例。為支持對GIM模型數(shù)據(jù)訪問,本文提前解析GIM模型并將其導入MySQL數(shù)據(jù)庫,每類構件的信息借助屬性子表和模型子表分別記錄并通過構件ID關聯(lián),構件間的關系通過關系表記錄。屬性子表每一列記錄構件的一個屬性字段,模型子表記錄三維模型OBJ對象序列化后的二進制文件。此外,基于GIM模型信息分類代碼表建立規(guī)范表述與GIM模型之間的映射關系。
審核規(guī)則:《3~110KV高壓配電裝置設計規(guī)范》第5.4.8條[14]:“當火災危險類別為丙、丁、戊類的生產(chǎn)建筑物外墻距屋外油浸變壓器外廓5m以內時,在變壓器高度以上3m的水平線以下及外廓兩側各加3m的外墻范圍內,不應有門、窗或通風孔?!?/p>
專家根據(jù)該條規(guī)則審圖的思路如下:首先查找距離屋外油浸變壓器5m以內的相關建筑物外墻,之后將變壓器外廓向距離最近的外墻面投影(圖4中A區(qū)域),最后審核投影面輪廓外加3m的外墻范圍內(圖4中立方體B)是否有門、窗和通風孔存在。
圖4 設計規(guī)則5.4.8的空間關系
顯然該規(guī)則涉及過程性的知識表示(在變壓器高度以上…及外廓兩側…外墻范圍內),因此難以基于語義網(wǎng)轉譯;另一方面,盡管采用硬編碼可以完成該規(guī)則編碼,但對于一般工程技術人員編碼難度很高,而且編碼成果十分復雜,難以在后續(xù)進行審核和維護?;诒疚奶岢龅脑O計規(guī)范可視化編程框架完成該條規(guī)則的編碼:
1)審核對象獲取:圖5(a)~圖5(b)分別展示了待審核對象“屋外油浸變壓器”以及“門、窗、通風孔”的可視化編程過程。
圖5 搜索構件對象的可視化程序
GIM對象選擇節(jié)點根據(jù)約束條件自動生成查詢語句并向模型數(shù)據(jù)庫發(fā)送數(shù)據(jù)請求,例如圖5(a)生成的查詢語句如下:
其中,Transformer_ATT、Transformer_MOD分別為變壓器的屬性子表和模型子表。之后,GIM對象選擇節(jié)點將返回的數(shù)據(jù)反序列化,并進一步轉化為GIMObject數(shù)據(jù)格式輸出,從而供下游節(jié)點使用。
圖6 搜索外墻的的可視化程序
圖7 設計規(guī)則5.4.8的可視化程序
圖6展示了待審核對象“火災危險類別為丙、丁、戊類的生產(chǎn)建筑物外墻”的編碼過程,由于“外墻”對象未在設計模型中明確定義,通過判斷墻與其所在的建筑物是否內切以確定是否為外墻。由于需要找到所有外墻,因此空間拓撲分析節(jié)點采用全循環(huán)。封裝上述規(guī)則的中間表示(例如“外墻”),并作為復用層成果,以便在轉譯其他規(guī)則時使用。
2)規(guī)范編碼:封裝所有審核對象獲取過程后,規(guī)則最終編碼結果如圖7所示。首先,通過軟碰撞檢測節(jié)點獲得所有屋外變壓器外廓5m以內的外墻,構成軟碰撞對象序列對(節(jié)點1全循環(huán));之后取變壓器和外墻的OBB包圍盒,計算外墻包圍盒中距離相應變壓器最近的面模型,即距離最近的外墻面(節(jié)點2分組循環(huán));接著,將變壓器包圍盒向其對應的最近面模型做三維投影計算(節(jié)點3分組循環(huán)),并將投影面向兩側及上方緩沖3m形成二維緩沖區(qū);最后,以該二維緩沖區(qū)域為拉伸面,向最近墻面法向量的反方向拉伸,拉伸距離為外墻墻體厚度,形成的三維拉伸體即為禁止門、窗、通風孔對象存在的三維空間區(qū)域(節(jié)點4分組循環(huán))。
3)合規(guī)性評價:通過空間拓撲分析節(jié)點,判斷審核對象門、窗、通風孔是否在拉伸體內存在(節(jié)點5全循環(huán)),形成該條規(guī)則最終的可視化程序。
利用該規(guī)則審核某變電站GIM模型實例,執(zhí)行規(guī)則后節(jié)點5的輸出端子均為空值,表示拉伸體內不存在門、窗、通風孔。通過進一步查看中間結果,可發(fā)現(xiàn)不存在外墻與屋外油浸變壓器發(fā)生軟碰撞(如圖8所示),即說明屋外油浸變壓器外廓5m的范圍內不存在外墻,該設計模型能夠滿足圖4所示的設計規(guī)則的要求。
圖8 規(guī)則5.4.8的合規(guī)性自動審核結果
從上述布置設計規(guī)則編碼過程可以看出,可視化編程過程直觀,工程技術專家采用可視化編程方法可以自行對復雜的布置規(guī)則進行編碼;編碼成果透明度高、可讀性強,有利于后續(xù)專家對規(guī)則編碼成果進行審核和維護。若后續(xù)規(guī)范發(fā)生修訂變更,專家可在原有可視化程序的基礎上繼續(xù)修改,從而避免軟件工程師維護代碼所帶來的高昂成本和潛在錯誤。
本文在歸納變電站設計規(guī)范中布置規(guī)則編碼所需功能基礎上,提出設計規(guī)范的可視化編程的三層框架,并著重規(guī)范了其中的節(jié)點、端子、流的類型;案例研究表明,一般設計人員采用可視化編程的方式可以直觀地對變電站布置的設計規(guī)則進行編碼,編碼成果更加易于理解、審核和維護。
雖然目前該方法只是針對變電站設計的布置規(guī)則編碼進行了初步嘗試,但由于該方法的框架普遍適用性,在對節(jié)點功能進行拓展后也可用于其他類型的設計合規(guī)性審核,這是筆者目前正在進行的研究。