陳登峰,張 溫,耿建勤,劉 國(guó),肖海燕
(1.西安建筑科技大學(xué) 建筑設(shè)備科學(xué)與工程學(xué)院,西安 710055;2.西安建筑科技大學(xué) 信息與控制工程學(xué)院,西安 710055)
隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展與城市化的高速推進(jìn),“馬路拉鏈”、“蛛網(wǎng)線路”等“城市病”不斷加劇,城市地下綜合管廊(簡(jiǎn)稱(chēng)管廊)是重要解決手段之一[1]。管廊是位于城市地下的一個(gè)相對(duì)密閉的空間,在其運(yùn)營(yíng)過(guò)程中,會(huì)產(chǎn)生如CH4、CO等有害與易燃?xì)怏w[2],當(dāng)CO氣體吸入過(guò)量,輕則使人頭暈惡心,重則會(huì)導(dǎo)致人死亡,故對(duì)管廊艙室CO指標(biāo)實(shí)時(shí)監(jiān)測(cè)與預(yù)測(cè)十分重要,目前,國(guó)內(nèi)外綜合管廊運(yùn)營(yíng)維護(hù)中的巡檢等工作還以人工為主[3]。現(xiàn)有的將BIM(建筑信息建模技術(shù))用于管廊管理的可視化系統(tǒng)大多C/S架構(gòu),由于模型中所包含數(shù)據(jù)量較大、數(shù)據(jù)結(jié)構(gòu)較復(fù)雜且專(zhuān)業(yè)性較強(qiáng)[4],導(dǎo)致系統(tǒng)操作難度大、硬件要求高、不可跨平臺(tái)且缺少安全性預(yù)測(cè)功能。
文章提出基于Web的管廊可視化信息管理系統(tǒng),管廊運(yùn)營(yíng)者可通過(guò)移動(dòng)端、電腦端瀏覽器以3D模型漫游管廊、查看管廊建筑數(shù)據(jù)、監(jiān)測(cè)實(shí)時(shí)環(huán)境數(shù)據(jù),并根據(jù)CO環(huán)境數(shù)據(jù)預(yù)測(cè)值、實(shí)時(shí)環(huán)境數(shù)據(jù)以及管廊輕量可視化實(shí)現(xiàn)危險(xiǎn)早期處理。
管廊運(yùn)營(yíng)維護(hù)過(guò)程中,運(yùn)維人員需通過(guò)不同終端進(jìn)行管廊信息可視化查閱和管廊環(huán)境數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè),當(dāng)監(jiān)測(cè)或預(yù)測(cè)到異常需快速定位故障艙室,并輔助給出解決方案。基于需求確定系統(tǒng)采用B/S架構(gòu)[5],并滿(mǎn)足以下功能需求:
1)BIM輕量化:將BIM幾何信息與建筑信息解耦,并將所需建筑信息存入數(shù)據(jù)庫(kù);2)模型加載:將BIM幾何信息可視化在Web頁(yè)面并與建筑信息以及實(shí)時(shí)環(huán)境數(shù)據(jù)動(dòng)態(tài)耦合;3)環(huán)境數(shù)據(jù)采集:系統(tǒng)后臺(tái)服務(wù)與終端節(jié)點(diǎn)建立通信并將其采集的環(huán)境數(shù)據(jù)存入數(shù)據(jù)庫(kù);4)實(shí)時(shí)數(shù)據(jù)展示:將終端節(jié)點(diǎn)采集的環(huán)境數(shù)據(jù)以交互形式展示在瀏覽器前端模型及實(shí)時(shí)動(dòng)態(tài)曲線;5)數(shù)據(jù)管理:歷史環(huán)境數(shù)據(jù)查詢(xún)、終端節(jié)點(diǎn)屬性信息查詢(xún)與更新;6)環(huán)境數(shù)據(jù)預(yù)測(cè):以CO歷史數(shù)據(jù)作為訓(xùn)練樣本,通過(guò)瀏覽器在線訓(xùn)練LSTM預(yù)測(cè)模型并對(duì)遞增2小時(shí)CO數(shù)據(jù)在線預(yù)測(cè)并顯示和預(yù)警。
系統(tǒng)中使用管廊BIM模型Revit搭建。系統(tǒng)包括終端節(jié)點(diǎn)、服務(wù)軟件和前臺(tái)軟件組成,如圖1所示。

