摘要 I
ABSTRACT Ill
目錄 V
第一章緒論 1
1.1研究背景及意義 1
1._國內外研究現狀 2
1.2.1基于BIM的大壩安全信息管理現狀 2
1.2.2 WebGL技術現狀 3
1.2.3安全分析與評價技術現狀 5
1.3本文主要研究內容及章節安排 6
第二章多源信息下的混凝土壩運行期安全信息管理 7
2」傳統大壩運行期安全信息管理模式 7
2丄丨大壩安全信息管理內容 7
2.1.2傳統模式下的存在問題 8
2 2BIM在運行期安全信息管理中的應用分析 9
2.2.1數字化移交 10
2.2.2信息集成和管理 11
2.2.3數據可視化管理 11
2.2.4流程管理 12
2 .3 BIM在運行期安全信息管理中的應用優勢 13
2.4本章小結 14
第三章B/S架構下運行期安全信息管理平臺搭建技術研究 15
工1基于WebGL的模型可視化功能實現 15
3」.1 WebGL加載與渲染流程 15
3.1.2模型格式轉化 17
3.1.3場景加載與渲染優化 22
3.1.4基于模型的交互功能的實現方法 24
3.2運行期安全信息管理平臺前后臺數據交互 26
3.2.1WebSocket 概念 26
3.2.2WebSocket 實現原理 28
3.2.3基于 Python 的 WebSocket 實現 30
3.3配套移動端開發技術 34
3.3.1移動端開發的必要性 34
33.2移動端實現方法選擇 35
3.3.3基于微信企業號的移動端實現 36
3.4本章小結 41
第四章基于實測安全信息的實時安全分析與評價 42
4.1實時安全分析和評價流程 42
4.2混凝土壩安全實時報警 43
4.2.1異常數據識別流程 43
4.2.2異常數據識別方法 43
4.2.3異常數據報警分級建立 48
4.3混凝土壩安全數據處理與預測 48
4.3.1異常數據原因分析 48
43.2數據處理 49
4.3.3二次分析 49
4.4基于層次分析法和爛權法的多層次安全模糊評價 50
丄丄1模糊評價原理和流程 50
4.4.2評價指標集合 51
4.4.3評語集合的設定 52
4.4.4模糊評判矩陣確定 53
4.4.5組合權重的確定 54
4.4.6模糊評價結果 55
4.5基于模型的應急處理流程 55
4.6本章小結 56
第五章B/S架構下混凝土壩運行期安全信息管理平臺開發與應用 57
5.1平臺開發目標 57
5.2平臺架構 58
5.3系統開發工具 59
5.4平臺功能模塊與應用 60
5.4.1 BIM 可視化管理平臺 61
5.4.2項目信息管理 64
5.4.3設備信息管理 64
5.4.4安全數據管理 65
5.4.5實時安全信息管理 66
5.5本章小結 72
第六章總結與展望 73
6.1總結 73
6.2展望 74
參考文獻 75
研究生期間科研情況說明 79
致謝 80
第一章緒論
1.1研究背景及意義
近年來,我國的水利工程建設飛速發展,工程設計與施工數字化發展越來 越快,建設管理水平與質量有顯著提高[1]。但是不可否認的是目前對于水利工 程運行期的科學管理還在起步階段。運行期的持續時間占據項目生命周期至少 80%以上的時間,同時混凝土壩安全從設計階段就受到各方重點關注,如何提 高運行期工程的管理水平并降低管理成本是每個水利工程項目都必須正視的問 題。大壩建設的影響是雙面的,大壩正常運用時帶來很高的經濟效益,但是如 果失事,將給下游人民生命財產和國民經濟建設帶來巨大的損失,招致災難性 的后果。考慮到運行期周期長、環境條件多變等特點,必須在運行期做好大壩 的監測和安全分析工作。
傳統的安全監測數據主要由人工采集獲得,大壩安全監測數據量多且冗雜, 需要耗費大量的人力資源,且人工統計存在較大的偶然性,對于安全分析的精 確度有較大影響。安全檢查和維護的記錄依靠文本進行統計,各環節之間銜接 存在困難。隨著水利工程信息化水平的不斷提高,大壩安全監測也提出了新的 方案。首先表現在各種自動化安全監測儀器的普遍使用,大壩安全監測自動化 程度顯著提升,數據采集和數據傳輸技術也已經接近世界先進水平,保證了基 礎數據采集的穩定性I2】。其次表現在安全監測系統的開發技術以及安全評判方 法的多樣化,對于大壩安全信息管理有明顯的促進作用。當前物聯網、云計算、 移動開發以及BIM技術發展十分迅速,傳統工程行業與高新技術結合勢在必行, 如何將高新技術正確地融入到運行期的安全運行管理中,是管理者需要思考的 重要問題。
目前開發的安全監測系統大多采用C/S架構平臺進行開發,通過應用物聯 網、OpenGL以及數學統計方面的知識,實現大壩在線可視化安全監控。但是 傳統的系統平臺無法匹配現在日益增長的移動辦公的需求,其人機互動的體驗 較差。隨著WebGL以及BIM技術的不斷完善,基于BIM的B/S架構安全信息 管理系統能夠使用戶更直觀、更迅速地獲取安全信息管理資料。B/S架構的主 要優勢在于前后端分離,且計算分析壓力集中在服務器上,用戶可以通過瀏覽 器實時登錄系統查看大壩安全運行狀態。
本文以混凝土壩為例,實現了基于WebGL的混凝土壩運行期安全管理平 臺的開發,充分利用數據庫技術、可視化技術以及網絡通信技術,結合BIM的 理論知識,構建一個統一、網絡化、數字化的運行期混凝土壩安全信息管理和 實時分析平臺,及時發現混凝土壩隱患并采取有效措施,對確保混凝土壩安全 運行具有重要的理論意義和實用價值。
1.2國內外研究現狀
121基于BIM的大壩安全信息管理現狀
(1)大壩安全信息管理現狀
大壩作為樞紐建設過程中的核心工程,其基本的功能是攔洪蓄水,其安全 穩定性直接與人民的生命安全掛鉤,如果大壩質量出現問題,后果不堪設想。 對混凝土壩來說,從整個生命周期來看,影響混凝土壩安全的因素多種多樣, 其中包括自然因素、結構機理、材料特性、施工控制以及運行管理[3]。由于混 凝土壩的運行期是個長時間不間斷的過程,在這個階段內必然會遇到構件老化 導致的安全隱患,單純依靠人力對安全隱患進行排查工作量十分巨大,因此需 要通過自動化的手段來實現運行期的安全數據采集,并依據可靠的傳輸手段將 信息傳輸到服務器上,構建安全信息管理系統。
國外的大壩自動化監測控制研究大概起始于上個世紀60年代,經過數十年 的發展和測試,在70年代基本上進入實際使用階段。在國外,最早是意大利在 大壩安全監測方面進展比較迅速,首先由國家電力局組織研發了 MAMS自動 化監測數據采集系統,實現了大壩監測數據的自動采集[4]。國內從90年代開始 出現了安全監測信息系統[5]。隨著20年來的不斷發展,我國在大壩安全信息管 理領域有了巨大的進步,逐漸由自動化向數字化方向轉變[6]。賈化萍等卩]基于 C/S和B/S混合架構開發了安全信息管理系統,通過C/S對數據進行管理,通 過B/S完成數據的在線展示。張宗亮[8]等針對安全監測數據量大、種類多的特 點提出了土石壩安全信息管理辦法,并通過可視化的界面對安全數據進行查詢。 胡瀚尹I9】等針對流域大壩群的安全信息集成和管控進行了研究,實現多模式的 安全信息全生命周期管理,并成功應用在大渡河流域。
(2)BIM在安全信息管理中的應用
Eastman于19世紀70年代提出建筑信息模型BIM的概念[10],最早應用在 建筑行業中,隨著BIM概念以及技術的不斷完善,現在BIM已經推廣到整個 工程領域。國外的BIM技術已經發展得十分成熟,針對安全控制方面主要實現 了 BIM數據接口的定義,并基于BIM模型進行精細化管理。Zainab Riaz等[11] 使用BIM技術構建空間模型,并與安全監測傳感器結合開發了密閉空間遠程安 全監控系統,通過將監測數據與模型進行綁定,實現監測數據可視化快速查詢, 旨在對施工過程安全進行有效的把控。AM Costin等[12]通過設計算法有效減輕 BIM在安全信息管理階段數據量過大的壓力,通過試驗證明了 RDIF與BIM的 結合可以實現工人定位的可視化以及追蹤信息在建筑控制中的具體位置。國內 BIM還處在發展階段,馬飛[13]將BIM技術運用到南水北調輸水箱的安全監測 過程中,建立了長距離水箱涵的結構模型,介紹BIM在水利工程安全監測的具 體管理內容,分析了使用BIM模型為基礎開發安全監測系統的優勢。郭海超[14] 等通過使用C/S架構下的技術語言分析建筑運維期的安全指標,實現集成監測 數據可視化,結構數據、結構狀態數據等一體的集成管理平臺。王超[15]通過使 用C#完成Revit的二次開發工作,研究了安全監測相關的IFC語義擴展,并針 對安全監測系統的數據庫結構進行了設計。數字化移交也是當前BIM應用研究 的重點之一,主要實現不同階段、不同單位時間數據的無縫轉接,國內目前在 電廠方面正在進行推廣,水利方面由于模型復雜,信息種類繁多,因此移交現 處于起步階段[16-18]。
通過對當前安全信息管理和BIM應用現狀研究可以看出,針對混凝土壩安 全信息管理著重在對安全監測數據的管理,對于巡查,儀器維護、應急預案等 其他方面的安全信息管理內容涉及較少,其次基于BIM的安全信息管理尚處在 起步階段,且缺少自主開發的系統平臺,最后信息管理中移動端系統也是信息 采集和查詢的關鍵一環,但是當前對于信息管理的移動端系統沒有過多涉及。
1.2.2WebGL技術現狀
(1) WebGL應用現狀
可視化平臺的搭建一直都是計算機領域的研究熱點,通過為用戶提供可視 化的交互環境,可以使用戶更直觀、更方便的與數據進行交互,簡化了系統操 作流程,提高了管理效率。傳統的可視化平臺主要使用OpenGL[19](開放式圖 形庫)并基于C/S架構實現。傳統的移動端三維平臺搭建多使用Sliverlight[20] 等可視化技術,缺點在于使用這些技術需要安裝相應的瀏覽器插件,且由于沒 有使用計算機底層的優化技術,導致在渲染三維大場景時會存在性能不足的情 況。當前以HTML5技術為核心的新一代前端開發技術針對性地解決了系統性 能、可視化展示等多方面的問題,發布了 WebGL API。WebGL是以OpenGL 為基礎出的JavsScript圖形接口,最主要的優勢是實現了只有傳統C/S架構系 統可以完成的內存管理和硬件加速,為跨平臺、無插件的可視化管理平臺的實 現提供了理論基礎。國外Chen B[21 ]通過使用WebGL構建了網頁端游戲的三維 環境,并通過WebSocket技術進行前后臺數據的交互。Congote J[22]使用WebGL 實現與大型模型數據的實時可視化互動,根據WebGL原理從硬件出發對渲染 過程進行加速,并在醫學成像和雷達氣象學兩個領域進行驗證。基于WebGL 原理形成的Web3D和WebGIS目前已經得到很好的推廣和使用。Web3D成熟 的框架有 SceneJS, Three.js, Unity3D 等,WebGIS 框架有 Ceisum, Openlayer 等。王傳鵬等[23]通過研究WelGL和Three.js渲染原理,提出了模型幾何數據處 理算法和渲染優化方法,實現了大型建筑模型在WebGL下的快速加載。
(2) WebGL下BIM模型加載
當前在 Web環境下已經有部分開源的BIM模型顯示框架,例如 BIMSurfer[24]和IFCWebViewer[25]等,能夠實現IFC模型的加載和基本操作,但 是同時也有一些問題存在。首先框架注重顯示的效果,對于傳輸和渲染兩個過 程沒有進行優化,其次框架沒有考慮模型與后臺數據庫數據的交互過程,僅作 為展示平臺。因此通過自主開發完成BIM模型的加載和使用可以有針對性地優 化和實現特定功能。Chen Y等[26]研究了 IFC數據轉化為3D Tiles格式模型數據 的兩種解決方案,均使用BIMServer作為模型服務器,一種解決方案是通過 BIMServer將上傳的IFC模型解析成JSON數據流,再將Json轉化為3D Tiles。 另一種直接通過BIMServer的API接口調出IFC數據,然后通過開源的轉化軟 件實現 IFC-OBJ-glTF-3D Tiles 的轉化。LIN T[27]研究了 BIM 數據到 WebGL 中 渲染的轉換方法,并將BIM模型存儲到云服務器上通過MapReduce進行解析, 用戶通過移動端設備可隨時在線訪問BIM模型。潘飛等[28]通過使用Ceisum和 BIMServer開源組件,以IFC作為模型數據傳輸標準方式,Ceisum通過 WebService接口調用三維模型數據,最終實現了 BIM+GIS的集成管理平臺。 徐照等[29]研究了基于IFC與WebGL的BIM模型可視化方案,使用開源 IFCOpenShell框架,設計了 IFC-OBJ數據轉換接口,通過逐行循環提出IFC文 件信息,最后將模型文件轉化為OBJ格式,最終通過WebGL實現瀏覽器端的 渲染。王玷瑋等[30]通過研究BIM信息的表達格式,使用json作為數據傳輸手 段,實現在WebGL下模型的加載以及修改。通過對原始模型對象和修改后模 型對象做差處理,獲取修改屬性,提交到后臺后經過反序列化對模型對象數據 進行修改。
當前的研究中側重于模型的轉換,但是對于BIM模型來說,其本身還蘊含 豐富的屬性信息,搭建自有平臺實現幾何和屬性信息同時加載的內容較少,且 大體積模型的加載優化一直是研究的重點,使用功能完善的框架可能自主渲染 優化的途徑也比較受限。
123安全分析與評價技術現狀
通過水工結構理論與數理統計的相結合方法對大壩安全進行分析和評價是 實現大壩安全信息管理的重要手段。安全預警將采集到的實測數據,與已經設 定好的監控指標標準進行對比,超過安全界限后實現預警通知。辛勇軍[31 ]通過 后臺的自動分析計算實現了安全預警的判別,并根據安全數據分析理論建立了 安全預警系統。馬福恒等[32]通過對預警指標進行分類和標準擬定,結合以往的 工程資料,實現了土石壩的風險預警。吳中如等[33-35]深入研究了大壩安全監控 的理論和方法,并提出了位移、滲流等多個監控項目的統計模型,并在此基礎 上通過使用神經網絡等擬合度較高的模型,實現了基于實測數據的混凝土壩安 全預測。張柯[36]通過研究支持向量機理論,并通過粒子群算法和人工蟻群算法 優化提高了模型預測的精度。大壩安全評價是通過數學理論對于大壩整體的安 全狀態進行評價,閆濱[37]等通過徑向基優化BP神經網絡,通過輸入各影響因 素的隸屬度實現大壩安全的客觀評價。楊海嬌等[38]通過利用可變模糊理論確定 評價中的相對隸屬度,實現了動態優化。除了理論研究之外,當前也有很多系 統開發應用在大壩安全控制的過程中。邵鵬哲[39]通過對于安全控制理論研究, 開發了高土石壩全生命周期內的風險評估和安全預警系統,實現了大壩的安全 控制。馬開遠等[4°]通過開發系統實現了水位、結構相關的數據處理,并從工程 質量、結構安全、運行管理等方面實現大壩安全評價。
綜上所示,上述研究大多側重于土石壩的安全分析,且分析與評價均側重 大壩安全的某些特定方面,本文結合混凝土壩的特點,并考慮巡查等其他方面 安全信息,提出來完整的分析和評價流程,并對于其中關鍵的分析和評價技術 進行了研究。
1.3本文主要研究內容及章節安排
本文旨在通過綜合利用物聯網技術、網絡通信技術、WebGL可視化技術以 及BIM管理理論,以安全分析和評價為輔助手段,設計出一套混凝土壩運行期 安全信息的可視化管理平臺,主要研究內容及章節安排如下:
(1)第一章介紹了混凝土壩運行期安全信息管理平臺研究背景,對當前安 全信息管理現狀、BIM與WebGL技術發展趨勢以及安全控制方法的國內外研 究現狀進行了總結,并在此基礎上提出了本文的研究內容。
(2)第二章首先介紹了傳統運行期安全信息管理的內容以及存在問題,并 與使用BIM的管理模式進行對比,著重說明了 BIM在安全信息管理中的具體 應用,并介紹了管理優勢。
(3)第三章研究B/S架構下運行期安全信息管理平臺搭建的關鍵技術與實 現。通過對WebGL原理以及BIM概念的闡述,提出模型在Web環境下實現交 互的解決方案;研究和闡述WebSocket概念和數據傳輸原理,并基于python搭 建傳輸后臺;比較各種移動端開發方法的優劣勢,通過微信企業號的接口針對 管理過程中的需求,實現定制化功能的開發。
(4)第四章以混凝土壩運行期實測安全信息數據為基礎,提出了安全分析 和評價流程。針對混凝土壩運行期安全監測的要求及特點,實現混凝土壩安全 的實時報警;隨后在對數據預處理的基礎上,實現混凝土壩安全監測數據趨勢 預測;最后根據實測數據,通過利用相關的數學分析方法,實現了對混凝土壩 多層次的安全評價。
(5)第五章的主要內容是安全信息管理平臺的開發與應用。基于上述技術 和理論,開發出一套基于WebGL的混凝土壩運行期安全信息管理平臺,以BIM 模型為依托,實現運行期海量安全相關數據的查詢和搜索。主要闡述了平臺開 發目標與原則、平臺結構、平臺模塊與功能,并通過實例證明平臺開發的必要 性。
(6)第六章總結和概括了本文所做的主要研究工作,對系統中存在的不足 進行了思考,并提出了對未來發展方向的展望。
第二章多源信息下的混凝土壩運行期安全信息管理
混凝土壩出現事故的案例在國內外屢見不鮮,且都造成了較為嚴重的后果。 由于運行期時間跨度長,相比較施工期安全問題不容易察覺,因此需要提高安 全意識,防患于未然。混凝土壩安全信息具有體量大、種類多等特點,與安全 相關的包括儀器信息、監測信息、維護信息以及檢查信息等,因此需要建立一 個完善的安全信息管理模式,實現對多源安全信息的有效管理,且能夠高效地 從中提煉出有效信息。本章主要結合傳統安全信息管理的內容和特點,提出了 基本BIM理念的安全信息管理方法,主要的目的是使安全信息有序存儲,且能 夠直觀地呈現給管理人員,從而提高了安全信息管理的效率和質量。
21傳統大壩運行期安全信息管理模式
2.1.1大壩安全信息管理內容
混凝土壩運行期安全信息管理的總體目標是使影響混凝土壩安全的所有因 素都在可控范圍內,盡可能地延長各種安全監測儀器以及建筑設備的使用時間, 通過自動化技術降低管理的人力物力成本[41]。包括的主要內容是安全資料管理、 安全監測數據管理、巡檢和維護管理、應急預案管理。
混凝土壩安全信息管理是運行期重點管理內容,混凝土壩作為大型水利樞 紐主要建筑物,在長時間的運行過程中,由于外部環境的復雜多變以及內部材 料老化等因素,其滲流作用和所受荷載會發生變化,出現混凝土壩局部應力增 加,混凝土壩整體會產生位移等其他不安全現象,會極大地增加失事風險。因 此安全監測對混凝土壩的運行管理極為重要,為了能夠保證混凝土壩在運行期 間時刻處于可控范圍內,需要對混凝土壩運行過程中的一些關鍵參數進行采集 和分析,并輔以人工檢查,使風險處在可控范圍內。混凝土壩安全數據主要通 過物聯網設備來采集和傳輸。將傳感器設備布置在混凝土壩的關鍵斷面上,通 過GRPS網絡等方式定時采集混凝土壩性態數據傳送到數據庫,在服務器端完 成安全監測數據的處理和分析。
因為混凝土壩安全自動化安全監測的范圍有限,傳感器大多分布在壩段的 典型斷面上,所以混凝土壩運行期還需要有專人進行定期的檢查和維護。按照 《水電站大壩運行安全監督管理規定》,人工巡檢主要有兩個目的,一是由于傳 感器布置在幾個固定斷面上,對于混凝土壩性態安全評價有一定的局限性,所 以按照規定要求現場工作人員定期進行巡視檢查,及時發現傳感器無法找到的 隱患;二是由于需要對混凝土壩中有關的硬件設備進行維護和更新,工作人員 定期對安全儀器需要檢查、率定,保證安全儀器能夠正確反映混凝土壩的安全 狀態。三是混凝土壩本身還需要定時維護,包括對已經出現的裂縫,滲漏等進 行處理,對于碾壓混凝土壩要加強對混凝土的維護,防止老化造成結構損壞。 具體的混凝土壩安全信息管理內容如圖2-1所示。
圖2-1混凝土壩安全信息管理內容
2丄2傳統模式下的存在問題
傳統模式下的混凝土壩運行期安全信息管理滿足了管理的基本需求,但是 其主要強調安全監測數據的管理,對于其他安全信息管理沒有形成體系,還存 在著一些問題和不足,具體體現在以下幾個方面:
(1)工程項目資料移交方面。混凝土壩建設是一個多方參與的大型工程項 目,且混凝土壩建設涉及設計、施工、運維等多個階段,由于各個階段之間界 限不明顯,且每個階段都產生了大量數據,所以當混凝土壩施工完成進入運行 期進行資料移交時,可能會出現儀器基本資料、建筑設備相關資料丟失、分類 錯誤等情況,這會增加運行期工作人員的維護難度,降低工作效率。
(2)信息交換與更新方面。傳統的安全運行維護管理過程中,設備信息難 以有效整合,碎片化現象嚴重。整個安全維護管理是一個動態更新的過程,由 于傳統管理模式的信息交換主要依靠人工,所以可能出現由于溝通不及時導致 的工作滯后、維護處理不及時等問題,嚴重影響了混凝土壩工程的正常運轉。
(3)安全信息展示方面。當前安全監測管理基本告別了紙質化的管理方式。 通過監測儀器自動化采集數據,并通過GPRS上傳數據庫,實現數據的分析和 處理。但是當前的數據展示還停留在表格統計的階段,儀器二維圖紙易讀性較 差,設備出現問題時無法有效定位問題位置,且缺少一個三維平臺實現混凝土 壩整體的安全監測預警等。
(4)儀器、建筑設備的維護管理方面。傳統的儀器和建筑設備的維護后都 需要工作人員及時填寫維修報告,后期通過手動輸入的方式上傳至安全信息管 理系統中。但是由于混凝土壩運行期會產生大量的維修和檢查記錄,通過對紙 質文檔進行整理再上傳,過程比較繁瑣,且容易出現信息丟失問題。一般情況 下維護流程由多個角色共同完成,沒有有效的流程管理手段,會降低維護效率, 且對于維護結果也不易準確把握。
(5)安全監測數據分析方面。傳統的安全分析管理需要人為進行干預,且 分析和評價的方式比較單一,整體的安全控制流程不夠清晰,預警與應急預案 等后續處理工作沒有涉及。
2.2BIM在運行期安全信息管理中的應用分析
BIM與互聯網的融合是當今重要發展方向,BIM不僅僅提供了一個可視化 的三維模型,同時為人與數據之間提供了交流渠道。BIM模型本身包含著許多 構件的基本屬性信息,同時也可以通過構件綁定,實現業務流程信息的關聯。 本文通過引入BIM理念,結合水電信息化情況下安全運行管理的新需求,利用 B/S架構完成瀏覽器端管理平臺的搭建,解決傳統管理模式的弊端,提高運行 期的管理水平,降低管理成本。
2.2.1數字化移交
傳統混凝土壩工程建設過程中,從施工單位向運行單位移交的資料大多數 是以紙質文本作為載體,內容多為圖紙和文檔,由于施工建設過程中信息冗雜, 運行單位在信息檢索過程中會耗費大量的人力和物力,當出現檔案分類不當的 情況時,還會繼續增加信息的搜尋難度。BIM已應用在工程建設的各個階段[42], 設計單位通過BIM設計工程的三維結構,并可在模型上完成碰撞檢測等一系列 設檢查功能。施工單位可通過BIM實現施工過程與施工質量的實時監控,有效 提高建設效率。運行單位可以通過BIM模型實現運維過程的管理,包括安全和 運行兩個方面。因此,BIM的使用貫穿了工程建設的整個周期,且BIM模型 本身就包含數據,這就為數據的三維數字化移交提供了可能性。工程建設的各 個階段均基于BIM模型來實現各自功能需求,并將階段的數據添加入模型中, 這樣所有參建單位均可在其中獲取各自所需要的數據,實現了數據共享。例如 安全監測設備布置在施工期已經完成,在施工期將監測設備信息加入到整體的 BIM模型中,運行期可通過這些數據完成運行期安全監測儀器的維護和更新工 作。
對于水電行業,由于設計單位、施工單位以及運行單位的BIM發展水平不 同,且使用的BIM平臺也不盡相同,為了實現信息在整個工程建設生命周期內 正常交換,需要采用通用的BIM模型數據存儲標準。當前我國水利水電的BIM 標準體系正在構建當中[43],因此目前需借鑒建筑行業公開發行標準。IFC (Industry Foundation Classes)是一個專為BIM設定的、用來滿足工程建設行 業數據互用需求的國際開放性標準[44]。IFC標準的目標是提供一個不依賴于任 何體系,任何平臺的文件格式,實現各種BIM格式與IFC格式之間的相互轉換, 從而有效支撐BIM在建設全生命過程中的數據交換和數據管理工作。具體的 IFC體系結構從上到下可分為四個層次,分別為領域層、共享層、核心層與資 源層。其中領域層屬于最高層。IFC體系的構建遵從一個原則:每一個當前層 可以引用下層和同層的相關資源,但是不能引用上層資源,且當層間資源發生 改變時,不影響下層的數據資源。具體的IFC標準體系結構和內容如表2-1所 示:
表2-1 IFC標準體系結構
層名稱 層內容
衍域尸__領域層位于整個IFC體系中的最高層。該層主要定義了面向各個專業領域的實 泳戎層 體類型。針對不同的專業領域生成的實體都有特定的概念和屬性。
卄亠戸 共享層位于領域層之下,在其他層之上。共享層主要是服務于領域層,細化系
北旱F
統的組成元素,同時使各個領域間的信息能夠交互。
該層是整個IFC標準體系的第二層。該層在整個體系之中起到了承上啟下的作 核心層 用,主要定義了產品、過程、控制等相關信息,有效地對下層信息進行組織, 形成IFC格式文件的基本組成結構。
該層是整個IFC標準體系的最底層。資源層主要定義了實際工程中所涉及到的 咨訴尸 通用信息,這些信息不依賴于具體的建筑結構,具有通用性和分散性。核心內
人'泉層 容主要包括屬性資源、表現資源、結構資源。這些實體資源主要用于上層實體
資源的定義,以顯示上層實體的屬性。
IFC數據標準只能夠滿足水電行業基本的數據交換需求,對于其他數據需 要對IFC標準進行相應的擴展,本文不作為研究重點。本文利用IFC針對性地 獲取混凝土壩運行期所需要的模型數據和基本安全儀器信息,而對于其他與業 務流程相關的數據通過數據庫與BIM模型綁定實現數據的綁定查詢。
222信息集成和管理
混凝土壩運行期安全信息管理是一個復雜的系統,需要對運行期所有與安 全有關的信息的進行管理和處理,BIM實現了數據的有效集成和管理,為后續 的安全分析,多用戶在線操作以及信息交換等工作提供依據。
223數據可視化管理
通過上一小節的討論,BIM模型在運行期集成了與安全信息管理有關的信 息,基于BIM實現信息的檢索和查看,有利于建立持續穩定的管理模式。模型 通過在Web端可視化環境下的顯示,具體有以下四點作用:
1、 設備定位與基本信息查看
當需要獲取監測儀器或建筑設備的具體位置信息時,使用傳統的方法需要 查看CAD圖紙,根據特征結構的位置對儀器進行定位。通過BIM模型模擬真 實環境,實現設備的快速定位,方便進行維護和檢查。設備信息包括幾何信息、 設備基本信息以及合同信息等,使用BIM首先可以實現設備的三維模型查看, 包括外觀、內部構造、形狀細節等,其次由于BIM模型本身包含了設備相關信 息,在可視化環境下定位到構件后,通過點擊構件后可以迅速查看設備的基本 信息以及相關資料。
2、 安全數據查詢
在混凝土壩運行期,通過安全監測儀器會不間斷地采集到大量的安全相關 數據,需要展示給管理人員的信息包括監測量隨時間的變化趨勢,以及根據監 測數據得到的安全評價結果。將BIM模型與數據庫中的安全監測數據進行綁定, 通過在BIM模型上點擊相關的安全監測儀器構件,就可獲取近期的安全數據變 化圖,實現監測數據的可視化表達,方便管理人員分析數據走向。
3、 自動的安全預警
在運行期內,混凝土壩安全通過人為進行監控工作量大且準確度不高,由 于安全監測儀器的存在,可以實現自動化的監測數據的處理和分析。將通過移 動端和監測儀器采集到的數據動態地反映到三維模型中,一旦出現警情,則會 在BIM模型上反映出現問題的部位,并啟動應急處理流程,同時會將警情傳達 給相關人員。
4、 安全分析結果可視化
通過不同種類的安全儀器和巡檢記錄,對不同斷面、不同壩段進行綜合的 安全評價,將計算后的結果存儲且綁定到BIM模型上,當工作人員需要查看整 體混凝土壩的安全運行狀態時,可以將近期的安全評價結果顯示到可視化的界 面上。
?24流程管理
在混凝土壩運行期,人員的定期巡檢、設備維護以及混凝土壩維護是安全 運行管理內容中的重點,由于這三項工作需要建立相關的管理流程,在傳統的 情況下,由于流程往往需要多個角色參與,因此無法對工作進度進行準確的把 控。將工作流程與BIM模型進行綁定,并通過移動端實時上傳工作進度,從而 告別了“信息孤島”,實現管理流程的實時把控。當進行定期巡檢時,安全檢查 人員隨時通過移動端上報安全隱患相關信息,同時在BIM模型上進行標注,管 理人員可通過BIM模型查看隱患出現位置以及隱患具體內容,從而進行下一步 的整改。當進行設備維護時,將置維修計劃與設備進行綁定,時間接近維修開 始時間時,在BIM模型上通過高亮的方式進行提醒,管理人員可根據BIM模 型獲取相關的維修計劃,并開始維修流程。具體的檢查和維護流程如圖2-2所 不O
圖2-2檢查和維護流程
2.3BIM在運行期安全信息管理中的應用優勢
BIM技術的使用改變了傳統的管理模式,使所有的管理都基于模型來進行, 提高了管理的協同性以及準確性。使用BIM的應用優勢主要體現在以下幾個方 面:
(1) 信息共享
BIM模型中數據信息之間相互聯系,做到一處更新則所有相關數據同時更 新,減少管理人員信息管理的工作量。同時基于BIM模型實現數據的快速檢索 和直觀顯示,減少了傳統信息查詢過程對人力、時間的耗費。
(2) 數據統計
傳統的數據統計需要進行繁瑣的條件選擇,缺乏互動性和追蹤性。由于運 行期的數據均和BIM模型中的相關構件進行綁定,管理人員可通過操作構件獲 取到需要的數據,并通過圖表的形式實現數據的快速查看,快速掌握混凝土壩 以及設備的運行狀態。
(3)協同辦公
混凝土壩的安全運行管理過程是比較繁瑣的,需要各種角色之間相互配合 來完成。而通過BIM模型可以實現信息的及時更新和交流,防止出現重復工作 的現象,也有利于團隊之間的配合,減少溝通時間。
(4)可視化管理
可視化的管理環境更加直觀,方便用戶操作BIM模型,將空間和邏輯上關 系直觀地展示給工作人員,并能夠在BIM模型上做到預警和提示。這樣降低了 管理的難度,提高了信息的易讀性,確保順利的完成管理任務。
2.4本章小結
本章主要闡述了基于BIM理念的混凝土壩運行期安全運行管理的相關理 論和具體應用。首先,分析了傳統混凝土壩安全運行管理模式中存在的問題。 其次,針對傳統模式下的問題,提出了 BIM在管理中的具體應用。最后說明了 使用BIM解決管理問題的優勢,在實際工程管理中引入BIM理念對于對于管 理理念的長遠發展和管理能力的提高有著深遠的意義和推動作用。
第三章B/S架構下運行期安全信息管理平臺搭建技術研究
傳統的安全信息管理系統大多都基于C/S架構進行開發,相比較C/S架構, B/S架構具有較好的移動性和互動性。用戶使用瀏覽器或移動設備通過網絡即 可對系統中相應功能進行操作。本章中主要針對B/S架構下系統開發的關鍵技 術進行了研究,并提出了詳細的解決方案,主要包括BIM模型的加載,數據前 后臺的交互以及移動端系統的開發,結合平臺的需求解決了平臺實現的關鍵技 術問題。
3.1基于WebGL的模型可視化功能實現
3.1.1 WebGL加載與渲染流程
基于前后臺數據交互的模型顯示實現從瀏覽器向服務器發送請求開始,經 渲染后顯示到瀏覽器結束。具體的模型獲取的渲染流程如圖3-1所示。
請求,后臺將整理好的JavaScript代碼、模型數據等文件返回到前臺,并存儲 到內存中。
(2)CPU編譯與GPU渲染。CPU會執行服務器返回的JavaScript代碼, 同時執行initShader著色器初始化函數,并將編譯好的程序發送給GPU進入渲 染管線。
(3)數據輸入頂點著色器。傳遞給頂點著色器的主要包括兩類數據,其中 一類為attritube修飾的數據,主要包括頂點坐標和頂點索引等。另外一類為 uniform數據,主要包括與坐標變換有關的矩陣。將這些數據傳入頂點著色器后 進行計算處理,并將結果傳遞到下一個環節。
(4)圖元裝配。對于著色器計算后的點數據進行組裝,按照不同的圖元的 組裝方式對圖形進行拼裝。根據gl_POINTS, gl_LINES, gl_TRIANGLES分別 定義點圖元、線圖元以及面圖元。
(5)光柵化。對于計算機來說,已經裝配好的圖元無法直接提供給前臺顯 示。這是因為顯示器前臺顯示的基本單位是像素,而圖元是根據點位置坐標來 進行繪制,因此還需要將圖元轉化為片元,畫布Canvas的一個像素均對應一個 片元。為了實現圖元到片元的轉換,需要對位置坐標進行等距的插值處理。同 時除了坐標以外還需要對頂點顏色進行插值計算,每一個片元均對應一個 RGBA 值。
(6)片元著色。此階段與頂點著色相對應,主要針對片元的數據進行處理。 根據頂點顏色插值數據對片元進行上色,同時根據discard關鍵字實現無效片元 的丟棄,最終將處理好的片元數據輸入到幀緩沖區。
(7)屏幕顯示。視頻控制器通過讀取顯存中的像素數據,實時顯示到前臺 的Canvas畫布中,實現模型的可視化顯示。
由于WebGLAPI中的大部分代碼接近于底層,所以相對來說代碼難于理解 且對于坐標轉換、模型操作等開發需要較大的工作量。當前隨著Web端可視化 技術的不斷發展,基于WebGL的可視化框架開源已經非常成熟,本文按照系 統快速開發的原則,使用Threeejs[45]作為前端可視化顯示框架,并在此基礎上 進行二次開發以滿足系統需求。Three.js通過對WebGL API的封裝轉化成基于 3D環境的API,輔助用戶導出模型數據,能夠對燈光以及材質等進行定制,主 要針對WebGL管線繪制中頂點著色、片元著色兩個階段進行處理與封裝,能 夠解析包括obj, gltf在內的多種模型數據。
3.1.2模型格式轉化
根據第二章的敘述,本文中BIM模型通過IFC標準格式輸出,而Three.js 目前無法直接加載IFC模型文件[46],需要進行格式轉化,將IFC格式轉化為通 用的三維模型文件格式。另外IFC不僅包含模型幾何信息還包括模型屬性信息, 因此除了進行幾何模型的轉換之外還需要對IFC文件中的屬性信息進行提取。 本文中使用gltf文件格式作為IFC模型幾何信息的輸出格式,使用XML存儲 模型的屬性信息,最后通過唯一標識ID與后臺數據庫進行關聯,獲取混凝土 壩運行期的安全監測以及業務流程數據。
(1) IFC格式
IFC標準采用信息建模語言EXPRESS對工程項目中建筑構件的幾何信息、 材料信息、機械信息以及抽象概念的空間信息、關系信息和過程信息進行描述 和定義,具有面向對象、規范化的特點。相比較其他編程語言,EXPRESS最 大的特點是純文本,不依賴操作系統,不僅通過定義標準格式可以被計算機識 別,同時也方便相關開發人員閱讀。基于IFC的數據模型的主要組成部分包括
定義類型、枚舉類型、選擇類型、實體類型、函數、規則以及預定義屬性集[47]。 從結構層面來說,其中最重要的內容就是IFC格式文件中的實體的實例,包含 了基本構件的幾何數據以及屬性數據。IFC中的實體描述了各種不同的對象、 屬性以及它們之間的關聯關系,以IfcFurnishingElement為例,從高到低的繼承 關系分別為 IfcRoot, IfcObjectDefinition, IfcObject, IfcProduct, IfcElement,具 體如圖3-2所示,其中IFCRoot是所有IFC對象模型內核且是所有實體定義的 根類。作為IFCRoot子類型且具有唯一標識的實體,其中的非抽象實體可以直 接用來數據交換,而不具備唯一標識且存在資源層中的實體,需要由其他
IFCRoot繼承實體引用,不能獨立存在和用作數據交換oIFCRoot可細分為三類,
包括IfcObjectDefinition (對對象進行定義),IfcRelationship (對象之間的關系) 以及 IfcPropertyDefinition (對象屬性)。
Inheritance graph
ENTITY IfcFurnishingElement; ENTITY IEcRoot;
GlobalId
OwnerHistary
Name
Description
ENTITY :EfcdbiectDefiniPion: 二 KVE R
HasA3sigmnem:s
Nesrs l3NestedBy HasContext IsDecomposedBy Decomposes Has Associations ENTITY IfcObiect;
Obj ectType
INVERSE
IsDeclaredBy
Declares IsTypedBy IsDefinedBy ENTITY IfcProduct;
Obj ectPlacement Represenra匸ion INVERSE
ReferencedBy ENTITY T&Elemen匸:
Tag
INVERSE
FillsVoids Connectedlo IsInterferedByElementa InterferesElements HasProjections ReferencedlnStructures HasOpenings IsConnectionRealization ProvidesBoundaries ConnectedFrom ContainedlnStructure ENTITY TfcFurnishinaElement;;
END_^NTTTY;
圖 3-2 IfcFurnishingElement 的繼承關系
實際在對IFC格式文件中數據信息進行提取時,需要注意以下兩點。(1) 字符編碼解碼處理。作為BIM模型的國際通用數據交換格式標準,對于模型中 包含的字符需要統一要求,因此IFC中直接使用ISO-8859-1編碼表中十進制 32-126標識的字符,除此之外的任何字符存入IFC格式中都需要進行編碼操作。 例如在實際IFC文件中有“\X2\529E516C6905\X0”這樣的字符串,除去開頭 的結尾的標識符,中間的含義是“辦公椅”,具體的表示符所代表的含義如表 3-1所示。(2)IFC格式文件的數組組織以行為單位,對于數據段來說每行代表 著一個實體對象,對每行通過“#”與整數組合成引用表示符,可直接被其他實 體對象進行引用。數據段每行的內容包括行名稱、實體類型和屬性值等,嚴格 按照IFC的標準格式進行數據組織,其中當可選屬性為空時,不能省略,需要
通過“$”表示。 表3-1標識符字符
名稱 含義
\S\ 表示擴展字符表中相應位置的字符需要使用基本字符表的字 符來進行代替。
\X\ 表示字符串的識別基本單位,通過兩個十六進制的字符代表 一個8位字節。
\X0\ 任何情況下此標識的含義代表字符串輸入完成。
\X2\ 表示字符串識別的基本單位,通過四個十六進制字符的整數 倍序列來表示一個雙字節編碼。
\X4\ 表示字符串識別的基本單位,通過八個十六進制字符的整數 倍序列來表示一個四字節編碼。
(2) gltf文件格式
gltH48]是一種3D模型文件數據傳輸格式,其核心為一個JSON文件,通過 鍵值對的方式描述模型的定位、圖元組合、材料和動畫等所有信息,涵蓋了生 成一個3D場景的全部內容。相比較3DS, OBJ, COLLADA等通過三維軟件 輸出的文件格式,gltf格式更加接近于WebGL的渲染管線,在文件大小以及渲 染運行方面都進行了優化,主要優點在于占用空間小,渲染快且格式易于理解 等多方面。
通常情況下經由其他文件格式轉化成gltf格式后輸出的文件包括JSON格 式文件、bin格式文件、glsl格式文件以及jpg, png等紋理圖片。
•json文件。此文件是gltf的核心內容,主要針對WebGL中頂點著色以 及片元著色兩部分內容進行定制。主要包括模型的節點層次、材質、模 型組成和視角定義等模型構建邏輯。
•bin格式文件。此文件中包括與圖元,動畫以及材質有關的相關數據, 由于模型頂點數據坐標數量較大,使用二進制存儲可以明顯地壓縮空間 且可以直接被WebGL識別無需進行額外處理。在JSON格式文件中通 過定位數據起點以及數據長度來對二進制文件中數據進行引用。
•glsl格式文件。glsl主要對該模型渲染的著色器進行描述,給出渲染方 案。
• jpg,png等紋理圖片。Gltf使用圖片數據對模型進行貼片時,有兩種方 式,一種通過uri屬性引用外部素材,另外可直接通過base64編碼直接
輸入在json文件中。
圖3-3 gltf格式文件組成
(3) IFC 轉 gltf
上述已經針對IFC格式和gltf文件格式進行了詳細介紹,考慮到現有的技 術條件,從IFC直接轉為gltf格式比較困難,通過使用collada格式作為中間轉 化格式,實現模型的轉換。Collada格式模型文件雖然可以被Three.js直接識別 并加載,但是由于Collada本身是通過xml語言來進行描述,內容繁瑣體量較 大,因此不合適作為模型加載格式。從IFC轉為gltf的流程如3-4所示,主要 分為兩部分內容,分別是模型構件信息的提取以及模型屬性信息的提取,其中 模型構件通過gltf進行描述,而模型屬性信息通過xml文件來進行組裝。
在對IFC文件進行分析時,主要是以IFCElement以及其子類作為分析的基 本單位,對于IFC文件來說,文件中幾何點的原始位置數據是通過使用 IFCLocalPalcement多次嵌套,從而得到的局部坐標系的頂點位置。在實際進行 處理時,需要將局部點坐標提取后與整體模型坐標進行矩陣轉換,最后獲取到 頂點的絕對坐標,根據第一節所闡述的WebGL原理,除了頂點的位置坐標, 還需要獲取法線、紋理以及材料的相關數據,并與頂點位置坐標進行結合,生 成圖元數據存儲數組,然后根據Collada格式對數據進行組裝,由于Collada格 式和gltf格式的組成基本類似,此過程格式轉換較為簡單,此處不再多做分析。 如果僅進行IFC到gltf的文件格式轉換,那么模型的屬性信息會全部丟失。IFC 標準格式下大多通過IFCPropertySingleValue來存儲構件相關信息的鍵值對,再 通過IFCPropertySet對屬性信息進行集合,并與構件進行綁定。因此可通過逐 個分析IFCElement實例,對綁定在實例上的屬性信息進行識別和深層查找,通 過xml格式輸出。xml文件和gltf文件在場景初始化時會同時加載,關聯的方 法是gltf從IFC導出的過程中,圖元的name屬性用來存儲guid,與xml中對 應構件的id保持一致,從而讀取xml中鍵值對類型的屬性信息。
IFCOpenShell提供了 IFC解析的預定義函數,且其包含的IFCConvert工具 提供從IFC轉為Collada格式的數據轉換框架,在此基礎上對其功能進行完善, 包括通過加入屬性解析函數,并引入XML生成庫,使模型在解析的過程中同
時完成屬性信息的轉儲。同時由于IFCConvert只能輸出Collada格式的模型文 件,因此通過使用OpenCollada、Rest3D以及庫來完成從Collada格式到gltf標 準格式的輸出,0penCollada用來解析Collada格式文件并轉化為模型數據,傳遞 給Rest3D接口將模型輸出為gltf格式,最后通過JSON庫實現文件的輸出。此 部分主要是組裝各構件庫之間的內容,并針對guid的綁定過程進行優化,最終 將此過程代碼集成到IFCConvert中,從而最終完成從IFC模型gltf格式文件和 xml文件的轉化,具體實例如圖3-5所示。
IFC文件中實例
#39420= IFCFURNISHINGELEMENT('3_20rV5TD4dfqs8yv547DQ',#41,'\X2\529E516C6905\X0\1:\X2\
529E516C6905\X0\1:290439',$,'\X2\529E516C6905\X0\1',#39419,#39414,'290439');
I
"TD7200": {
'c-■: ■: J -n ': : GLTF格式描述
"ID7201"
"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1], "nameM: "IfcFurnishingElement_-_^公椅 1_辦公椅 1_29©439"
"107261": {
"children":[],
"name": "_3_20rV5TD4dfqsSyv547DQ"
} Xml屬性描述
<IfcFurnishingElement id=,,3_20rV5TD4dfqs8yv547DQ" Name="IfcFurnishingEl
<IfcPropertySet xlink:href="#0joIrpirzAgBneyrpyiqWl"/>
<IfcPropertySet xlink:href="#2tphBLL0D4Ng6hpOFINXZB"/>
<IfcPropertySet xlink:href="#lq96oyFSTBT0nWtwQ4xbjS"/>
<IfcPropertySet xlink:href="#22_vdskl8jBdNRbtfh3HI"/>
圖3-5 IFC轉換gltf實例
3.1.3場景加載與渲染優化
對于大場景的加載和渲染過程,可以有多種方式進行優化,從而減小瀏覽 器的負擔,提高系統的流暢性。加載和渲染兩個過程對于優化的側重點不一樣, 加載過程優化主要是為了提高數據傳輸效率,優化數據傳輸方式,可用的方法 包括模型數據壓縮以及流式傳輸。而渲染的過程主要是為了獲取模型數據后, 通過各種算法減低渲染的工作量,提高渲染的速度,可用的方法包括圖元合并, 場景八叉樹劃分,構件復用,LOD層次模型,選擇性加載以及視域剔除等方法 [49]。本文主要針對加載和渲染過程分別進行優化,提高系統場景化的工作效率。
(1)加載過程優化
通過3.1.2小節的敘述,將IFC模型通過轉化工具生成gltf和xml文件后, 對于gltf來說,其主要的描述內容是通過json文件來完成。如果模型過大,生 成的gltf文件相應體積較大,這會導致前臺處理和解析過程中消耗的資源過大。 Binary gltf,簡稱bgltf,它是gltf格式文件的擴展,主要是將gltf分散的各數據 文件進行整合,并輸出二進制文件,根據WebGL的渲染管線可知,使用二進 制接近底層,WebGL可直接使用從而減少文件解析的工作量,對于相同的模型 加載,通過bgltf加載的效率比gltf加載效率提升10%-30%之間。
(2)渲染過程優化
Gltf文件在Three.js中的加載主要是通過Three.GLTFLoader()函數實現模型 的加載,將得到的模型數據以對象的形式返回給Three.Scene,隨后GPU會讀 取加載到Scene中的數據,包括頂點數據、索引數據、材質等,然后根據WebGL 的渲染管線,實現模型的渲染和顯示。
在這個過程中主要考慮兩種優化方式,第一種按需加載。對于整個混凝土 壩區域的三維場景,在前臺進行顯示時,有些模型和構件無需進行顯示,可以 讓用戶自主選擇,在加載模型文件的過程中,通過獲取到用戶的選擇結果,在 模型加載后,只加載用戶需求的構件,而對于無需加載的構建直接跳過,從而 有效的降低前臺的渲染負荷。第二種則是視域剔除法。人在三維場景下的視覺 范圍是從人的位置到視野范圍而形成的一個棱錐,投影到平面是一個長方形, 具體如圖3-6所示。視域剔除的原理主要是判斷構件對象與棱錐之間的相關關 系。由于大多數模型構件外型不太規則,不利于進行位置判斷計算和分析,因 此通過使用構件模型規則包圍體(包圍盒或者包圍球)作為判斷依據。場景渲 染隊列中以樹狀圖的形式進行分布,當進行視域剔除時,需要從根節點開始遍 歷,計算包圍盒和視覺棱錐之間的相關關系,主要包括相交、相離以及在棱錐 內三種情況。如果相離則直接對模型從渲染的樹狀節點及其內節點進行刪除, 當相交時需要遍歷父節點中的子節點,繼續生成新的包圍盒重復判斷相對位置 關系。對于位置在棱錐范圍內的構件直接加入到Three.js的渲染隊列中。
3.1.4基于模型的交互功能的實現方法
基于WebGL的三維場景搭建完畢后,除了可視化的功能,還需要實現模 型與用戶的交互,例如通過點擊安全監測儀器模型,可以獲取與安全監測儀器 相關的基本信息,同時還能夠與數據庫關聯,獲取儀器的安全監測數據,方便 管理人員通過系統查詢混凝土壩的運行狀態。本小節主要從模型選取,模型剖 切以功能提出針對性的實現方案。
(1)模型選取與模型信息獲取
用戶通過屏幕點擊場景中的模型,最初獲取的是屏幕坐標,而場景是基于 三維環境進行搭建的,因此首先需要將屏幕坐標轉化為三維場景坐標。通過模 擬人在真實環境中的視覺,解決原理為從視覺位置與點擊的坐標之間生成一條 射線,判斷此射線經過的模型構件,并選取最靠近視口的模型。在Three.js的 框架下,主要使用THREE.Raycaster來實現模型的抓取。首先通過 window.addEventListener將點擊事件與回調函數進行綁定,然后獲取到屏幕坐 標,并根據windows.innerHeight和window.innerWidth對屏幕坐標進行歸一化 處理。其次根據Raycaster對象中的setFromCamera方法來確定射線位置,其中 參數包括屏幕點坐標和Camera對象。射線獲取選中模型的核心是碰撞檢測, 通過Raycaster的intersectObject方法來實現,它會檢測與射線相交的所有構件 模型,并按照交叉點與視口的位置按順序返回構件模型數組,其中數組的第一 個是最靠近視口的構件模型,具體流程和實例代碼如圖3-7所示。
模型信息的獲取包括兩部分內容,首先包括由xml文件中包含的與構件相 關的基本IFC屬性信息,此部分信息在場景加載時已經存入內存當中,當模型
出現點擊事件后,根據模型的name屬性與xml中的id匹配結果,獲取從IFC 文件中導出的屬性信息。與構件綁定的業務與流程數據存儲在數據庫中,也是 根據name屬性中的GUID與后臺數據進行綁定,點擊構件時從后臺調取業務
流程數據、文檔圖紙等數據。
function cjlickEvent ( event ) {
var raycaster = new THREE.Raycas拾取器
var mouse = new THREE.Vector2 () ;//二維向量
mouse»x = ( event.clientX / window?innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHexght )*2 + ].;//坐標歸一化處理 raycaster. setFromCamera. ( mouse, camera };//矩陣變化后獲取拾取器對象
var obj ec tmrr = raycas ter.in tersec tObjects{ scene .children ) ;//經碰撞監狽!)后對象 if (objectarr. length=C) {
console.log(r,沒有點擊到對象!
return;
Jelse{
var f irstob ject — objectarr [0 ] ; //獲取最近距離對象
〃改變材料顏色,弾框獲取材料相關屬性
window.addEventListener( Tclick1, onMouseClick, false );
圖3-7構建拾取方法
(2)平面剖切
用戶在與模型進行交互的過程中,由于模型之間的遮擋,可能需要平面剖 切的功能。主要分為帶切口和不帶切口的兩種剖切形式。Three.js中可以通過加 入ClippingPlanes的方式對模型進行切割,其實現的原理主要是作用在WebGL 渲染管線片元著色的過程中,通過遍歷判斷片元與平面之間的相對位置,若在 顯示一側則正常進行渲染,若處于剪切一側則會通過discard語句放棄渲染。由 于模型是表面模型,會造成立體圖形存在切口,切面沒有封閉,第二種剖切方 式需要對切割過程進行補充,當第一步的片元判斷切割完成后,應當針對切口 進行補面操作,進行二次繪制。二次繪制的原理是,在二次繪制時獲取模型的 包圍盒,并把包圍盒的頂點數據根據投影原理獲取在切割面上的平面坐標,然 后通過包圍盒的平面覆蓋住幾何體的切口,并去除多余像素,如圖3-8所示。
圖3-8大壩剖切實例
3.2運行期安全信息管理平臺前后臺數據交互
混凝土壩運行期安全運行管理平臺中的關鍵功能的就是各種安全信息的推 送和分析結果的可視化監控。為了能夠實現這個功能,除了搭建可視化的平臺 之外,要保證前后端之間數據傳輸的穩定性以及實時性。當前隨著Web端技術 的快速發展,HTML5下的WebSocket技術逐漸成熟,相比較其他的數據傳輸 方案,有明顯的優勢,以下對WebSocket概念、原理以及實現方法進行了詳細 分析。
321 WebSocket 概念
Internet通信提供了一種方便的、超鏈接的、無狀態的信息交換,http主要 采用的是請求/響應模型,一個完整的網絡連接的建立必須由客戶端發送數據請 求,后臺服務器響應請求,并將數據回傳給客戶端。傳統的前后臺的數據交互 包括輪詢技術、長輪詢技術以及長連接,具體的方法內容和評價如表3-2所示。
表3-2前后臺數據實時交互方法
方法內容
客戶端通過向服務器發送Http請求,服務器接收 此方案的優勢在于編程工作 到后及時進行處理,并將數據打包回傳給客戶端,量小,但是存在大量無用請 輪詢 客戶端通過回調函數進行后續的處理,至此完成求,浪費帶寬和服務器資源。
一次查詢流程。客戶端通過定時函數完成數據查
詢流程的重復,實現輪詢的效果。
長輪詢 與輪詢相同的地方在于均又客戶端發送數據請此方案的優勢在于客戶端與
求,可能會導致響應的順序凌 亂,客戶端不容易處理。
在頁面中嵌入一個隱藏的iframe標簽,通過設置 iframe的src屬性,使其對應一個長連接,就能實 現iframe的數據流。與上述長輪詢不同在于此方 法返回的是對JavaScript代碼中函數的調用,且 將數據作為函數參數來進行傳遞。
WebSocket[5°]協議提供一個全雙工雙向通信通道,可以通過Web上的單個 套接字進行操作,并可以幫助構建可伸縮的實時Web應用程序。WebSocket的 實施流程是由客戶端發送握手請求,然后服務器經過驗證后響應,握手成功建 立數據發送通道,支持雙向發送。WebSocket協議主要包括兩個部分,握手由 來自客戶端的消息和來自服務器的握手響應組成,對握手的請求格式和響應格 式均有嚴格規定。第二部分是數據傳輸,WebSocket的數據主要通過二進制數 據格式來進行傳遞,協議規定了數據傳輸標準和格式。
使用WebSocket的優勢主要體現在以下幾個方面:
1、 通信更加高效。WebSocket屬于持久性的協議,從根本上解決上述傳統 方法無法保持住連接的問題,使用WebSocket可以節省帶寬,CPU能力和減少 延遲,所以WebSocket是一種性能上的創新。
2、 消息及時推送。HTTP屬于被動的協議,只有當客戶端發出請求后后臺 才能響應并將數據傳回前臺。當客戶端與服務器之間的協議從HTTP轉為 WebSocket時,當后臺接收到數據后,可以第一時間主動將數據推送給客戶端 使用。
3、 通信標準化。WebSocket是一個底層的網絡協議,支持建立以它為標準 的其他上層協議。大多數的Ajax應用程序通常由緊密耦合的客戶端與服務器組 件構成。由于WebSocket支持高級應用程序協議的概念,可以增加客戶端與服 務器的獨立性,降低耦合。
4、 基于HTML5應用。當前Web端技術發展十分迅速,且HTML5是當前 發展趨勢,支持各種瀏覽器上進行使用。WebSocket是為HTML5應用程序提 供高級功能的一部分,開放套接字和與其他主機的信息通訊是每個主流平臺必 須提供的功能應用。WebSocket為HTML5提供了 TCP風格的網絡通信,而且 沒有破壞瀏覽器安全。
3.2.2 WebSocket 實現原理
WebSocket的實現主要分為三個步驟,包括客戶端與服務器的握手,數據
交互以及連接關閉[51],具體的實現流程如下圖3-9所示。
握手的前后臺請求和回復內容如圖3-10所示。其中客戶端請求頭中的 Upgrade字段用來告知服務器將數據傳輸協議由Http升級為WebSocket協議。 Sec-WebSocket-Key字段中的值用來告知服務器收到一個可信任的客戶端連接 請求,這個字段可以幫助服務器有效識別非客戶端的連接請求,并拒絕進行響 應。而對于服務器的回應內容來說,其中最重要的Sec-WebSocket-Accept字段 值,這個值的生成是通過組合請求頭中的Sec-WebSocket-Key與特定字符串進 行拼接后,通過sha1加密并以base64格式返回給客戶端,作為數據傳輸的憑 據,至此一次完整的客戶端與服務器的握手完成。
客戶端請求
▼Request Headers view source
Accept-Encoding: gzip^ deflate
Accept-Language: zh?CN』zh;q=0.9
Cache-Control: no?cache
Connection: Upgrade
Cookie: PHPSESSID=8fndqkboq7ne叩o49jvc2jgr63; OUTFOX_SEARCH_USER_ID_NCOO=2010138827.0330281
Host: 118.190.157.55:3368
Origin: http://118.190.157.55
Pragma: cache
Sec-WebSocket-Extensions: permessage-deflate; dient_max_window_bits
Sec-WebSocket- Key: 8DUxmIKdc+itCZ13LrGsPw==
Sec-WebSocket-Version: 13
Upgrade: websocket
服務器回應
▼Response Headers view source
Connection: Upgrade
Sec-WebSocket-Accept: 9eGfRMD+C4e0MBZOerggFqlEJhs=
Upgrade: websocket
WebSocket?Location: ws://0.0.0.0:3368/chat
WebSocket-Protocol: chat
圖3-10 WebSocket前后臺握手詳細內容
當服務器驗證通過客戶端身份后,就與客戶端建立了數據傳輸通道,實現 數據的接收和發送。在利用send函數發送數據前,需要對Websocket的實時狀 態進行判斷,只有在連接的打開的情況下才能進行數據的實時傳輸,主要通過 WebSocket的readystate屬性判斷,具體屬性值對應的含義如下表3-3所示。關 于Websocket交換的信息解析,首先需要了解數據幀的概念。數據幀是數據鏈 路層的協議數據單元,它包括三部分:幀頭,數據部分,幀尾。WebSocket按 照圖3-11所示的協議格式來對數據進行封裝和解析,由于現在不論客戶端還是 服務器端,針對WebSocket的數據結構都有成熟的數據解析方法,此處不再贅 述。
表3-3 readystate屬性的值和對應含義
屬性 值 狀態描述
WebSocket.CONNECTING 0 連接正在進行中,但是尚未成功建立。
WebSocket.OPEN 1 連接已經建立,信息可以在客戶端與 服務器之間流通。
WebSocket.CLOSING 2 客戶端與服務器之間正在結束握手。
0 12 3 01234567890123456789012345678901
IFIRIRIRI opcodeIMI Payload len I Extended payload length I
IIISISISI (4) IAI C7) (16/64) I
INIVIViVl ISI I (if payload len=126/127) I
I 1112131 IKI I I
+-+-+-+-+ +-+ + - +
I Extended payload length continued, if payload len == 127 I
I I Masking-key, if MASK set to 1 丨
I Masking-key Ccontinued)
+ —-— —
:Payload Data continued
I Payload Data continued
圖3-11基于Web Socket數據幀協議格式
WebSocket支持雙向關閉,即客戶端和服務器均可下達命令實現通訊關閉。 WebSocket通訊關閉的實現的流程是,由一方調用close函數,則會向另一方發 送一個關閉數據幀,Opcode由是幀頭的第一個字節中的最后四位組成,通過判 斷Opcode值來確定關閉指令,Opcode值對應的含義見表3-4。
表3-4 Opcode的定義
Opcode 值 消息類型 描述
1 Text 消息的數據格式為文本
2 Binary 消息的數據格式為二進制
8 Close 客戶端或服務器發送結束握手的請求
9 Ping 檢查當前WebSocket連接狀態
3.2.3基于 Python 的 WebSocket 實現
系統中使用WebSocket的目的在于前后臺建立連接,WebSocket后臺的搭 建可以使用多種編程語言實現,包括Java、PHP、Python> nodejs等,由于Python 的環境搭配較為簡單,實用性和靈活性較強,提供封裝好的與WebSocket相關 的模塊,因此本文選用Python語言編寫的腳本作為后臺WebSocket的實現,其 中Python運行在Web服務器后臺,保持進程一直運行。Python中主要使用了 socket,base64,threading,hashlib,struct,json,MySQLdb 模塊庫來完成后臺的搭建,
具體每個模塊的作用詳見表3-5。
表3-5 python中各模塊的作用
模塊名稱 模塊作用
socket 開啟websocket,并將socket監聽綁定到端口上。
threading是管理多線程的模塊,有封裝好的的線程開啟、運
threading 行、關閉等相關狀態管理函數,WebSocket基于多線程完成 數據傳輸。
hashlib WebSocket服務器端應答頭Sec-WebSocket-Accept屬性的 sha1加密。
base64 通過base64對Sec-WebSocket-Accept字符串進行加密,防止 被破解。
json 將后臺獲取到的最新數據轉為json,方便客戶端解析和處理。
struct struct為Python中處理二進制數的模塊,二進制流為C,或 網絡流的形式,二進制作為數據傳輸的標準格式。
MySQLdb 該模塊連接數據庫,獲取監測數據,為傳輸和處理做準備。
使用Python的WebSocket服務器端的應用流程如圖3-12所示,先監聽握 手請求,握手成功后創建多線程,進行數據的處理,最后根據關閉標識符來結 束前后臺的數據傳輸。在進行后臺處理時,結合業務需求主要需要有以下兩點 考慮:
1、 數據類型的識別。客戶端與服務器之間通過WebSocket進行數據傳輸 時,由于傳輸是雙向的,且里面包含監測數據、分析數據、報警信息、報告以 及巡檢數據等各種類型數據,為了能夠針對不同類型的數據進行處理,在服務 器與客戶端之間通過對傳輸數據中添加type屬性來進行標注,無論前臺或者后 臺接收到數據時,首先識別type對應的值,然后再進行不同類別的處理。其次 后臺中接收和發送數據的變量應使用global聲明為全局變量,保證向所有客戶 端廣播的都為最新數據。
2、 多線程的管理。Python的使用存在全局解釋器鎖的(GIL)概念,它的 目的是確保Python在運行過程中至多只有一個線程在運行。當服務器端數據的 接收和發送均寫入到同一個線程中時,由于使用Recv函數來監聽客戶端傳送 的數據,沒有得到數據時線程一直在阻塞,無法向客戶端發送數據,因此使用 兩個子線程在實現同時的接收和發送功能。為了實現多線程之間的資源同步共 享,需要對線程使用線程鎖,主要使用Python中的Condition對象來完成。主 要分為以下三步:(1)線程使用Condition的acquire屬性進行條件判斷,如果 不滿足條件進行等待,滿足條件后進入下一步;(2)當acquire的屬性判斷通過 后,此時線程已經上鎖,當前其他線程無法執行,本線程中完成數據的處理和
分析部分內容;(3)當業務邏輯執行完之后,通過Condition中的notifyAll函 數通知其他線程可以執行任務,并最終通過realease方法釋放當前鎖定。
圖3-12服務器端數據處理流程
#開啟 websocket
class socketServiue (threading • Thread) :#繼承于多線程
def init (self,sock):
threading ? Thread? init (self,name='socket1)
self .thread」top = False#連接茯態判斷值
self.sock = sock
def run(self):
global threadlist//管理所有子線程
while not self?thread_stop:
connec tion, address = self .sock .accep t ()# 獲取前端鏈接信,皂、 if handshake (connection) :#握手成功開啟手線程
try:
t = Th(connection)
threadlist[t?name] = t
t ? start ()
def stop(self):
self ? thread_stop=True
#發送數據 一
def send_data(self, data):
if data:
data = str(data)
token = "\x81”
length = len(data)
if length < 126:
token += struct.pack("Bn, length)
elif length <= OxFFFF:
token += struct.pack("!BH"t 126r length)
else:
token += struet?pack("!BQn, 127, length)
# struct為Python中處理二進制數的模塊,二進制流為C,或網絡流的形式。
data = 1%s%s1 % (token, data)
self ? con•send(data)
return True
圖3-13線程開啟和報文處理
對于客戶端來說,由于本文中的平臺在瀏覽器上搭建,使用JavaScript語 言完成前臺處理。依據WebSocket的API,在創建WebSocket對象后,總共有 onopen, onmessage, onerror以及onclose四種狀態事件。onopen狀態當前后臺 通訊開啟時觸發,onmessage狀態當前后臺進行數據交換時觸發,onerror狀態 當數據傳輸出現錯誤時觸發,onclose狀態當WebSocket關閉時觸發。前臺應用 的具體代碼如圖3-14所示:
//向指定端口和ip發送握手請求
var socket = new WebSocket('ws://'+location?hostname+port);
//WebSocket開啟事件
ilsocket?onopen = function(e) {
socket ? send (''this is a open request");
//WebSocket傳輸觸發事件
^socket.onmessage = function(result* nTime) {
var data = JSON.parse (result.data) //藪據格式為JSON字符串,可直接解析 其他邏輯處理代碼
圖3-14前端部分代碼
WebSocket最大的優勢就在于數據傳輸的實時性,通過上述內容,可完整地實現前后
臺的數據交互過程,具體的應用效果如圖3-15所示:
Jcookies Timing 數據傳輸內容
0 AJI ▼ Enter regex, for example: (web)?socket
Length
438 21:10:25.594
":["22.08205376", 102.2石230653". "1540818701000". "OJDOO: "554,677", "0.0", "0.94071 "alarm": "noal...
1 {"1018565":
▼ J”}
▼ 1018565: {position: ["22.0S205376", "102.26230658", "1540818701000 \ "0.0盹","554.677", "0.9407"]”“}
alarm: "noalarm"
? position: ["22.08205376", "102.26230658'^ ,,15408187&1000") "0.090", "554.677", "0.0", "0.9407"] unit: "sy87"
?1018563: {position: ["22.08157533", "102.26189367", "1540818701000'^ "0.000", "554.744", "0.01', n1.2057"],.„}
?1018571: (position: ["22.08120457", "102.26206547", " 1540818701000'^ "0.000", "554.181", "0.0", "1.0287
X Headers Frames Cookies Timing 連接狀態保持
Queued at 1743 s
Started at 17.43 s
Connection Start TIME
Stalled 9.1 min
Request/Response UME
CAUTION: request is not finished yet!
Explanation
圖3-15數據實時傳輸應用
3.3配套移動端開發技術
3.3.1移動端開發的必要性
根據混凝土壩運行期的安全信息管理內容,傳統人工采集信息的模式需要 經過紙質文檔來進行記錄歸檔,數據多內容雜,增加了管理難度。而移動端是 對管理系統的重要補充,現場管理人員通過使用移動端主要完成以下幾個功能:
(1)人工監測數據上傳。由于存在某些監測項可能需要人工輔助采集,為 了提高數據的處理效率,可以通過移動端上傳監測數據,方便系統中對安全監 測數據進行處理。
(2)安全報警通知。根據運行期自動采集到的安全監測數據,經過后臺的 分析和處理,當出現預警情況時通過移動端通知到相關責任人員,及時進行檢 查消除安全隱患。
(3)任務發布。混凝土壩運行期內存在一定的檢查和維護任務,按照任務 種類分為臨時任務和定期任務。臨時任務和定期任務均通過系統后臺發送通知
到指定管理人員的手機上。
(4)設備信息的查詢。構建信息庫,當管理人員進行設備檢查和維護時, 可以通過移動端的接口查詢到設備相關資料信息,減少維護人員重復工作,能 夠快速便捷地查詢到所需信息。
(5)檢查與維護記錄的上傳。檢查與維護工作是混凝土壩運行期安全運行 管理的重要組成部分,傳統的方式是檢查或維護人員先填寫記錄表,后期使用 系統進行二次填寫。通過移動端可實現隨時檢查和維護記錄的實時上傳與顯示。
33.2移動端實現方法選擇
當前隨著互聯網技術的迅速發展,移動端的開發越來越多樣化,根據用戶 的不同需求可以有多種實現方式。相比較電腦端的應用,移動端應基于快速開 發、簡明使用的原則,在實現功能的基礎上盡可能的降低開發的工作量。現階 段移動端開發的模式主要有Native App, Web App, Hybrid App[52]。
(1)Native App
Native App即我們常說的原生應用,當前手機端的主要操作系統為Android 和ios,原生應用基于不同的操作系統開發,選取不同的開發語言。Android主 要選用Java語言開發而ios選用Object-C語言進行開發。用戶通過在手機上安 裝應用程序來滿足功能需求。
(2)Web App
Web App即移動網頁應用,主要依靠移動端的網頁瀏覽器實現功能。主要 使用的編程語言是HTMLJavsScript和CSS。使用此種方式開發,無需下載安 裝應用,可通過手機上的瀏覽器直接進行訪問。
(3)Hybrid App
Hybrid App即混合開發應用,此種開發模式將Native App和Web App進行 集成,基本的系統框架使用原生應用開發模式來完成,通過在應用中內嵌瀏覽 器功能,實現網頁的瀏覽。此種模式主要集成了上述兩種開發模式,盡可能結 合兩種開發模式的優點,避免兩者的缺點。
表3-6各種開發模式比較
開發模式 優勢 缺點
Native App 原生應用與操作系統契合,加載速度 快,可以使用操作系統提供的接口實 現附件功能。 由于需要針對不同的操作系統開 發不同的應用程序,工作量大,應 用受平臺局限,無法跨平臺使用。
Web App 基于瀏覽器進行網頁端的開發,開發 無法調用系統本身的接口,且基于
速度快,且應用程序可以跨平臺使 用,應用更新簡單。 瀏覽器無法實現系統所需的報警 功能。
可以使用操作系統提供的功能接口,
H b,, a 內部功能界面通過網頁實現,可以隨
y ri pp 時更改內容,除了基本框架外實現跨
平臺的使用。 需要對應用的系統架構進行統籌 規劃,對編程人員的技術要求較 高。
綜合考慮上述的各種模式的優缺點,考慮應用開發快速性、易用性的原則, 使用第三種混合開發模式,在已有的應用程序框架上進行移動端功能的開發。 微信[53]已經成為了國內通用的主流即時通訊軟件,且在完成基本通訊功能的基 礎上,提供接口供開發者完成個人定制化功能。由于微信本身自帶消息推送功 能,這就為安全信息管理的預警提供了實現基礎,可以改變原先的短信發送模 式,更加貼合用戶的使用習慣,根據微信內置的網頁訪問功能,可以實現移動 端定制的模塊化功能。通過將使用者身份和微信賬號進行綁定,使用戶直接免 登錄直接進入業務功能模塊。本文中選取微信企業號作為移動端應用平臺,微 信企業號是專門為企業、政府部門提供的應用接口,支持開發者進行應用定制, 幫助開發者使用最低的成本開發出高效的移動端應用。
3.3.3基于微信企業號的移動端實現
消息會話和網頁是微信企業號為用戶提供服務的兩種途徑。其中消息會話 是微信企業號與用戶之間的交流基礎,而針對混凝土壩運行期安全維護相關的 管理內容,需要通過網頁實現功能的定制化。因此除了使用微信企業號自帶的 API之外,通過搭建云端的Web服務器實現其余系統功能,具體的工作原理如 圖3-16所示。當系統后臺調用微信企業號接口時必須使用Access_Token作為 訪問憑證。Access_Token的獲取需要開發人員提供兩個參數分別是corpid以及 corpserect,其中corpid是企業號的唯一標識,創建微信企業號時生成,且無法 更改。corpserect是應用權限分組密匙,即企業號中每一個自建應用均對應一個 secret,用來確定具體使用的應用菜單。同時需要注意,Access_Token的有效期 為7200秒,在有效期內可以復用,超過有效期后重新生成,由于申請 Access_Token的接口有訪問次數限制,因此通過接口獲取的過期時間和值應當 存放在服務器上,當過期時再重新請求更新。根據獲取到的Access_Token即可 調用企業號功能API接口完成相關業務需求,具體分為報警通知,派工單以及 設備資料查詢,下面分項介紹具體的功能實現過程。
圖3-16微信企業號工作原理
(1)報警通知
報警通知實現的功能是當混凝土壩安全監測數據經分析計算后存在危險情 況,后臺服務器將發送報警信息,并要求及時處理,報警的具體內容將會通過 微信服務器推送給有關人員,完成報警。
首先登錄微信企業號PC端管理后臺,創建一個消息通知類應用,選擇可 見范圍和應用管理人員,獲取應用的AgentId (應用編號)以及Serect (應用權 限分組密匙),具體的應用信息如圖3-17所示。
AP如 容服退出
圖3-17微信企業號中應用創建
當后臺需要向用戶推送報警通知時,按照企業號中的標準格式編制報警消 息內容,并結合Access_Token向微信服務器相關接口發送文本卡片格式消息, 從而完成報警推送,信息的格式如圖3-18所示,具體效果如圖3-19所示。
"touser" : '"UserlDl |UserID2 |UserID3H,//微信企業號中的用戶TD,多個用戶之間通過丨分隔 "toparty" : "PartylDl | PartyID2n ,//微信企業號中的部門TD,可選
°msgtypen : ntextcardn,//消息類型,此處固定為文本卡片
"agentid" : 2「//應用:CD "textcard'* : {
ntitle H : n報警通知消息主題
ndescription1' : n<div clas s=\ "highlight\M>content</cliv>" r nurl" : "www.com"#//鏈按地址 nbtntxtn: ”詳情"〃按鈕名稱
圖3-18文本卡片消息格式
圖3-19報警效果展示
(2)派工單
派工單實現的功能是當存在定期檢查任務或設備需要維修時,系統通過微 信企業號發送派工單給相應的工作人員,并當維修和檢查計劃完成后通過應用 完成報告的編寫和上傳工作,完成維修和檢查流程。
首先完成應用的創建,步驟與1中報警通知相似,在此不做贅述。完成應 用創建后,需要設置自定義菜單,并將菜單的鏈接與系統中的移動端網頁進行 綁定,實現業務功能。具體的派工單應用的菜單與綁定如圖3-20所示:
圖3-20菜單設計與綁定鏈接
派工單中的任務發布與報警通知中的消息推送原理一致,相比較報警通知, 派工單中增加的是對網頁的訪問。由于涉及到登錄外部網頁,需要對用戶信息 進行驗證,通過微信授權,網頁可以直接獲取當前用戶信息,免除網頁端登錄 繁瑣的問題。企業號提供了 OAuth的授權登錄方式,使用重鏈接的方式,當用 戶點擊外部鏈接時,企業號先驗證用戶信息、重鏈接地址的合法性,當驗證成 功后獲取code值,然后再通過訪問getuserinfo接口就可以獲取到用戶身份信息, 以PHP代碼為例,對獲取用戶信息代碼進行說明,具體代碼與解釋如圖3-21 所示。
public function index() / /前臺地址對應的后臺處理函數
$messageCorpId = "wx70238e308a0det>48";//企業號 ID $request_url = $_£ERVER『REQUE£T_(JR" ];//根據點擊頁面打開的鏈接 if (!isset($_GET['code']) ) {//判斷當前鏈接中是否含有code變量,如果沒有重定向到下面鏈接,直到返回code變量 header('Location: https://open.weixirL.qq.com/conriect/oauth2/autho工ize?appid=*.SmessageCorpId.
'&redirect_uri='.$redirect_url.* &response_type=code&scope=3nsapi_basee=l/*);
//構建code獲取鏈接,再次訪問redirect url對應的地址
exit;
$code = $_GET [' code' ]; //通過服務器驗證后獲取code變量
$timeRecord = $this->getAccessToken () ;//獲取access_token
$urlToGetsenderId = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=".$timeRecoxd[ ^atestToken' ] . "&code=" . $code;//訪問接口抓取用戶信息|
$userld=json_decode (file_get_contents ($urlToGetsenderTd), true) or exit ("get userid error!"); 〃獲取用戶 ID // $sendid=$user['userid'];
cookie ('sendid' ,$sendid) ;//將用戶TD存入Cookie中,會話斷開前一直保持
圖3-21獲取當前訪問用戶信息
工作人員通過企業號上傳檢查和維護報告時,難免會有上傳現場照片或者 進行現場定位的需求。通過網頁來打開相冊或者進行定位時,由于瀏覽器的問 題可能存在不適配的情況,接口不穩定。由于微信屬于基于操作系統開發的應 用,可以輕松訪問手機硬件接口,相比較網頁有較大優勢。通過在網頁中加載 微信企業號的JSSDK,直接通過微信調取手機硬件功能接口,完成功能的開發。 使用JSSDK需要在前臺html頁面中加載jweixin-1.2.0.js,生成wx對象,通過 對wx屬性的配置完成相關功能,首先要對wx.config進行配置,完成使用權限 的注冊和驗證,關于調用手機相冊和定位的配置屬性如圖3-22所示。
//通過微信調取手機相冊
Elwx. chooselmage ({
count: lr // 默認9
sizeType: [ 'original', 'compressed' ], // 指定是原圖還是壓縮圖
sourceType: [ ,album, F ' camera' ] , //指定來猱是相冊還是相機
a success: function (data) {
var locallds = data.locallds; // 返回選定照片的本地工D列表,
// andriod中localTd可攻彳乍為img棕簽的src扈性顯示鹵片;
//而在工OS中需通過上面的接口getLocallmgData獲取圖片base64數據,從而用于img標簽的顯示
});
//通過微信獲取實時定位
Elwx. getLoca tion ({
type: 'wgs84', //默認為wgs84的gps坐標,如果要返回直接給openLouatioii用的火星坐標,可傳入'gcj021
3 success: function (data) {
var lat = data.latitude; // 緯度,浮點數,范圍為90 ~ -90
var Ion = data.longitude; // 經厘,浮點數,范圍為工80 - -180o
var acc = data. accuracy; // 位置精度
var nowposition = coordTransforin(lat,lon) 度坐標轉換為平面坐標
));}
圖3-22相冊與實時定位配置
圖3-23任務清單列表以及報告填寫
(3)設備信息檢索
設備信息檢索實現的功能是通過手動查詢或者掃描二維碼的方式,方便維 護人員在沒有電腦的情況下快速查詢設備信息,方便維修人員快速檢查和定位 問題。該應用的菜單設計和網頁功能開發步驟與上述功能(2)中的步驟保持一 致,增加的功能在于二維碼掃描功能。
二維碼獲取設備信息的實現分為二維碼的生成和二維碼識別。當前使用的 二維碼主要有兩種,包括Bar Code和QR Code。相比較Bar Code來說,QR Code 類型的二維碼蘊含的信息更多,且更容易被識別。當前二維碼的生成技術已經 十分成熟,基于PythonJavaScript以及Java均有成熟的QR Code生成庫。本系 統中主要將蘊含設備信息的鏈接地址作為二維碼內容,這樣當微信獲取到二維 碼蘊含的地址后可以直接進行網頁跳轉,從而獲取到設備信息,整個過程簡潔、 快速。
二維碼的識別需要調用微信企業號JSSDK中的掃描接口,掃描到的地址結 果作為參數傳入到回調函數中,實現網頁的跳轉。
//通過微信掃描二維碼獲取設備信息
]wx ? scanQRCode({
desc: 1scanQRCode desc1r
needResult: 1, //直接菠回掃描結果 scanType: [,,qrCode,,J , //可以指定掃二維碼還是一維碼,默認二者都有 3 success: function(data) {
//回調
var result = data. resultstr;//獲取二維碼掃描數據|
error: function(data) { console.log(data);
});
圖3-24微信企業號的二維碼掃描接口
3.4本章小結
本章主要針對運行期安全信息管理平臺搭建的相關技術進行了深入研究, 詳細講述了 WebGL無損加載BIM模型的原理和實現過程,WebSocket網絡傳 輸技術的原理和根據Python搭建后臺的具體實現,并通過使用微信企業號開發 出一套移動端系統,實現管理人員移動辦公。模型加載是管理平臺可視化監控 的實現基礎,所有的信息都與模型綁定;WebSocket保證了前后臺數據傳輸的 穩定性和及時性,優化前后臺數據交互;移動端是對安全信息管理平臺的重要 補充,實現了現場的移動辦公。
第四章基于實測安全信息的實時安全分析與評價
混凝土壩安全問題無論施工期還是運維期都是參建各方關注的重點問題。 通常情況下混凝土壩的安全隱患的外在表征不夠明顯,因此需要精細化的硬件 設備對于混凝土壩安全的特征量進行采集和傳輸,作為混凝土壩安全分析的數 據基礎[54]。安全監測儀器的布置也對于安全評價有重要影響,合理的安全儀器 布設可以準確地反映混凝土壩安全信息,此部分工作可以按照規范[55]以及工程 人員項目經驗來完成。實際過程中混凝土壩的安全分析需要專業技術人員和專 家的反復論證,工作量大且效率較低。結合安全混凝土壩分析方法和數學統計 知識,實時地對混凝土壩安全進行分析和評價,不僅可以能夠提高準確性,降 低人為的干擾還可以提高分析效率。由于混凝土壩安全數據種類繁多,數據冗 雜,且包含一部分無效數據,因此需要系統建立數據分析流程,能夠準確判定 異常并將報警情況及時傳達給相關人員和有關部門,可以最大程度地及時控制 混凝土壩安全的發展趨勢。
丄1實時安全分析和評價流程
通過建立實時安全分析和評價流程,實現混凝土壩安全監測數據的異常識 別,并根據預警等級及時向相關人員推送通知,輔助相關人員對安全監測數據 進行處理和分析,對報警信息進行二次驗證,并根據安全問題及時啟動安全預 案,最終實現混凝土壩安全的在線分析和評價,具體的控制流程如圖4-1所示。
4.2混凝土壩安全實時報警
4.2.1異常數據識別流程
混凝土壩安全實時監控的流程首先由后臺接收安全儀器發送的監測數據以 及移動端上傳巡檢報告,并對原始數據進行自動化處理,隨后按照監控啟動之 前預先設定好的實時分析方法對異常數據進行辨別,最后對結果進行匯總并按 照設定好的預警等級向相關人員發送報警通知,如果沒有報警情況則開啟下一 階段的在線監控。每次在線監控需要至少設立一個開始時間,用來作為獲取數 據的起點,異常數據部分識別方法需要以實測數據的相關信息作為判斷依據。
4.2.2異常數據識別方法
異常數據的識別方法按照類別主要分為四種,分別是時空評判方法、監控 模型評判方法、監控指標評判方法以及巡查評判方法。每種方法都有其特點, 在實際監控的過程中,支持用戶對于各種識別方法按照需求進行組合使用,對
于每種方法中的參數需要提前設定和計算,識別主要針對的對象是測點的實測 數據。
(1)時空評判
時空評判方法需要綜合考慮數據時間和空間上的變化關系以及環境量的影 響。時空評判方法主要側重于數據變化的規律性,包括數據變化趨勢以及數據 的空間變化。其中數據變化趨勢判斷方法包括上下連檢定法和正負連檢定法, 數據空間上的判斷方法包括年度極值判斷法和歷史極值判斷法[56],針對不同的 監測項目需要對方法進行限定使用,否則會造成誤判。
上下連檢定法是設定一個臨界值(可以使用序列均值代替),設置一個變量 X,然后判斷新增數據與臨界值的相對位置,如果持續大于臨界值則或小于臨界 值則對X進行累加,如果出現從大于臨界值變為小于臨界值則將X清零重計, 反之亦然。根據與系統中預設的X標準值進行對比,如果X軸〉X標進則說明監測 數值的整體走向是增加,判定此測點為異常疑點,反之亦然。
正負連檢定法是判斷安全監測數據走向保持的時間。主要根據統一測點相 鄰兩個數據的差值Ax來判斷數據當前走向。通過系統設定如果相鄰兩個數據的 差值連續保持為正值或負值,如果走向保持時間t軸〉t標進,則判定此測點異常。
上下連檢定法和正負連檢定法的區別在于針對趨勢判斷的側重點不一致, 前者側重一段時間內數據的整體走向,而后者側重于數據的當前走向。
年度極值判斷法和歷史極值判斷法是將測點數據分別與測點數據包括最大 值和最小值在內的年度極值和歷史極值關系進行判斷。如果大于最大值或小于 最小值則作為異常疑點。此方法只針對部分指標使用,例如滲流量和滲透壓力, 針對混凝土壩的位移變化此方法不適用。
(2)監控模型評判
監控模型評判方法主要是將通過建立數學模型得到的預測值與實際值進行 比較,從而判定測點的狀態,判定標準如下所示:
\a — a\ < 2S
2S < \a — a\ < 3S
\a — a\ > 2S
其中上述表達式中a代表測點實測值,刨弋表數學模型預測值,S代表數學 模型剩余標準差[57]。
統計模型將監測數據轉化為隨機變量,綜合利用數理統計、水工結構理論 等分析監測量與其他有關變量的之間定量關系,建立模型表達式。由于統計模 型體現了監測量與其他相關變量之間的關系,在邏輯性上更符合數據的實際走 向。按照前人的分析和經驗,位移、滲流以及裂縫項目經過分析有確定性的統 計關系,并已被使用在混凝土壩安全監測分析中[58]。統計模型的建立主要考慮 的是效應量和影響因素之間的確定關系,混凝土壩中主要的三個影響因素為水 壓因素,溫度因素以及時效因素,因此建立的統計模式形式如下:
S = SH(t) + 8t (t) + (t) (4-2)
H = Hh (t) + Ht (t) + He (t) (4-3)
上述兩式分別表示了位移統計模型的形式和滲流統計模型的組織形式。其 中H小標的代表水壓分量,T下標的代表溫度分量,。下標代表時效分量。式 中每項內容中的系數可通過回歸分析來擬定,其中回歸分析中又包括多元線性 回歸、偏最小二乘法回歸、逐步回歸等多種方式,在模型生成時支持用戶手動 選擇,并在生成模型后對根據誤差大小檢驗法,關聯度檢驗法以及后延差檢驗 法等來對于模型的精確程度進行檢驗,如果不符合要求則重新生成,針對其他 模型的誤差檢驗理論與其一致。
灰色理論模型[59]是多用在實測數據少、數據雜亂的情況下對數據變化曲線 有較強的擬合能力。灰色理論將數據的變化過程當作與時間有關的灰色變化過 程,通過對原始數據列的處理,減小數列的隨機性,生成一段具有規律性較強 的待處理序列,然后通過偏微分方程對數據進行處理擬合,最終實現數據的預 測。灰色理論預測模型具有原理簡單,容易計算以及擬合準確等優點,但是不 可否認的是以GM(1,1)為代表的灰色模型,單純的使用數學理論來進行預測, 對于整個混凝土壩的安全系統內在因素之間的相關關系考慮較少,短期預測能 夠達到客觀需要的預測精度,但適合進行中長期預測。以下以GM (1,1)為例 說明灰色理論模型建模步驟。
現在有(%1,X2,...,xm)等m個變量,對數列做累加生成(一般是一次累 加即 1-AG0),生成(%(1), %21)---,%21))分別對應(X1,+ %2,- ■■,xm-l + xm)。 通過使用累加主要是為了消除隨機數列的偶然性和波動性。累加后建立微分方 程的白化形式:
器 + E = b (4-4)
其中a和b分別表示帶求解系數,通過最小二乘法進行求解,就可以獲取 到原函數*(t),就可以對預測值進行求解。
灰色理論模型還可以進行擴展,即將GM (1,1)轉化為GM (N,1)即將X】 由單個數據轉化為1 x N的向量作為原始數據序列,其中一個為效應量其他為影 響量,按照上述的求解思路對多微分方程進行求解,最后獲取預測函數進行數 據預測。
人工神經網絡通過抽象訓練建立某種模型,按照不同的節點組合神經元網 絡,最后實現數據的分析和預測。BP神經網絡[60]由于其超強的擬合性,擬合 性,容錯能力強等特點而受到工程學界的一致認可。BP神經網絡的網絡層次主 要分為三層,分別是輸入層、隱含層以及輸出層。其中輸入的是影響因素,隱 含層定義了不同節點之間的計算關系,輸出的是效應量。神經網絡的計算結構 和計算流程如圖4-2, 4-3所不。
圖4-2神經網絡計算結構
圖4-3神經網絡計算流程
(3)監控指標評判
對于不同的監測項目的界限值劃定的方法不同,例如對于設計階段已經明 確規定的規范值可以直接進行引用,例如某些斷面的應力值或基地揚壓力值。 對于其他項目類型的監控指標界限值可通過兩種方法來獲取,一種是按照規范 對于混凝土壩安全進行分析和反分析,以穩定性作為因變量,從而計算出不同 項目影響結構安全的臨界值,作為監控指標。第二種是通過對不同測點的監測 資料的整編和分析,從中研究測點監測數值的變化規律,可通過經驗法和數理 統計法實現監控指標臨界值的獲取。以經驗值為例,可求得長序列監測數據的 平均值作為中間量,以其上下浮動的10%, 20%等確定不同的測點預警等級。 數理統計法目前常用的包括小概率法和置信區間法[61],以監測數據為分析基礎, 按照不同的失事概率確定不同測點的監控指標。
(4)巡視檢查評判
巡視檢查是按照規范要求,需要對混凝土壩進行定期巡檢,查找安全隱患 和結構不安全所在點。由于巡視檢查的主觀性較強,只能定性地分析混凝土壩 的安全性態,因此在巡查報告中新增項目打分。通過采用打分制來對于每項監 測項目進行打分,通過設置臨界值確定項目預警警戒值。
4.2.3異常數據報警分級建立
根據預先設定好的判斷方法,實現異常數據的及時報警。從混凝土壩運行 的狀態來看,單獨一個測點的一次報警對整體安全性態的影響較小,因此需要 設定一個等級體系來進行處理和分析[62]。預警分級主要考慮層級特性為“混凝 土壩-監測項目-壩段(斷面)-監測儀器-測點”。針對不同等級的預警評語均保 持一致,具體圖下表5-1所示。
表4-1不同預警等級劃分
預警等級 I II III IV
預警名稱 正常 基本正常 輕度異常 重度異常
報警實現是通過從最底層測點層層遞進,直到混凝土壩所屬的最高層。具 體的下層預警名稱和預警名稱的對應關系可在系統中由用戶進行自主定制,并 支持對預警級別的描述。當自動化監控的過程中,通過與移動端程序的配合, 實現對于安全報警內容的定制和安全報警的及時推送。
4.3混凝土壩安全數據處理與預測
丄Ml異常數據原因分析
通過上述4.2小節所述,系統通過自動監控對測點的安全數據進行異常評 判,但是由于監測儀器數據異常的原因有多種,異常并不等于混凝土壩存在安 全風險,在系統自動判斷的基礎上,需要管理人員手動對預警進行處理,分析 混凝土壩當前安全狀態。異常數據出現的原因主要包括以下兩類:
(1) 儀器原因。由于混凝土壩的安全監測從施工期持續到運行期,是一個 長期的過程,又由于混凝土壩現場環境復雜,可能出現監測儀器異常或損壞的 情況。如果儀器的靈敏度受損,采集到的安全監測數值可能無法正常反映混凝 土壩安全狀態的實際情況。同時由于安全數據采集的自動化涉及到采集、傳輸、 入庫等多個步驟,也間接地增加了異常值出現的概率,例如由于接口滲水或電 壓不穩定等情況,都可能導致異常值。
(2) 安全異常。混凝土壩運行期的安全狀態基本比較平穩,但是如果環境 量大幅改變,包括洪水來臨,溫度的驟然變化、地震等自然現象,會導致安全 隱患的出現。同時混凝土壩內部的滲流和變形也對混凝土壩結構的安全有較大 影響,因此在確定監測儀器取值正常的情況下,需要對安全監測數據反映出來 的安全異常進行分析。
丄3.2數據處理
按照4.3.1所述,當系統自動監控出現異常值時,如果是儀器原因,則將異 常值手動剔除,如果是安全異常則需要二次處理和分析。人工處理相比較系統 的自動判斷更加精細,并能夠通過數據計算前的預處理來避免由于誤差而導致 對混凝土壩安全狀態的錯誤判斷。對于已經自動轉化為特征量的整編數據,需 要進行數據的預處理。預處理主要包括誤差處理、數據插補與抽取兩項內容。
(1)誤差處理
誤差的種類主要有系統誤差、隨機誤差以及粗差,三者中最重要是對粗差 進行剔除。粗差指的是由于儀器本身原理或人工觀測數據中明顯不符合實際情 況的點位數據,即一段觀察序列中的奇異值。由于此種誤差對于系統安全分析 的有較大影響,因為在系統進行處理時需要著重對此項誤差進行剔除。一般粗 差的識別使用萊依達法則[63]。
(2)數據插補與抽取
數據插補的意義在于對于某段時間內的安全監測數據序列不滿足分析的最 小采樣頻率要求,因此需要對相鄰監測數據之間通過插補的方式豐富監測數據 序列。常用的插補方法主要包括函數插補以及線性插補。函數插補可以通過安 全監測預測模型得到的統計模型、灰色模型等,輸入時間得到預測值作為插補 的監測值。線性插補是通過相鄰兩個測點監測時間和監測數據同時取平均來實 現。
數據抽取的意義在于由于安全監測儀器的采集頻率較為頻繁,且對應的特 征量基本沒有變化,則可以對監測數據序列進行選擇性的抽取,從而減小了分 析的工作量,抽取的條件可以選擇時間或頻次。
丄3.3二次分析
相比較自動監控階段的數據分析,通過數據預處理后的安全監測數據更能 準確地反映出混凝土壩的安全狀態,因此可通過利用上述4.2章節中提出的三 種監測模型對數據進行重新的預測,觀察安全監測數據的未來一個階段內的走
向趨勢。為了提高模型的預測精度,系統開發支持用戶對于監測模型進行自由 組合。組合方式包括混合模型以及權重組合,兩種方案均得到實例驗證有效[64]。 混合模型是利用統計模型的預測量與其他相關影響因子作為模型的輸入,以實 測值作為模型的輸出來訓練模型,這樣做的優勢是結合了統計模型的經驗性以 及神經網絡強大的擬合能力。權重組合是同時利用多個監測模型進行賦權,通 過賦予每個模型所占權重,從而求出最終預測值。組合模型的權重計算使用最 優組合法,下面以兩種模型組合為例說明模型組合權重確定方法。
通過建立兩種模型對未來的n個數據進行預測,其中m'lx(x = 1,2,— n)和 m'2x(x = 1,2, — n)分別表示兩種數學模型計算出來的預測值,mx(x = 1,2,— n) 代表實測值,e“和e2乂分別代表兩種模型預測值與實際值之間的誤差。Mx(x = 1,2,…九)代表組合模型的最優擬合值,求解組合權重的方程組如下:
ex = k1elx + k22e2x (4-5)
1 =心 + k2 (4-6)
E總=Xx=i ex (4-7)
其中為了滿足E總最小的原則,則給出求解條件冷=0,根據此求出組合權重他 和他的結果為:
址 = E e務-J: °1送2力
1 Xe^x+Xe^x-Xelxe2x
上 =1 E°1送2力
2 Xeix+Xe2X~Xelxe2x
4.4基于層次分析法和爛權法的多層次安全模糊評價
4.4.1模糊評價原理和流程
模糊評價[65]是一種基于模糊數學的綜合評價方法,通過不同因素之間復雜 的相關關系,通過隸屬度的原理,將定性的評價轉化為定量的評價,并基于模 糊數學理論對整體有一個綜合性的評價。對于混凝土壩來說,混凝土壩安全信 息數據不僅包括儀器采集到的安全監測數據,還包括巡視檢查在內的安全檢查 數據,這些數據之間的相關關系是模糊的,而這些安全信息與混凝土壩安全狀 態的相關關系也是模糊的,因此通過建立合理的安全評價體系,利用設定好的 等級和分配的權重確定每一層每一個節點的模糊評價矩陣,并不斷層層遞進,
從而實現了混凝土壩安全的有效評價,本章主要以碾壓混凝土壩為例說明安全 監測模糊評價原理。模糊評價的原理如圖4-4所示:
4.4.2評價指標集合
評價指標集合的建立的意義是通過分層的思想對混凝土壩安全控制的內容 進行不同等級的分割,建立多層次的安全評價體系。這樣在實際的安全評價中, 根據形成的安全體系,通過對不同模式的節點所有的權重進行分析,獲取到權 重向量,然后從底層不斷向上計算,最后實現從安全數據出發的混凝土壩安全 結構分析,本文通過研究相關規范和參考其他已有的研究成果,建立的混凝土 壩安全評價體系如圖4-5所示:
總體評
價層
4.4.3評語集合的設定
模糊評價的最后確定方法是根據模糊評價矩陣和權重相乘得到最終結果相 對于各評語的隸屬度,然后根據最大隸屬度的原則確定最后的評語。因此評語 的劃分非常重要,如果劃分過多則會導致結果分散,且會加大工作量,如果評 語劃分區間較小,會導致得到的結果對于安全評價的結果反映不明顯。本文中 的評語集合結合4.2.2中監控模型的結果評語,并追加與最大值關系判斷,最終 劃分的評語集合為{正常,基本正常,輕度異常,嚴重異常}。需要說明的是此 評語適合從最低層的數值層到最頂層的總體評價層,不同的是不同層的隸屬度 的計算方法不一致。
4.4.4模糊評判矩陣確定
由于系統建立的是多層次評判矩陣,模糊評判矩陣的求解需要從最底層節 點求取,在當前的評價體系中,主要是數值層和巡視檢查的子節點所在位置進 行模糊評價矩陣的求解,其他父節點的模糊評價矩陣都可以通過子節點形成的 模糊評判矩陣與權重的相乘來求得,形成了層層遞進的關系。現在就最底層模 糊評判矩陣的求解方法進行介紹。
安全監測數據屬于定量數據,使用的方法是根據數學模型的計算的預測值 和剩余標準差來規定不同監測點的安全標準,其評語結果與隸屬度的對應關系 [66]確定為如下表4-2所示。巡查數據屬于定性檢查,為了能夠將其作為模糊評 價的參數,對巡查的項目實行打分制,并在計算之前預先設置好不同打分區間 對應的隸屬度[67]。
表4-2評語與隸屬度對應關系
評
I 監測數據控制標準 隸屬度
語
正 I 小 C [ \z — z\ \z — z\ '
常 \z ~ ^\ — 2S J I zmin — 2 — zmax 1 ~~~,00
"I
本 C [ \z — z\ — 2S \z — z\ — 2S
正 2S < \z-z\ < 3S I ^zmin<z<zmax 0,1 , 2s
常
度 八 L ^max 3S Zmax — Z — 3S
\Z — Z\ > 3S zmin — z — zmax 八 „ c 八 Q c
異 II 「 z-z-3Sz-z-3S
護 0,0,1 — _ 3f > _ 3f, 0
重
曰 Z 二 ^max Z < ^min [O,0,0,1]
常
上述表格中,別弋表通過監控模型求得的預測值,Z代表實際安全儀器采集 到的實測值,S代表根據監控模型計算求得的剩余標準差,zmax和z詼"為監測 項目要求的臨界值。
假設數值層一段時間內存在m個監測數據,通過上述表格中的隸屬度計算 方法,即可求得數值層的mx4模糊評價矩陣。
4.4.5組合權重的確定
當前大多數的模糊評價方法使用層次分析法來確定權重并取得了一定的研 究成果,但是存在問題是層次分析法得到的權重結果是根據管理人員或者專業 人士按照個人經驗與規范等組合得到的,仍然具有很強的主觀性,為了消除主 觀因素,使用爛權法來對層次分析法獲得的權重結果進行修正。
(1)層次分析法
多級層次分析法主要通過同層元素的相互比較來確定同層元素之間所占的 比重。假設某層存在影響上層的因素有x個,兩個因素之間相互比較,滿足的 關系是
[
勺=石 (4-10)
其中切表示Xi相比較Xj的重要程度,最終形成一個x維的判斷矩陣,求得 最大特征根和特征向量,特征向量經過歸一化就可得到通過權重向量,最大特 征根通過下述公式來驗證權重分配的合理性。
Cr = ((max - x)/(x 一 1)R/ (4-11)
其中Ymax表示判斷矩陣的最大特征根,X代表矩陣的維數,R;與矩陣的維 數有關,通過判斷Cr <0.1的結果,如果小于則說明層次分析法合理,否則不 合理。
(2)爛權法
考慮到本文中分析的是多層次的安全評價方法,因此為了統一不同層之間 的爛權法的計算,選取每層每個因素的模糊評價向量作為權重的計算依據。則 第i個因素的爛山的求法如下所示:
hi = 一僉為廿®ln kij (4-12)
1—hi (4-13)
Vl = TSi
V = (V1,V2, ...Vy) (4-14)
其中x代表評語集中評語的個數,i代表第i個因素,隔代表第i個因素對 應第j個評語的隸屬度值,如果隔=0,則屁=0。Vi代表第i個因素的權重,y代 表同層中包含影響因素的個數。V代表通過爛權法求出的權重向量。
(3)組合權重
組合權重有兩種方式,一種是線性組合,一種是乘法組合,兩種方法都有
應用實例。設通過層次分析法和爛權法得到的權重向量分別為P =(內卩2…Py)
和V =(Vi,V2,...Vy),組合的方式如下所示:
e( = api + (1 — a) Vi (4-15)
E = (ei,e2,..,ey) (4-17)
其中式一代表線性組合方式,a的值通過具體分析得到,參考相似案例取 值為0.5[68]。式二代表乘法組合方式,最終生成的權重向量為式三。
4.4.6模糊評價結果
按照4.4.1所述,設某層的組合權重為E = (ex,e2 ...ey),模糊評價矩陣為R, 則可求得上一層對應項目的的模糊評價結果為
rH …r14
Q = E ■ R = (ex,e2 ... ey) =(i,r2,r3,r4) (4-18)
■… ^y4
其中根據最大隸屬度原則,即岳ax對應的評語即為此項的最終評價結果。 需要注意的是,依據本章提出的安全評價體系,對于除數據層之外,其他所有 層級的項目都可以進行安全評價,對于數據層來說,一段時間內一個測點對應 多個測值,每個測值之間是平等關系,因此數據層平分權重。假設Qi,Q2 ..Qn 是n個監測點得到的模糊評價結果,對其進行組合,W = (Q1,Q2 ..Qn)T即為 測點層的模糊評價矩陣,再次求得權重后可繼續往上層進行評價,因此完成了 多層次的安全評價。
4.5基于模型的應急處理流程
在完成系統自動判別、人工處理后,如果仍存在危險的情況,且已經威脅 到混凝土壩的日常運行安全,則需要進行應急處理〔©I。應急處理主要包括編制 應急預案,啟動應急預案,應急預案執行過程以及應急狀態解除后報告的編制。 根據安全分析的結果,將存在險情的混凝土壩部位在模型中進行標注顯示,提 醒管理人員都能直觀地獲取到具體險情所在位置,并將應急處理流程與危險源 進行綁定,實現應急執行進度與應急方案的在線查看,最后應急處理完成后, 應長時間對危險部位進行標注,提醒管理人員持續關注。
4.6本章小結
本章詳細闡述了基于實測安全信息的實時安全分析和評價的詳細流程,包 括實時報警、安全監測數據的二次處理和預測、基于層次分析法和爛權法的實 測安全模糊評價以及應急處理流程,并對于其中的概念和方法進行了解釋。通 過系統開發實現完整的控制流程,實現混凝土壩安全的實時分析和評價,保證 了混凝土壩運行期的安全運行。
第五章B/S架構下混凝土壩運行期安全信息管理平臺開發與應用
5.1平臺開發目標
為進一步提高運行期的安全信息管理水平,保證混凝土壩的運行安全,針 對混凝土壩安全信息管理設計出一套“數據采集、數據可視化、數據分析”的 一體化管理平臺,系統主要實現以下目標:
(1)綜合利用物聯網、BIM技術、數據庫技術,建立基于BIM的安全監 測信息管理模型,實現模型信息與監測信息的綁定。其中安全數據的采集和模 型的導入是實現系統功能的基礎,BIM模型包括屬性信息、業務流程信息以及 安全監測信息。
(2)搭建基于WebGL的運行期安全綜合管理平臺,實現大量安全信息的 可視化表達。運行單位通過使用管理平臺在線對混凝土壩進行監控,并針對安 全信息管理流程進行維護,實現所有安全信息的整理和歸檔。
(3)系統實現混凝土壩安全的實時安全分析與評價。綜合利用數學理論、 結構知識實現混凝土壩安全的在線分析。實時分析和預測混凝土壩安全狀態, 并針對混凝土壩安全進行多層次的評估。
(4)云端訪問。通過部署云服務器,所有的程序在云端發布,使多用戶多 角色人員可以通過互聯網隨時訪問系統,進行相應的管理和查詢工作。
52平臺架構
操作交互
表示層
數據交互
WebSocket
]數據訪問接口
業務邏輯層
數據庫訪問驅動
文件讀取
數據層
安全信息數 據
系統采用B/S架構進行設計,以數據采集為基礎,以數據的分析和整理為 核心,以響應式用戶界面為人機交互平臺,開發出一套安全信息管理平臺。系 統經過架構設計自下而上可分為四個層次,分別為數據采集層、數據層、業務 邏輯層以及表示層。
數據采集層:該層主要是通過多種數據采集手段,綜合利用自動化采集技 術、GPRS網絡傳輸技術以及socket監聽技術等,實現安全監測數據的自動化 采集。同時通過移動端上傳與系統相關的安全業務數據以及一些需要手動上傳 的安全監測數據,方便進行后續的處理和分析。
數據層:該層主要實現了與系統有關的所有安全數據的存儲和訪問。數據 存儲部分由模型數據庫,關系數據庫和文檔數據庫組成。其中模型數據庫中存 儲的是用來在前臺渲染的BIM模型,關系數據庫包括了所有相關的安全數據、 如監測數據、分析數據、業務流程數據等,文檔數據庫對所有的文件形式存儲 的數據進行保存,便于實現用戶的上傳和下載操作。由于數據庫中安全監測數 據數據量非常巨大,對大數據表進行分區或分表操作,將時間字段作為劃分標 準,實現數據庫訪問性能的優化。
業務邏輯層:提供各類數據接口服務和功能業務接口服務,作為橋梁實現 表示層和數據層之間的數據流通。系統通過PHP搭建Web端應用的后臺程序 主體,并使用定時運行的Python腳本分析和處理安全監測數據,并通過Python 構建的WebSocket Server實現基于數據的前后臺實時交互。
表現層:表示層是指最后呈現在用戶面前的數據可視化、交互式查詢和操 作的系統界面。安全信息管理平臺使用LayUI作為前臺設計框架,實現安全數 據的在線查看和分析,通過采用HTML5、JavaScript以及CSS進行開發,部分 可視化界面需要在有WebGL支持的瀏覽器上進行訪問,系統表現層與其他層 進行隔離,保證其獨立性,提高開發效率。
5.3系統開發工具
系統主要基于SQL Server 2008、ThinkPHP、Apache等開發實現,其中SQL Server 2008作為存儲數據庫,ThinkPHP作為后臺代碼組織框架,Apache用來 實現發布。所有的內容全都布置在云服務器上,分為Web服務器和數據庫服務 器,其中Web服務器使用Linux操作系統,比較穩定且通過命令行交互,數據 庫服務器使用Windows Server操作系統,具體的分項如下所示:
(1)前端:基于LayUI框架進行系統界面設計,基于Three,js框架完成系 統可視化功能的開發,其余通過Echart和HighChart實現圖表的繪制,通過 JavaScript代碼完成前臺邏輯的編寫。
(2)Web服務器:采用ThinkPHP框架進行開發,同時使用Python編寫 WebSocket Client。
(3)數據庫服務器:使用SQL Server2008作為數據庫軟件,使用C#編寫 監聽程序實現安全監測數據的自動化采集入庫。
5.4平臺功能彳吳塊與應用
5.4.1 BIM可視化管理平臺
(1)模型可視化
混凝土壩安全監測布置繁瑣,且數據信息多源化,通過導入模型文件,建 立基于BIM模型的精細化三維場景,形成工程信息的融合,同時也會其他功能 提供可視化的交互環境。如模型的縮放、平移、旋轉、定位、剖切與漫游等多 種操作,系統三維主界面如圖5-3所示,可以通過選取樹狀節點,加載需要的 模型。
(2)數據查詢和統計
將BIM模型中蘊含的屬性信息一同加載在場景中,實現儀器或測點的基本 信息查詢,包括名稱、參數、位置以及圖紙等多元信息,支持用戶快捷搜索定 位所查儀器。同時把運行期中的安全監測動態信息,與安全監測信息模型建立 關聯,實現安全監測信息的三維可視化,以及在混凝土壩整個壽命周期的動態 更新與維護,為混凝土壩安全運行分析與健康診斷提供全方位的信息支撐,具 體如5-4和5-5所示。
(3)安全預警和評價
按照423和443建立的預警級別和安全評價評語,對測點、斷面、壩體 等層層進行報警和安全評價。其中報警的實現是根據后臺實時分析處理安全監 測數據和巡檢記錄結果,對于不滿足要求的直接在模型上通過顏色進行標注。 安全評價在用戶計算后可以將結果存儲到數據庫中,通過在可視化界面的選取, 實現不同層次的安全評價結果可視化顯示。
圖5-6測點報警和評價
圖5-7斷面和壩體報警和評價
(4)業務數據查詢
系統將安全檢查、故障隱患以及日常維護情況的信息均和模型進行綁定, 用戶可以查詢到當前流程的進行情況,以安全隱患為例,現場管理人員通過移 動端登記安全隱患,然后推送到電腦端的系統中,根據上傳隱患的位置,在模 型中進行定位,并生成隱患處理流程,可以實時查詢隱患的處理情況,具體如 5-8所示。
圖5-8安全隱患管理
5.4.2項目信息管理
項目基本信息管理包括模型管理、安全制度與法規管理、工程檔案管理和 技術資料,主要是對從從施工階段傳遞過來的信息進行管理,同時也對于基本 信息進行維護。模型管理支持模型文件的管理,當需要對模型修改時,可以支 持模型的下載和修改后上傳,后臺通過遍歷模型文件查詢修改內容,完成對系 統內BIM模型的更新操作。
圖5-9工程檔案管理
5.4.3設備信息管理
設備信息管理模塊針對運行期內所有儀器設備的信息進行維護和更新,保 證安全信息管理平臺的正常運轉。設備信息管理模塊包括設備基本信息管理, 維護管理,故障管理,知識庫四部分內容。
(1)設備基本信息管理主要實現對設備相關信息的查詢和檢索,并對于其 中的部分信息進行修改和更新。對于安全監測儀器來說,查詢的內容包括儀器 當前狀態、儀器合同、儀器考證表、儀器圖紙以及所在剖面布置等信息。支持 用戶按監測項目、監測剖面等多種方式對信息進行查詢和檢索,并支持按照用 戶需求對信息進行導出。
(2)設備維護管理主要實現的維護計劃的管理以及維修報告的存儲和查看。 管理人員通過此菜單設置正常的維護計劃,包括臨時維護計劃以及定時維護計 劃兩類,并制定維護人員。維護日志主要是針對維護人員完成相應的維護工作 后,需要對儀器檢查結果進行上報,對維護記錄進行歸檔。
(3)故障管理是對于存在故障或損壞的設備完成維修流程,主要包括故障 判斷,故障登記,維修日志。故障判斷是針對安全監測儀器,如果沒有按照設 定頻率回傳安全監測數據時,儀器自動進入故障判斷待定狀態。故障登記是針 對存在問題的設備,在系統中進行記錄,同時設置設備在BIM平臺上的顯示狀 態,可以選擇隱藏或者咼亮顯不。
(4)知識庫中存儲有與設備維護和故障檢修相關的知識內容,主要包括設 備常見問題匯總、維護知識、維修技術以及相關廠家查詢。
5.4.4安全數據管理
安全數據管理是混凝土壩安全信息管理平臺的核心內容,通過對所有安全 信息的整合,實現安全數據的分類管理,為后續的分析和預測提供基本的判斷 依據。主要包括監測數據管理、巡檢數據管理和安全隱患管理。
(1)監測數據管理
自動采集到的安全監測數據會自動進入到系統數據庫內,由于獲取到的并 不是特征量,因此需要按照規范對數據進行整編計算,系統提供自動整編和手 動整編兩種模式,并提供圖表輸出一鍵生成,具體以圖5-10, 5-11為例。
圖5-10監測數據整編
(2)巡檢記錄管理
巡檢記錄管理是針對巡檢流程中產生的信息進行管理。包括巡檢計劃的制 定,巡檢結果記錄。巡檢計劃制定后,系統會自動發送通知至移動端,現場人 員收取信息后執行并將巡檢報告上傳至服務器,最終可通過巡檢結果記錄進行 查詢。
(3)安全隱患管理
在巡檢過程中,除了正常的巡檢報告,如果產生安全隱患,還需要額外對 安全隱患進行登記。安全隱患管理包括安全隱患的登記以及隱患處理記錄。首 先由移動端對隱患登記后,由系統管理人員進行處理,并分配專人及時進行處 理,處理完畢后生產隱患處理報告,完成隱患整改的流程。
5.4.5實時安全信息管理
實時安全對應于第四章提出的安全控制體系,對其中的重點步驟內容進行 管理,主要包括預警管理、數據預處理、數據分析、安全評價以及應急管理。
(1)預警管理中包括自動分析預警、報警記錄以及警情發布。當系統進行 自動化的監測時,在自動分析報警中設置分析周期、分析內容、異常判別方法, 警情信息等,并開啟報警監控,隨后對報警記錄進行管理,維護報警信息的狀 態,后期由人工操作對安全數據進行分析和評價。
圖5-12自動分析預警設置界面
圖5-13自動報警原則與警情評判設置
(2)數據預處理是當安全出現警情時,由于計算機本身可能對于異常出現 的原鑒別不清晰,因此需要人為的對數據進行處理,主要包括誤差識別、數據 插補以及數據抽取,可對于整編后的數據二次處理。
o«m ■
P mm ▼
儀■型* 數1KH
: 30ie-12-U 2*NJ • ■
W>av: 2OX^12-3«
txMC:
▼ :
■ : a mm E » Ml
» :: M-x-n a 1 20I7-1V17<IOOCW 00 ■
» ■ ■ Mxe rot7-ii.ioooo(joB on
• _ M-Mn
□ «>?« □ s A&XG
AAX*1 JOIM8OOOCOO n7-ii4»aoooao ora
0<D
* '
» : - EJfcJM
? ::
» ::
» :
» ■ ■ ■1 人:*> •»«»«: ® 0*A«
» : -
» ::
X
W1 aMK •M •
2017-11-If 00 OOOC Ml
Ottt
Ml MMC-01 mMi42ooooao oan
»i AS4UM 2O«7-1l.13000C(X> oao«
3O«7 11 14000000 0«M ■
圖5-14數據插補
(3)數據分析是基于安全監測數據通過構建不同的數據模型對未來情況進 行分析,包括統計模型分析,灰色理論模型分析以及組合模型分析,用戶可根 據需要選擇合適的預測方式,并支持對預測模型進行保存,下次繼續使用,如 圖5-15所示。
圖5-15預測分析界面
(4)安全評價是使用模糊數學的方法對安全實測性態進行安全評價,主要 包括分析時間的選取、權重確定方法的選擇、指標體系的構建以及權重的計算。 下面以實際例子進行分析,分析數據計算流程,系統界面截圖如圖5-16、圖5-17 所示:
圖5-16混凝土壩安全模糊評價界面
圖5-17混凝土壩安全模糊評價結果查看
以某碾壓混凝土壩的測壓管水位為依據,進行斷面的揚壓力安全評價,再 通過斷面揚壓力的安全評價結果通過權重劃分確認壩基揚壓力整體的穩定性。 混凝土重力壩壩基揚壓力的測量完成至少兩縱一橫的斷面布置。其中沿上游排 水基礎廊道每個壩段的排水幕上分別設置一個測壓管,構成揚壓力監測第一縱 斷面,同時下游同樣位置布置揚壓力監測第二縱斷面。在本節計算過程中,選 取2018年1月2日至2018年5月3日的序列數據,選取3#-7#壩段的第一、 第二縱斷面的測壓管測點作為安全評價指標底層,中間層為斷面,最上層為監 控項目。
①確定基本參數
基本參數包括時間、控制指標模型選取,權重計算方法、指標體系的構建
以及主觀層次法賦權。
表5-1安全評價參數選取
起始時間 2018年1月2日
截止時間 2018年5月30日
控制指標模型選取 數理統計模型
權重方法計算 底層層次分析法線性組合癇權法,其他層次分析 法。
壩基揚壓力第一層
指標體系構建 斷面第二層、
測點第三層
②最底層評價矩陣的計算
在實際進行安全評價計算時,均以測點作為底層,測點的評價矩陣通過測 點實測值求得。首先選取監測分析模型,獲取模型剩余標準差和預測作為控制 標準,得到第i條實測值數據的隸屬度向量Wi = G1,Si2,5i3,Si4),由于數值層 實測值等分權重,得到測點的評價矩陣為w測=
(星五,星雖,星雖,泄±),其中n表示測值數目,再將不同測點的評價 n n n n
矩陣組合,即可得到底層測點的評價矩陣。根據上述理論,通過對實測值進行 計算,得到第一縱斷面和第二縱斷面的評價矩陣分別為:
0.6982
0.6022 0.2233
0.3022 0.0724
0.0830 0.0061
0.0126
R1 = 0.7213 0.2123 0.0633 0.0031
0.9553 0.0427 0.0020 0
-0.7713 0.0826 0.1423 0.0038-
0.4432 0.5231 0.0337 0
0.5029 0.4088 0.0808 0.0075
R2 = 0.3452 0.6098 0.0443 0.0007
0.3244 0.6541 0.0211 0.0004
-0.6523 0.3087 0.0332 0.0058-
③確定權重
系統支持用戶對不同層次的節點通過手動打分,自動求得主觀權重。此處 以第一縱斷面下的測點層為例,主要根據測點位置、測點處儀器狀態,采集值 的復相關系數等作為考慮因素,對其權重矩陣為:
1
1/ 2
1 1/2
1/3 1/3
1/4 1
1/2
C1 = 3 1 1/2 2
3 4 2 1 3
一 1 2 1/2 1/3 1 一
入max = 5.2070
對于權重矩陣要進行一致性檢驗,如果結果小于0.10表示正常,否則代表 重要度排序有邏輯問題,需要重新賦權。此例中的一致性檢驗的結果為:
CR =(fmax::)= 0.04 < 0.10
(n - 1)R
其中的系數R當因素數量為5時,取1.12。因此滿足一致性檢驗,特征向
量經歸一化處理得到權重為 w 層=(0.1365,0.0790,0.2446,0.4034,0.1365)。
按照第四章中爛權法的計算方法,對評價矩陣Ri進行計算,可得到權重為
w 惰=(0.1552,0.1225,0.1685,0.3713,0.1825)。
使用線性組合方法組合權重,其中各自的系數取0.5,最后得到總的權重為
w 總 1 = (0.1459,0.1007,0.2065,0.3874,0.1595)。
③評價結果
在得到第一監測斷面下測點的評價矩陣和組合權重后,則第一斷面的評價
向量為:
Mi = w 總 1 • Ri = (0.8046,0.1366,0.0554,0.0034)
同理可得第二監測斷面的評價向量為:
M2 = w總 2 ■ R2 = (0.4263,0.5351,0.0367,0.0019)
最后重復上述過程,再對于兩個監測斷面賦權計算,從而求得揚壓力項目 最終的評價向量為:
=(0.6608,0.2881,0.0483,0.0028)
根據最大隸屬度原則可以判定揚壓力監測項目總體正常,該評價結果與大 壩實際安全狀況吻合。如果需要繼續往上層計算,則可重復步驟即可得到結果。
安全評價在系統中支持用戶進行自由組合,且評價成果保存后可以在可視化界 面上實時標注。
(4)應急管理是包括應急預案管理和應急處理記錄。其中應急預案是提前 編制好應急處理內容,如果出現險情可以第一時間進入執行狀態。當應急預案 啟動后生成一條應急實例,并進入應急處理菜單,應急處理中主要是對應急處 理狀態進行維護,并提供應急報告編制的功能。
圖5-18應急預案管理界面
5.5本章小結
本章首先對混凝土壩運行期安全信息管理平臺進行了闡述,包括系統開發 的目標和原則、系統結構和系統數據庫基本設計準則,并詳細闡述了管理平臺 的功能模塊菜單以及具體實現功能和內容,并以某碾壓混凝土壩為例,對系統 應用進行了展示。
第六章總結與展望
6.1總結
為了綜合性的提高混凝土壩運行期的安全信息管理水平,滿足行業對于運 行期安全信息管理的需要,本文通過使用BIM理論、WebGL技術、WebSocket 技術以及移動端開發技術,使各個功能模塊之間相互銜接,開發了一套混凝土 壩運維期安全信息管理平臺,主要的研究內容和研究成果如下:
(1)分析了傳統的安全信息管理與基于BIM的安全信息管理之間的差別, 相比較傳統管理,基于BIM的管理實現從模式上的改變。同時詳細敘述了 BIM 在數字化移交、信息集成與管理、數據可視化管理等方面的應用價值,說明了 使用BIM的應用優勢。
(2)針對平臺中具體功能的技術需求,提出了詳細的解決方案以及實現方 法。首先通過自主二次開發,實現模型IFC格式到gltf格式的轉變,且使屬性 信息保存在額外的xml文件中而不丟失,并針對模型顯示進行了優化;其次闡 明WebSocket的原理,并通過Python語言來進行后臺Socket服務器的編寫。 最后根據按照移動辦公的需求,提出了基于微信企業號的移動端解決方案,集 成信息采集,管理流程應用、設備信息查看以及報警通知在內的多種功能,滿 足了實際維護的需求。
(3)針對混凝土壩安全提出了基于實測安全信息的安全分析和評價方法, 包括了安全預警、安全分析與預測以及綜合安全評價。其中預警基于不同的判 斷準則對于混凝土壩的異常進行及時報警通知,管理人員使用統計、灰色理論 等模型等對實測數據進行預測,通過選取指標體系根據模糊數據理論對局部安 全和整體安全進行評價。若存在危險進行應急處理流程,最終實現了混凝土壩 整體的實時控制。
(4)在上述幾點研究基礎上,開發了一套基于WebGL的混凝土壩運行 期安全信息管理平臺。該系統主要由BIM三維展示和信息管理組成,包括了可 視化、項目信息管理、設備信息管理、安全數據管理以及實時安全管理等五部 分內容,經過實例驗證可以作為安全管理的輔助工具,提高運行期大壩安全管 理水平。
6.2展望
由于混凝土壩安全信息管理是一項大工程,涉及到安全方面的信息較多, 分析大壩整體安全的方法復雜。本文在前人研究的基礎上主要對安全信息管理 過程優化、平臺搭建方法、安全監控體系的建立方面取得了一定的應用成果, 但是由于研究的內容和深度有限,仍存在一些問題要做進一步的改進:
(1)本文使用BIM的部分優勢對管理進行優化,BIM技術還可以在結構 分析、性能分析、流程管理等方面發揮更多的優勢,應進一步加強BIM在實際 工程管理中應用的深度和廣度。
(2)關于在WebGL下的模型顯示優化,本文主要研究了文件格式的轉變 和視域剔除相關內容,對于傳輸方式和模型構件復用的優化內容涉及較少,在 輕量化的過程中還有提升的空間。
(3)本文的安全綜合模糊評價側重于以安全相關數據為依據,還可以加入 大壩運行管理評價、工程質量評價、金結結構評價等方面內容,使模糊評價的 層次更豐富,綜合反映出大壩安全狀態包括的范圍的廣闊性。
(4)本文中通過系統的理念和數學理論完成了混凝土壩安全的評價和預判, 后期考慮通過加入數值模擬和參數反演可更全面地獲得混凝土壩的安全運行狀
參考文獻
[1]水利部大壩安全信息管理中心[J].中國科學:技術科學,2018, 48(10): 11 41-1142.
[2]丁永忠.基于無線傳感器網絡的大壩安全遠程監測技術研究[D].武漢:武 漢理工大學,2011.
[3]楊永杰.淺談安全監測在大壩建設中的重要性[J].四川水利,2015(s2): 72 -74.
[4]李毅男,胡全舟,郭志剛.水利工程大壩的安全監測技術與發展[J].工程技 術研究,2017(11).
[5]趙全麟.意大利的大壩安全自動監測系統[J].人民長江,1991(Z1): 34-45.
⑹王仁鐘•我國水利大壩的安全監測[J].水利水運工程學報,1995(3): 320-3 25.
[7]賈化萍.C/S與B/S結合模式的大壩安全監測信息管理系統研究[D].南京: 河海大學,2006.
[8]張宗亮,鐘登華.超高面板堆石壩監測信息管理與安全評價的理論及實踐 [J].天津大學學報:自然科學與工程技術版,2008, 41(9): 1083-1086.
[9]胡瀚尹,沈定斌,文豪•信息技術在大渡河流域庫壩安全信息管理中的創新 應用[J].大壩與安全,2016(01): 9-11+16.
[10]Eastman C, Teicholz P, Sacks R, et al. BIM Handbook: A Guide to Buil ding Information Modeling for Owners, Managers, Designers, Engineers a nd Contractors[M]. Wiley Publishing, 2008.
[11]Riaz Z, Arslan M, Kiani A K, et al. CoSMoS:A BIM and wireless senso rbased integrated solution for worker safety in confined spaces[J]. Automa tion in Construction, 2014, 45: 96-106.
[12]Costin A M, Teizer J, Schoner B. RFID and BIM-enabled worker locatio n tracking to support real-time building protocol and data visualization[J].
Journal of Information Technology in Construction (ITcon), 2015, 20(29): 495-517.
[13]馬飛,基于BIM的水利工程安全監測管理系統研究[D].邯鄲:河北工程 大學,2017.
[14]郭海超,王仁華,基于BIM的健康監測信息研究及其可視化實現[J].施工 技術,2017(S1): 510-513.
[15]王超,基于BIM的監測信息IFC表達與集成方法研究[D].哈爾濱:哈爾 濱工業大學,2015.
[16]華嘉成,艾芋,鄧雪原,等,基于IFC4數據標準的變電站數字化移交可行 性研究J]•電器與能效管理技術,2014(21): 6-11.
[17]陳沉,張業星,陳健,等,基于建筑信息模型的全過程設計和數字化交付 [J]•水力發電,2014, 40(8): 42-46.
[18]劉皓,肖少輝,李鵬,等,三維數字化移交在青藏直流工程中的應用研究 [J]?電力勘測設計,2012(3): 62-65.
[19]Chen B, Xu Z. A framework for browser-based Multiplayer Online Game susing WebGL and WebSocket[C]//Multimedia Technology (ICMT), 2011 I nternational Conference on. IEEE, 2011: 471-474.
[20]薛安,馬藹乃,李天宏•基于OpenGL實現真實感地形表現的研究J]•中 國圖象圖形學報:A輯,2001, 6(8): 800-805.
[21]Xin C U I. Development and Application of Silverlight Technology [J][J]. Computer Knowledge and Technology, 2009, 22: 049.
[22]Congote J, Segura A, Kabongo L, et al. Interactive visualization of volu metric data with WebGL in real-time[C]// 3d Technologies for the World Wide Web, Proceedings of the, International Conference on Web 3d Tech nology, Web3d 2011, Paris, France, June. DBLP, 2011:137-146.
[23]王傳鵬•基于WebGL的建筑大模型實時顯示系統設計與實現[D]•廣州: 華南理工大學,2018.
[24]BIMSurfer[EB/OL]. http://himsurfer.org/.
[25]IfcWebViewer[EB/OL]. http://www.ifcwebserver.org/.
[26]Chen Y, Shooraj E, Rajabifard A, et al. From IFC to 3D Tiles: An Integ rated Open-Source Solution for Visualising BIMs on Cesium[J]. ISPRS Int ernational Journal of Geo-Information, 2018, 7(10): 393.
[27]LIN T. Cloud BIM: A Web-Based BIM System with Ap- plication of Cl oud Computing and WebGL [D]. Taiwan: National Taiwan University of Science and Technology, 2012.
[28]潘飛,張社榮•基于3DWebGIS的土木水利工程BIM集成和管理研究[J].計 算機應用與軟件,2018(4). 69-74, 136.
[29]徐照,徐夏炎,李啟明,等•基于WebGL與IFC的建筑信息模型可視化 分析方法[J]•東南大學學報(自然科學版),2016, 46(2): 444-449.
[30]王壬行瑋,胡振中,林佳瑞,等.面向Web的BIM三維瀏覽與信息管理[J]. 土 木建筑工程信息技術,2013, 5(3): 1-7.
[31]辛勇軍•五岳水庫大壩安全預警系統研究[D].天津:天津大學,2010.
[32]馬福恒,何心望,吳光耀•土石壩風險預警指標體系研究[J]•巖土工程學 報,2008(11): 1734-1737.
[33]吳中如•碾壓大壩安全監控理論及其應用[M].科學出版社,2001.
[34]吳中如•水工建筑物安全監控理論及其應用[M],高等教育出版社,2003.
[35]胡波,劉觀標,吳中如•工程安全監測信息管理與分析系統研究及其在特 大工程中的應用[J].水電與抽水蓄能,2013, 37(5): 1-7.
[36]張柯.基于支持向量機的土石壩安全監測模型與安全性態模糊評價[D].西 安:西安理工大學,2017.
[37]閆濱,高真偉,李東艷.RBF神經網絡在大壩安全綜合評價中的應用[J].巖 石力學與工程學報,2008, 27(s2): 3991-3991.
[38]楊海嬌,辛全才,申玲玲•大壩實測性態的可變模糊綜合評價[J]•水力發 電,2013, 39(10): 33-36.
[39]邵鵬哲.高土石壩勘測設計一運行期工程風險評估與預警系統研發[D].天 津:天津大學,2014.
[40]馬開遠,萬颼,高仕春,陳朝旭,高大水•統一平臺下大壩安全評價系統 設計與開發[J].水利水電技術,2014, 45(02): 126-128+134.
[41]錢小剛,蔣波,陳健.大壩安全信息管理系統改進與應用[J].水力發電,2 014, 40(08): 25-27.
[42]張社榮,潘飛,吳越,方鑫.水電工程BIM-EPC協作管理平臺研究及應用 [J].水力發電學報,2018,37(04): 1-11.
[43]韓配.水利水電工程BIM標準框架的研究[D].鄭州:華北水利水電大學, 2018.
[44]孫鋰杰,張社榮,潘飛,基于IFC的水電設備運行維護管理系統設計及原 型實現[J].工程管理學報,2017, 31(1): 17-22.
[45]Three.js[EB/OL]. https://threejs.org/.
[46]Zhang X Y, Hu Z Z, Wang H W, et al. An Industry Foundation Classes (IFC) web-based approach and Platform for Bi-Drectional conversion of
structural analysis models[M]//Computing in Civil and Building Engineerin g (2014). 2014: 390-397.
[47]張建平,張洋,張新.基于IFC的BIM三維幾何建模及模型轉換[J]. 土木 建筑工程信息技術,2009, 1(01): 40-46.
[48]gltf[EB/OL]. https://www.gltf.org/.
[49]高詰•基于WebGL的建筑信息模型展示系統研究[D].北京:北京建筑大 學,2018.
[50]李興華•基于WebSocket的移動即時通信系統[D].重慶:重慶大學,201 3.
[51]李代立,陳榕.WebSocket在Web實時通信領域的研究[J].電腦知識與技 術,2010, 6(28): 7923-7925+7935.
[52]周森鵬,陸正球,張城,王溢達.基于HTML5的企業WebApp設計與實 現[J].現代計算機(專業版),2015(07): 49-52.
[53]蔣新濱.基于微信企業號的高校信息服務系統的設計與實現[D].山東:山 東大學,2017.
[54]靳娟娟.某水庫堆石壩原型觀測資料分析與安全評價[D].昆明:昆明理工 大學,2009.
[55]DLT5178-2016混凝土安全技術規范[S].
[56]王浩軍.基于WEB架構的大壩安全監控管理系統若干關鍵技術的研究
[D].浙江大學,2005.
[57]魏德榮•大壩安全監控指標的制定[J].大壩與安全,2003(6): 25-29.
[58]吳中如•水工建筑物安全監控理論及其應用[M].高等教育出版社,2003.
[59]曾波,劉思峰,方志耕,謝乃明•灰色組合預測模型及其應用[J]•中國管 理科學,2009, 17(05): 150-155.
[60]李曉峰,劉光中•人工神經網絡BP算法的改進及其應用[J]•四川大學學 報(工程科學版),2000(02): 105-109.
[61]李占超,侯會靜.大壩安全監控指標理論及方法分析[J].水力發電,2010, 36(05): 64-67.
[62]林長富,肖小玲,何金平•大壩監測系統綜合評價等級劃分方法[J]•中國 水運(下半月),2011, 11(10): 90-92.
[63]趙鍵,張慧莉,ZHAOJian,等.大壩自動監測數據異常值識別的改進數據 跳躍法[J].中國農村水利水電,2014(2): 85-87.
[64]韓晶晶•大壩安全監測系統應用研究[D].蘭州:蘭州理工大學,2013.
[65]Fan G, Zhong D, Yan F, et al. A hybrid fuzzy evaluation method for cu rtain grouting efficiency assessment based on an AHP method extended b y D numbers[J]. Expert Systems with Applications, 2016, 44: 289-303.
[66]楊捷,何金平,李珍照•大壩結構實測性態綜合評價中定量評價指標度量 方法的基本思路[J] •武漢大學學報(工學版),2001, 34(4): 25-28.
[67]何金平,李珍照,萬富軍.大壩結構實測性態綜合評價中定性指標分析方 法[J]•水電能源科學,2000(1): 5-8.
[68]胡田飛,朱本珍•基于爛權法和層次分析法的復雜邊坡穩定性模糊綜合評 價方法[J]•鐵道建筑,2013(12): 69-73.
[69]沈海堯,沈靜,王小清•水電站大壩安全應急管理現狀和改進建議[J]•大 壩與安全,2017(2): 22-27.