圖1 系統(tǒng)總體功能圖
終端節(jié)點(diǎn)由傳感器、控制器、無(wú)線模塊組成,部署在管廊艙室中。終端節(jié)點(diǎn)采用TCP通信方式,將采集的環(huán)境數(shù)據(jù)實(shí)時(shí)發(fā)送給服務(wù)軟件并存入數(shù)據(jù)庫(kù)中。
模型輕量化模塊將BIM模型解耦為幾何信息與建筑信息。該部分由C#整合Revit二次開(kāi)發(fā)實(shí)現(xiàn),通過(guò)Revit的建筑模型Id建立管廊子模型與建筑信息的對(duì)應(yīng)關(guān)系。
數(shù)據(jù)庫(kù)模塊分為數(shù)據(jù)視圖模塊與存儲(chǔ)過(guò)程模塊,其中數(shù)據(jù)視圖模塊用于建立數(shù)據(jù)庫(kù)表間邏輯關(guān)系,存儲(chǔ)過(guò)程模塊用于每日定時(shí)對(duì)數(shù)據(jù)庫(kù)實(shí)現(xiàn)特定功能。
后臺(tái)服務(wù)模塊為該系統(tǒng)提供整體依托,提供對(duì)數(shù)據(jù)庫(kù)查詢(xún)與更新、對(duì)終端節(jié)點(diǎn)采集的環(huán)境數(shù)據(jù)信息的獲取與存儲(chǔ)、響應(yīng)前端頁(yè)面請(qǐng)求、對(duì)前端的數(shù)據(jù)以及其他服務(wù)支撐。
前端頁(yè)面模塊由模型加載模塊、動(dòng)態(tài)刷新模塊以及其他Web元素構(gòu)成。模型加載模塊使用WebGL與Html5實(shí)現(xiàn)[6-7],動(dòng)態(tài)刷新模塊使用Ajax技術(shù)與后臺(tái)服務(wù)模塊交互獲取實(shí)時(shí)環(huán)境數(shù)據(jù)。氣體數(shù)據(jù)預(yù)測(cè)模塊采用Tensorflow.js框架實(shí)現(xiàn)回歸預(yù)測(cè),結(jié)合Javascript實(shí)現(xiàn)瀏覽器端對(duì)環(huán)境數(shù)據(jù)模型訓(xùn)練與在線預(yù)測(cè)。通過(guò)瀏覽器在線訓(xùn)練LSTM(長(zhǎng)短期記憶網(wǎng)絡(luò))CO(一氧化碳)預(yù)測(cè)模型實(shí)現(xiàn)對(duì)遞增時(shí)間節(jié)點(diǎn)指標(biāo)數(shù)據(jù)的在線預(yù)測(cè)。當(dāng)監(jiān)測(cè)或預(yù)測(cè)到某艙室異常,可向管廊運(yùn)營(yíng)者進(jìn)行危險(xiǎn)預(yù)警,給出異常狀況輔助解決方案,以減輕或避免危險(xiǎn)的發(fā)生。
BIM在建筑幾何模型上附帶有施工過(guò)程的大量靜態(tài)屬性信息,導(dǎo)致存儲(chǔ)空間較大。如在Revit中繪制6面墻,所生成的項(xiàng)目文件大小為4.47 MB,而幾何數(shù)據(jù)僅占12.5 KB。故需將建筑模型加載在前端頁(yè)面,輕量化是必不可少的,系統(tǒng)使用文件為Obj文件,文件結(jié)構(gòu)見(jiàn)表1。

表1 Obj文件結(jié)構(gòu)表
使用C#與Revit二次開(kāi)發(fā)API實(shí)現(xiàn)模型輕量化導(dǎo)出。結(jié)合Revit二次開(kāi)發(fā)API解析建筑模型Rvt文件,將各Id對(duì)應(yīng)幾何數(shù)據(jù)以O(shè)bj文件中g(shù)標(biāo)識(shí)分割,通過(guò)文件流寫(xiě)入Obj文件。
將屬性信息通過(guò)動(dòng)態(tài)鏈接庫(kù)MySql.Data.dll以Id為索引寫(xiě)入Mysql數(shù)據(jù)庫(kù)。目的是實(shí)現(xiàn)將建筑幾何數(shù)據(jù)與建筑屬性信息解耦以達(dá)到輕量化的效果。其中g(shù)中包含Id信息,g表示以下的幾何數(shù)據(jù)信息為該Id對(duì)應(yīng)的建筑模型幾何數(shù)據(jù)。
由于不同艙室氣體環(huán)境有異,且艙室環(huán)境數(shù)目較多,為提高預(yù)測(cè)數(shù)據(jù)精度減輕服務(wù)端壓力,設(shè)計(jì)一種基于瀏覽器的分布式CO預(yù)測(cè)模塊。
該模塊將傳統(tǒng)基于PC服務(wù)端的模型訓(xùn)練與預(yù)測(cè)移植到Web客戶(hù)端,采用google近期推出的tensorflow.js框架[8],訓(xùn)練與數(shù)據(jù)預(yù)測(cè)的功能由瀏覽器支持實(shí)現(xiàn)而無(wú)需后臺(tái)支持,也不需要復(fù)雜的環(huán)境部署與庫(kù)文件調(diào)用過(guò)程,只需使用移動(dòng)端或電腦端瀏覽器即可實(shí)現(xiàn)對(duì)環(huán)境數(shù)據(jù)的訓(xùn)練與預(yù)測(cè),將訓(xùn)練和預(yù)測(cè)的流程由服務(wù)端移植到客戶(hù)端。不同管廊艙室可針對(duì)每個(gè)艙室的歷史數(shù)據(jù)給出個(gè)性化的預(yù)測(cè)結(jié)果,管廊內(nèi)部環(huán)境密閉,其中CO含量實(shí)際是等間隔連續(xù)的時(shí)間序列,LSTM(長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò))深度神經(jīng)網(wǎng)絡(luò)對(duì)時(shí)間序列數(shù)據(jù)預(yù)測(cè)準(zhǔn)確性較高[9],本模塊采用LSTM對(duì)CO數(shù)據(jù)進(jìn)行預(yù)測(cè)。在線模型訓(xùn)練流程如圖2所示。

圖2 在線模型訓(xùn)練流程圖
基于瀏覽器的分布式CO預(yù)測(cè)模塊運(yùn)行流程描述如下。
步驟一:登錄系統(tǒng)選擇某終端節(jié)點(diǎn)歷史表信息點(diǎn)擊查詢(xún),查詢(xún)結(jié)果會(huì)作為樣本數(shù)據(jù)以Json形式存儲(chǔ)在公共變量中;
步驟二:將樣本數(shù)據(jù):
X={x1,x2,…,xn}
整合并做標(biāo)準(zhǔn)化操作,計(jì)算數(shù)據(jù)順序漲幅百分比:
步驟三:使用滑動(dòng)窗口法初始化數(shù)據(jù),構(gòu)建訓(xùn)練數(shù)據(jù),設(shè)置輸入維度,滑動(dòng)步數(shù),以張量存儲(chǔ);其中張量Tensor是一維或多維數(shù)組的結(jié)構(gòu),是Tensorflow.js的數(shù)據(jù)中心單位。
步驟四:設(shè)置少量訓(xùn)練數(shù)據(jù)來(lái)作為測(cè)試數(shù)據(jù)對(duì)已訓(xùn)練模型進(jìn)行驗(yàn)證,設(shè)置過(guò)程如下所示:
await model.fit(xs, ys, {validationSplit: 0.2});
設(shè)置參數(shù)為0.2,即80%數(shù)據(jù)用來(lái)訓(xùn)練模型,剩余20%數(shù)據(jù)用來(lái)對(duì)模型進(jìn)行測(cè)試驗(yàn)證。
步驟五:優(yōu)化算法選擇RMSProp,損失函數(shù)使用MSE(均方誤差)。設(shè)當(dāng)前收斂過(guò)程中迭代次數(shù)為t,RMSProp優(yōu)化算法描述如下:
sdw=βsdw+(1-β)dW2
sdb=βsdb+(1-β)db2
其中:sdw、sdb為上一輪迭代過(guò)程梯度動(dòng)量,β為梯度累計(jì)指數(shù),W權(quán)重值,b為偏置值,ε取值10-8防止分母為0,發(fā)生異常。損失函數(shù)描述如下:

model.compile({optimizer: rmsprop,
loss: tf.losses.meanSquaredError});
步驟六:訓(xùn)練LSTM模型并應(yīng)用模型進(jìn)行預(yù)測(cè),預(yù)測(cè)部分代碼如下:
await model.predict(tf.tensor([input])).data();
步驟七:整合使用tfvis可視化框架對(duì)樣本數(shù)據(jù)、訓(xùn)練過(guò)程以及預(yù)測(cè)信息可視化,如圖3所示。

圖3 訓(xùn)練過(guò)程
其中l(wèi)oss指訓(xùn)練集損失,val_loss指測(cè)試集損失。
設(shè)計(jì)的數(shù)據(jù)庫(kù)包括用戶(hù)信息表、終端節(jié)點(diǎn)信息表、環(huán)境數(shù)據(jù)表、歷史信息表。
用戶(hù)信息表用于支持用戶(hù)登陸系統(tǒng)校驗(yàn),其列信息包括用戶(hù)id、用戶(hù)名、密碼、用戶(hù)角色。用戶(hù)在前端頁(yè)面輸入用戶(hù)名、密碼以及角色后,該信息會(huì)與數(shù)據(jù)庫(kù)中存儲(chǔ)的用戶(hù)信息進(jìn)行比對(duì),如信息匹配,則用戶(hù)登陸成功,頁(yè)面展示對(duì)應(yīng)角色的內(nèi)容,否則,提示登錄失敗。
終端節(jié)點(diǎn)信息表用于對(duì)終端節(jié)點(diǎn)信息查詢(xún)與更新,其列信息包括終端節(jié)點(diǎn)Id、終端節(jié)點(diǎn)名稱(chēng)、終端節(jié)點(diǎn)在實(shí)際綜合管廊中所處的艙室信息、節(jié)點(diǎn)持續(xù)使用時(shí)長(zhǎng)。管理員角色登陸系統(tǒng)后,可對(duì)終端節(jié)點(diǎn)信息進(jìn)行更新與查詢(xún),其中更新操作包括增、刪、改;艙室位置為語(yǔ)言描述,描述內(nèi)容為該節(jié)點(diǎn)所處管廊的艙室位置;使用時(shí)長(zhǎng)為自動(dòng)生成,自終端節(jié)點(diǎn)投入使用后算起。
環(huán)境數(shù)據(jù)表用于存儲(chǔ)終端節(jié)點(diǎn)采集的環(huán)境數(shù)據(jù),其列信息包括數(shù)據(jù)Id、時(shí)間戳、傳感器節(jié)點(diǎn)Id、溫度、濕度以及O2、CO、CH4、H2S濃度,結(jié)構(gòu)如表2所示。

表2 環(huán)境數(shù)據(jù)表結(jié)構(gòu)
SenId與終端節(jié)點(diǎn)信息表的Id對(duì)應(yīng),后臺(tái)服務(wù)端接收終端節(jié)點(diǎn)采集到的環(huán)境數(shù)據(jù)存入該表中,前端頁(yè)面中實(shí)時(shí)動(dòng)態(tài)曲線通過(guò)Ajax定時(shí)從數(shù)據(jù)庫(kù)查詢(xún)獲取最新的數(shù)據(jù)。
歷史信息表用于存儲(chǔ)歷史環(huán)境數(shù)據(jù),該數(shù)據(jù)表為氣體環(huán)境預(yù)測(cè)模塊提供訓(xùn)練樣本,同時(shí)可供系統(tǒng)使用者查看,其列信息包括Id、終端節(jié)點(diǎn)Id、當(dāng)日日期(精確到小時(shí))、平均溫度、平均濕度、平均O2含量、平均CO含量、平均CH4含量、平均H2S含量,所有平均值均為每日每1小時(shí)的平均值。其內(nèi)容更新由已編譯的存儲(chǔ)過(guò)程在每日零點(diǎn)定時(shí)進(jìn)行。
系統(tǒng)前端使用JavaScript、CSS、Highcharts、EasyUI與Sim.js設(shè)計(jì)與開(kāi)發(fā),可實(shí)現(xiàn)建筑信息模型輕量可視化、環(huán)境數(shù)據(jù)實(shí)時(shí)曲線、終端節(jié)點(diǎn)管理與歷史數(shù)據(jù)查詢(xún)的功能。實(shí)時(shí)數(shù)據(jù)展示中實(shí)時(shí)動(dòng)態(tài)曲線使用Highcharts結(jié)合Ajax局部刷新技術(shù)實(shí)現(xiàn),每次單位時(shí)間查詢(xún)獲取數(shù)據(jù)庫(kù)中該終端節(jié)點(diǎn)采集的最新環(huán)境數(shù)據(jù),整體采用setInterval方法實(shí)現(xiàn)定時(shí)發(fā)送Ajax請(qǐng)求。在請(qǐng)求的過(guò)程中使用輕量級(jí)的Json作為數(shù)據(jù)傳輸?shù)母袷剑M面向?qū)ο蟮倪^(guò)程。系統(tǒng)使用WebGL繪圖協(xié)議的開(kāi)源框架Three.js整合Sim.js將三維模型Obj文件加載在前端頁(yè)面中,模型加載過(guò)程部分代碼如下:
//創(chuàng)建Obj加載對(duì)象
var loader=new THREE.OBJMTLLoader();
loader.load('../model/pipe.obj','../model/pipe.mtl',function(object){
//遍歷Obj模型文件結(jié)構(gòu)
object.traverse(function(obj){
//按照Id依次將模型對(duì)象加入場(chǎng)景中
that.createmodel(obj,this.boxcount);});
this.focus();
this.count = 0; //模型計(jì)數(shù)器
this.createPlane();//創(chuàng)建地面}
其加載過(guò)程具體描述如下:
步驟一:使用ObjLoader.js中的Load方法對(duì)Obj文件進(jìn)行解析;
步驟二:結(jié)合traverse方法,對(duì)每組幾何數(shù)據(jù)進(jìn)行解析;
步驟三:結(jié)合面向?qū)ο蟮乃枷耄瑢⒛P虸d以及Mesh信息構(gòu)建幾何對(duì)象;
步驟四:遍歷上述對(duì)象,將對(duì)象加載在Scene中,最終通過(guò)render渲染在前端頁(yè)面。
文件加載采用面向?qū)ο蠓椒ǖ哪康氖欠奖銥槊總€(gè)子模型附加交互函數(shù)。
后臺(tái)服務(wù)為前端提供服務(wù)支持,采用Java開(kāi)發(fā),使用SSM(Spring、SpringMVC與MyBatis)整合框架,應(yīng)用MVC框架(Model、View、Controller),復(fù)雜邏輯實(shí)現(xiàn)于Controller控制器部分,View指前端界面,Model指數(shù)據(jù)的封裝部分[10]。該框架將前后臺(tái)程序分塊解耦,增加了代碼擴(kuò)展性與復(fù)用性。
系統(tǒng)中,后臺(tái)服務(wù)模塊需要具備以下功能:1)實(shí)時(shí)數(shù)據(jù)采集:獲取終端節(jié)點(diǎn)的實(shí)時(shí)環(huán)境數(shù)據(jù)并存入數(shù)據(jù)庫(kù);2)實(shí)時(shí)數(shù)據(jù)展示:數(shù)據(jù)展示的方式可分為用戶(hù)與管廊模型交互展示和實(shí)時(shí)動(dòng)態(tài)曲線;3)數(shù)據(jù)查詢(xún):可對(duì)歷史數(shù)據(jù)以及終端節(jié)點(diǎn)數(shù)據(jù)進(jìn)行查詢(xún);4)終端節(jié)點(diǎn)管理:當(dāng)更新管廊終端節(jié)點(diǎn)后,同步更新傳感器節(jié)點(diǎn)數(shù)據(jù);5)角色控制:控制不同的角色登陸系統(tǒng)并展示不同功能,角色分為管理員與非管理員。
后臺(tái)服務(wù)模塊數(shù)據(jù)持久層采取MyBatis,它支持個(gè)性化Sql與存儲(chǔ)過(guò)程,該框架將JDBC細(xì)節(jié)掩蓋,將數(shù)據(jù)庫(kù)配置集成于xml文件。
出于安全性與數(shù)據(jù)完整性的考慮,系統(tǒng)中的后臺(tái)服務(wù)與終端節(jié)點(diǎn)采用TCP/IP通信協(xié)議交互。終端節(jié)點(diǎn)為通信客戶(hù)端。由于管廊中終端節(jié)點(diǎn)數(shù)量眾多,故在后臺(tái)構(gòu)建TCP服務(wù)端線程池,可以節(jié)省大量資源。線程池與終端節(jié)點(diǎn)交互并將終端節(jié)點(diǎn)Id以及采集到的環(huán)境數(shù)據(jù)存入環(huán)境數(shù)據(jù)表。
管廊可視化信息管理系統(tǒng)功能主要包括管廊場(chǎng)景漫游與交互、數(shù)據(jù)庫(kù)表維護(hù)以及基于Web的在線預(yù)測(cè)。
系統(tǒng)運(yùn)行環(huán)境為Windows10、Cpu i5-7500、顯卡GTX-1060、內(nèi)存8 G,系統(tǒng)開(kāi)發(fā)語(yǔ)言為Java,Ide為Myeclipse10,數(shù)據(jù)庫(kù)為Mysql,數(shù)據(jù)庫(kù)可視化工具選擇Navicat Premium 12,后臺(tái)服務(wù)使用SSM整合框架,前端使用jquery.js、tensorflow.js、hightcharts.js、three.js以及sim.js等開(kāi)發(fā)實(shí)現(xiàn),項(xiàng)目依托tomcat7服務(wù)器部署。
管廊BIM模型輕量化解耦以及可視化頁(yè)面如圖4所示,其中(a)為二次開(kāi)發(fā)導(dǎo)出并存儲(chǔ)在mysql中的建筑信息,(b)為revit中繪制的模型,(c)為輕量化后加載在前端頁(yè)面的效果圖。

圖4 輕量可視化
前端頁(yè)面加載輕量化后的管廊場(chǎng)景,可對(duì)場(chǎng)景漫游。當(dāng)點(diǎn)擊左側(cè)菜單中的終端節(jié)點(diǎn)后會(huì)將相機(jī)視角調(diào)整至模型中對(duì)應(yīng)終端節(jié)點(diǎn)的位置,主頁(yè)面左側(cè)會(huì)將節(jié)點(diǎn)附近的環(huán)境信息以及建筑屬性信息顯示出來(lái)。用戶(hù)也可點(diǎn)擊右上菜單選擇場(chǎng)景瀏覽模式,可進(jìn)行鼠標(biāo)查看場(chǎng)景或第一人稱(chēng)漫游場(chǎng)景,用戶(hù)與場(chǎng)景中的建筑構(gòu)件交互,會(huì)將模型構(gòu)建信息展示在左側(cè)。
環(huán)境數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)曲線如圖5所示。該頁(yè)面主要功能為將終端節(jié)點(diǎn)采集的環(huán)境數(shù)據(jù)以動(dòng)態(tài)曲線展示,根據(jù)左側(cè)菜單選擇終端節(jié)點(diǎn),主頁(yè)面將展示該終端節(jié)點(diǎn)監(jiān)測(cè)到的實(shí)時(shí)數(shù)據(jù),數(shù)據(jù)每十秒刷新一次。

圖5 環(huán)境數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)曲線
數(shù)據(jù)庫(kù)維護(hù)包含對(duì)終端節(jié)點(diǎn)表、歷史信息表的查詢(xún)與更新。
終端節(jié)點(diǎn)表對(duì)建筑中的終端節(jié)點(diǎn)進(jìn)行管理,如在實(shí)際建筑中更新(增、刪、改)節(jié)點(diǎn),則管理員角色對(duì)該表進(jìn)行更新,同時(shí)左側(cè)菜單欄也會(huì)相應(yīng)更新。
歷史信息表存儲(chǔ)每日的歷史信息,可供管廊運(yùn)維人員查看,同時(shí)提供數(shù)據(jù)用于Tensorflow.js模型訓(xùn)練。每日零點(diǎn),預(yù)先編譯的存儲(chǔ)過(guò)程會(huì)定時(shí)將每日平均兩小時(shí)環(huán)境數(shù)據(jù)進(jìn)行均值處理,處理結(jié)果存入歷史信息表中,由于歷史信息表數(shù)據(jù)量不會(huì)很大,故該表僅提供查詢(xún)功能,可根據(jù)終端節(jié)點(diǎn)、起止日期對(duì)表進(jìn)行查詢(xún)。
在線預(yù)測(cè)功能將歷史信息表4天內(nèi)每小時(shí)CO數(shù)據(jù)的均值作為訓(xùn)練樣本,以實(shí)驗(yàn)數(shù)據(jù)為例,最終預(yù)測(cè)結(jié)果如圖6所示。
文章設(shè)計(jì)實(shí)現(xiàn)了一種用于管廊運(yùn)營(yíng)維護(hù)的信息化系統(tǒng),具備以下特點(diǎn)與功能:
1)結(jié)合Revit二次開(kāi)發(fā)將BIM模型幾何與屬性信息解耦,輕量化加載在Web頁(yè)面中,結(jié)合Spring、SpringMVC、MyBatis,實(shí)現(xiàn)管廊輕量化展示、管廊交互漫游、環(huán)境數(shù)據(jù)動(dòng)態(tài)更新以及建筑信息管理, 基于B/S模式開(kāi)發(fā),具有較強(qiáng)的跨平臺(tái)性,可以使用計(jì)算機(jī)或移動(dòng)端瀏覽器。
2)環(huán)境數(shù)據(jù)實(shí)時(shí)顯示,通過(guò)交互的方式展示在前端加載的模型中,也可動(dòng)態(tài)實(shí)時(shí)展示在曲線中;
3)CO數(shù)據(jù)預(yù)測(cè)性,基于LSTM對(duì)CO數(shù)據(jù)在線預(yù)測(cè),不同艙室運(yùn)營(yíng)者可分布式在客戶(hù)端瀏覽訓(xùn)練并預(yù)測(cè)不同艙室CO數(shù)據(jù)指標(biāo),提高了預(yù)測(cè)的精度,減輕了服務(wù)端的壓力,將模型訓(xùn)練與預(yù)測(cè)功能由服務(wù)端分布實(shí)現(xiàn)在客戶(hù)端。同時(shí)也很大程度上提高了系統(tǒng)的實(shí)用性,安全性預(yù)警可以減少不必要的人員與設(shè)備損壞,提高了管廊運(yùn)維的安全性與穩(wěn)定性。