王 靖
(華能瀾滄江水電股份有限公司,云南省昆明市 650000)
水電是我國清潔能源的重要組成部分,為保障水電機組穩(wěn)定運行,水電機組及線路需要定期進(jìn)行檢修。隨著信息技術(shù)的發(fā)展,智慧電廠技術(shù)不斷發(fā)展,智慧檢修技術(shù)作為智慧電廠建設(shè)的重要組成部分,成為水電信息技術(shù)創(chuàng)新的重要課題。
在智慧檢修技術(shù)的初期,研發(fā)人員專注于檢修生命周期的管理[1],但是這些系統(tǒng)智能程度依舊不高,易用性有待發(fā)展。為了加強智能檢修系統(tǒng)智能程度與自動化程度,減輕運維人員的工作負(fù)擔(dān)。目前,智慧檢修的研究方向主要集中在如何將人工智能技術(shù)與大數(shù)據(jù)技術(shù)引入檢修過程管理中。[2]
本文提供一種智慧檢修系統(tǒng)的架構(gòu)設(shè)計與技術(shù)細(xì)節(jié)。該系統(tǒng)集成了人工智能、大數(shù)據(jù)、AR 等多項前沿技術(shù),在前人的基礎(chǔ)上,創(chuàng)新性地使用了AR 這一沉浸式的人機交互接口,提供檢修數(shù)據(jù)與故障信息的“所見即所得”,并提供了遠(yuǎn)程協(xié)助等功能。同時,該系統(tǒng)通過分布式集群實現(xiàn)了高效、健壯、靈活的深度學(xué)習(xí)計算平臺,使得人工智能可以運用到檢修故障排查中。
(1)檢修生命周期管理:運維人員通過管理終端可以提前規(guī)劃檢修方案、實時查看管理檢修進(jìn)度、協(xié)調(diào)各專業(yè)人員配合。當(dāng)前的設(shè)備情況、系統(tǒng)各項參數(shù)、報警情況、檢修進(jìn)度會在大屏上通過可視化的方式顯示,方便運維人員快速了解當(dāng)前檢修工作概況。在檢修過程中,AR 會記錄使用者的信息,并對檢修過程實時錄像,方便后續(xù)取證與歸檔,檢修人員可以隨時通過AR 交互記錄各種數(shù)據(jù),方便系統(tǒng)自動生成檢修報告,比手工將數(shù)據(jù)逐個錄入計算機的傳統(tǒng)模式更加節(jié)省時間。
(2)智慧故障排查:運維人員監(jiān)控系統(tǒng)報警并找到故障原因后,可在終端中錄入故障原因及處理方法。在看到肉眼可見的裂紋、滲漏等設(shè)備缺陷時,也可以通過AR 頭頭顯拍攝故障部位照片及記錄故障原因、處理方法。以上兩類數(shù)據(jù)會定期輸送到大數(shù)據(jù)集群中進(jìn)行深度學(xué)習(xí)。此后監(jiān)控系統(tǒng)出現(xiàn)報警時,深度學(xué)習(xí)系統(tǒng)便會報警信息自動推測最為可能的故障原因,并提供解決方案。同時,在AR 頭盔拍攝到肉眼可見的設(shè)備缺陷時,也可以請求深度學(xué)習(xí)系統(tǒng)推測故障原因,給出排除方案,并將故障成因和排除方案顯示在AR 畫面上。
(3)智慧HUD:運維人員戴上AR 頭盔后,可以實時看到視野中的設(shè)備所具有的參數(shù)(如溫度、轉(zhuǎn)速、帶電情況、IP 地址等)與報警信息。幫助運維人員更加安全、便利進(jìn)行檢修工作。
(4)AR 遠(yuǎn)程指導(dǎo):由于專家或有經(jīng)驗的運維人員可能不能及時來到檢修現(xiàn)場,該系統(tǒng)允許專家通過客戶端查看AR頭顯的攝像頭,通過語音通話與畫面標(biāo)注的方式指導(dǎo)經(jīng)驗不足的運維人員進(jìn)行檢修工作或提供技術(shù)支持。
部分功能的示意圖如圖1 所示。
圖1 智慧檢修示意圖Figure 1 Schematic diagram of intelligent maintenance
由于該系統(tǒng)包含計算集群與多個終端,結(jié)構(gòu)較為復(fù)雜,所以在設(shè)計與實現(xiàn)時,應(yīng)該采取分層的方案,并盡可能減少層級間的依賴關(guān)系,使得各層級的開發(fā)可以并行開展,運維可以分離進(jìn)行[4]。系統(tǒng)共分為應(yīng)用層、數(shù)據(jù)流層、持久層、物理層四層,如圖2 所示。
圖2 智慧檢修系統(tǒng)分層Figure 2 Layered intelligent maintenance system
下面分別介紹每個層級的組件與功能。
1.2.1 應(yīng)用層
應(yīng)用層包含一系列建立在一定運行機制、存儲與計算框架上的用戶可見的應(yīng)用。為了適應(yīng)靈活多變的需求與動態(tài)變化的環(huán)境,這些應(yīng)用應(yīng)該滿足API 簡單、使用高級程序開發(fā)語言(如Python,Java)開發(fā)、開發(fā)周期短等特點。運維人員通過應(yīng)用層對系統(tǒng)進(jìn)行使用與管理。
下面是本系統(tǒng)應(yīng)用層的組成部分:
(1)AR 應(yīng)用:提供AR 使用者與增強現(xiàn)實空間交互手段的一系列程序。包括自動錄像、HUD 顯示、遠(yuǎn)程指導(dǎo)、故障管理、檢修記錄等程序。使用AR 硬件廠商提供的API 及Unreal 等引擎開發(fā)。
(2)深度學(xué)習(xí)應(yīng)用:用于處理用戶標(biāo)注,利用模型進(jìn)行推理,定期訓(xùn)練深度學(xué)習(xí)模型等業(yè)務(wù)。使用Python 進(jìn)行開發(fā)。對于時序數(shù)據(jù)(如標(biāo)記了故障原因的報警信息)可以使用長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)進(jìn)行訓(xùn)練。對于圖像數(shù)據(jù)(如設(shè)備缺陷畫面)可以使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行訓(xùn)練。同時,可以對報警信息進(jìn)行簡單的無監(jiān)督訓(xùn)練,如K-Mean 聚類。
(3)可視化應(yīng)用:基于B/S 架構(gòu)的用戶友好的前端,該前端通過Ajax 等技術(shù)異步更新需要可視化的數(shù)據(jù)或消息,并通過Echarts 等可視化框架向用戶展示可視化圖表與消息(如故障信息等),可使用HTML、JavaScript 進(jìn)行開發(fā)。
(4)大數(shù)據(jù)管理應(yīng)用:大數(shù)據(jù)管理應(yīng)用運行在分布式集群的Master 節(jié)點上,用于管理計算資源與存儲資源、數(shù)據(jù)輸入/輸出流、數(shù)據(jù)冗余備份,以及訓(xùn)練好的機器學(xué)習(xí)模型。并能在數(shù)據(jù)進(jìn)入深度學(xué)習(xí)模型之前提供預(yù)處理服務(wù),可使用Java 或Scala 開發(fā)。該應(yīng)用應(yīng)該由監(jiān)控專業(yè)人員使用。
(5)系統(tǒng)管理應(yīng)用:基于C/S 或B/S 架構(gòu)的管理程序,輔助管理員對AR、深度學(xué)習(xí)、可視化等模塊進(jìn)行配置與統(tǒng)一管理,提供對整個檢修生命周期各組事件規(guī)劃管理追蹤的功能。該應(yīng)用應(yīng)支持多個用戶權(quán)限等級,并自帶離線調(diào)試、日志審計等功能,可使用Java 或C 語言進(jìn)行開發(fā)。該應(yīng)用供運維人員使用。
1.2.2 數(shù)據(jù)流層
數(shù)據(jù)流層包含了進(jìn)行數(shù)據(jù)分發(fā)、消息機制、數(shù)據(jù)預(yù)處理、計算調(diào)度、深度學(xué)習(xí)所需的框架和運行環(huán)境。應(yīng)用層的計算業(yè)務(wù)和傳輸業(yè)務(wù)需要建立在數(shù)據(jù)流層上運行。引入這樣一個中間層的目的是為應(yīng)用層開發(fā)者提供一系列軟件基礎(chǔ)設(shè)施,這些軟件基礎(chǔ)設(shè)施與應(yīng)用是解耦合的,這就分離了計算資源的管理與業(yè)務(wù)的管理,大大減少了系統(tǒng)運維人員的負(fù)擔(dān)。
下面是本系統(tǒng)數(shù)據(jù)流層的組成部分:
(1)流數(shù)據(jù)計算引擎:這里使用Flink 作為流數(shù)據(jù)計算引擎,該引擎在數(shù)據(jù)管理應(yīng)用的調(diào)度下,會將所有實時數(shù)據(jù)進(jìn)行預(yù)處理(如分組、分窗等),并向特定的深度學(xué)習(xí)模型發(fā)送,并輸出模型推理結(jié)果。
(2)歷史數(shù)據(jù)計算引擎:這里使用Spark 作為歷史數(shù)據(jù)計算引擎,該引擎在數(shù)據(jù)管理應(yīng)用的調(diào)度下,會定期將標(biāo)注好的歷史數(shù)據(jù)經(jīng)過抽樣、聚類等預(yù)處理后輔助深度學(xué)習(xí)應(yīng)用進(jìn)行模型訓(xùn)練,并在計算過程中調(diào)度用于深度學(xué)習(xí)的計算資源。
(3)深度學(xué)習(xí)環(huán)境:為深度學(xué)習(xí)應(yīng)用提供基礎(chǔ)框架,提供神經(jīng)網(wǎng)絡(luò)等模型的訓(xùn)練、預(yù)測、構(gòu)建的底層支持??梢允褂肨ensorFlow 或PyTorch 構(gòu)建。
(4)消息機制:為應(yīng)用層不同業(yè)務(wù)之間,應(yīng)用層與數(shù)據(jù)流層之間提供跨節(jié)點的消息分發(fā)機制,用于通信、控制與消息告知。使用Kafka 進(jìn)行構(gòu)建。
1.2.3 持久層
持久層包含大數(shù)據(jù)集群的存儲管理、節(jié)點管理及硬件資源管理,數(shù)據(jù)(倉)庫,程序所需的運行環(huán)境,操作系統(tǒng)等軟件基礎(chǔ)設(shè)施,該層為上一層的計算調(diào)度提供資源支持、存儲支持以及環(huán)境支持。一般在配置并部署好之后不會輕易變動。除非發(fā)生故障或硬件資源不足,運維人員無須特別關(guān)注本層。
(1)永久數(shù)據(jù)倉庫:用于存儲AR 錄像、通話錄音、檢修文件、監(jiān)控報警記錄、深度學(xué)習(xí)模型備份等需要長時間存儲的數(shù)據(jù)內(nèi)容。可基于MySQL、達(dá)夢(適合表格類數(shù)據(jù))、Hive(適合非結(jié)構(gòu)化數(shù)據(jù))等多種數(shù)據(jù)(倉)庫部署。
(2)大數(shù)據(jù)集群:該集群基于谷歌的大數(shù)據(jù)框架Hadoop部署,運行在多臺計算能力高的硬件設(shè)備上,使用HDFS 文件系統(tǒng)組織各個節(jié)點的數(shù)據(jù),由Zookeeper 進(jìn)行協(xié)調(diào)、同步。所有參與運算的數(shù)據(jù)和深度信息模型都存儲于集群上等待數(shù)據(jù)流層調(diào)度。
集群由Master 節(jié)點與多個Slave 節(jié)點構(gòu)成,采用主-從分布式架構(gòu)。大數(shù)據(jù)管理應(yīng)用應(yīng)該運行在Master 節(jié)點上。
(3)其他軟件基礎(chǔ)設(shè)施:操作系統(tǒng)(Windows、Linux、銀河麒麟等),Java 虛擬機,Python 環(huán)境等。
1.2.4 物理層
運行系統(tǒng)的物理終端與連接終端的網(wǎng)絡(luò)設(shè)備,主要包含以下組成部分:
(1)網(wǎng)絡(luò)設(shè)備。包含橫向隔離、縱向加密、防火墻等安全設(shè)備與交換機、路由器、物理鏈路等傳輸設(shè)備。
(2)AR 設(shè)備??蛇x擇Rokit、Nreal、雷鳥等廠商提供的AR 頭顯。
(3)大數(shù)據(jù)集群服務(wù)器及其機架、機柜:包含高性能GPU、大容量固態(tài)硬盤等組件。
(4)永久數(shù)據(jù)倉庫服務(wù)器及其機架、機柜:用于部署永久數(shù)據(jù)倉庫。推薦在原有歷史數(shù)據(jù)服務(wù)器、數(shù)據(jù)采集服務(wù)器的基礎(chǔ)上進(jìn)行擴展。
(5)顯示終端與管理終端:顯示終端可以使用LED 大屏或臺式電腦。管理終端可以使用臺式電腦。
本系統(tǒng)的業(yè)務(wù)邏輯如圖3 所示。
圖3 智慧檢修業(yè)務(wù)邏輯Figure 3 Smart maintenance business logic
接下來對圖3 中的業(yè)務(wù)邏輯進(jìn)行說明,括號內(nèi)為圖3 中箭頭的序號:
監(jiān)控系統(tǒng)向顯示終端(1)和永久數(shù)據(jù)倉庫(2)傳送實時數(shù)據(jù),顯示終端將其可視化展現(xiàn)給運維人員,而永久數(shù)據(jù)倉庫則將其存儲在數(shù)據(jù)(倉)庫內(nèi)。與此同時,一部分摘要性的永久數(shù)據(jù)也會被送到顯示終端可視化展示(14)。
深度學(xué)習(xí)應(yīng)用定時發(fā)起歷史數(shù)據(jù)訓(xùn)練任務(wù),該任務(wù)將歷史數(shù)據(jù)發(fā)送到大數(shù)據(jù)集群(3),Master 節(jié)點上的大數(shù)據(jù)管理應(yīng)用開始調(diào)度計算資源進(jìn)行模型訓(xùn)練(4),更新存儲的模型。
當(dāng)監(jiān)控系統(tǒng)發(fā)出報警(5)或AR 頭顯拍攝了設(shè)備缺陷照片(8)時,深度學(xué)習(xí)應(yīng)用發(fā)起流數(shù)據(jù)推理任務(wù)(6),大數(shù)據(jù)集群中的模型推理出可能的故障原因后,會在顯示終端(7)和AR 頭顯(12)上顯示。
在檢修時,AR 會實時錄像并上傳至永久數(shù)據(jù)倉庫(10),監(jiān)控端的實時設(shè)備參數(shù)(9)和永久數(shù)據(jù)倉庫的永久設(shè)備參數(shù)(11)也會上傳至AR。遠(yuǎn)程專家通過AR 與運維人員溝通,并通過共享屏幕的方式實時指導(dǎo)檢修工作(13)。運維人員通過管理終端管理整套系統(tǒng)(15)。
增強現(xiàn)實(AR),是一種實時地計算攝影機影像的位置及角度并加上相應(yīng)圖像的技術(shù),是一種將真實世界信息和虛擬世界信息“無縫”集成的新技術(shù),這種技術(shù)的目標(biāo)是在屏幕上把虛擬世界套在現(xiàn)實世界并進(jìn)行互動[5]。典型的AR 設(shè)備如圖4 所示。
圖4 AR 設(shè)備及其使用示意圖Figure 4 AR device and its usage diagram
AR 作為現(xiàn)實與虛擬的融合,天然適合HUD 的顯示。目前市面上的AR 產(chǎn)品多數(shù)據(jù)有詳盡的針對不同編程語言的開發(fā)接口以及即插即用的集成模塊(如物體識別等),AR 開發(fā)者只需要與其他系統(tǒng)做好文檔上的約定,便可以JSON、XML 等數(shù)據(jù)序列化模型便捷地進(jìn)行通信,降低耦合程度。
從水電檢修實用性的角度來說,AR 頭顯比起VR 頭顯更加輕巧、便于佩戴,可做成眼鏡樣式,不干擾安全帽的佩戴與檢修工作的正常進(jìn)行,實踐中具備較高的可行性。
數(shù)據(jù)處理是智慧檢修系統(tǒng),甚至是目前智慧工業(yè)系統(tǒng)的主流研究對象,物聯(lián)網(wǎng)、邊緣計算、人工智能、大數(shù)據(jù)等新興技術(shù)都在圍繞著數(shù)據(jù)的傳送、存儲、變換、利用展開。本節(jié)將詳細(xì)闡述智慧檢修系統(tǒng)數(shù)據(jù)處理技術(shù)的具體細(xì)節(jié)。
分布式系統(tǒng)是大數(shù)據(jù)的一大特征,也是未來數(shù)據(jù)中心的主流發(fā)展方向。本系統(tǒng)的分布式集群為“主—從”式,由一臺運行著大數(shù)據(jù)管理應(yīng)用的主機擔(dān)任Master 節(jié)點,該節(jié)點管理著若干臺高性能服務(wù)器作為Slave 節(jié)點參與并行計算與存儲。
3.1.1 分布式存儲技術(shù)
分布式存儲技術(shù)主要運用在永久式數(shù)據(jù)倉庫、大數(shù)據(jù)集群上。數(shù)據(jù)彌散在集群的各個節(jié)點上,具有多份存儲于不同節(jié)點上的備份,比起傳統(tǒng)數(shù)據(jù)庫有較好的容錯率和組織性,即使一兩臺機器宕機也不會影響系統(tǒng)運行。數(shù)據(jù)倉庫是面向主題的,持久層開發(fā)者應(yīng)該考慮數(shù)據(jù)的高效組織,方便數(shù)據(jù)流層進(jìn)行數(shù)據(jù)分析。[6]
3.1.2 分布式計算技術(shù)
分布式計算技術(shù)比起傳統(tǒng)計算的好處是并發(fā)性強,在硬件性能不高的前提下能夠保證計算速度高,比起傳統(tǒng)計算數(shù)據(jù)移動到計算節(jié)點的模式,計算在數(shù)據(jù)節(jié)點中移動的模式對于大數(shù)據(jù)來說更為快捷。[7]
深度學(xué)習(xí)技術(shù)作為人工智能技術(shù)的重要組成部分,將作為智慧檢修系統(tǒng)的“大腦”輔助運維人員排查故障,其主要模型為兩類神經(jīng)網(wǎng)絡(luò),下面將分別介紹。
3.2.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN)
卷積神經(jīng)網(wǎng)絡(luò)是一種適合做圖像識別的神經(jīng)網(wǎng)絡(luò),由卷積層、池化層、全連接層組成。其中,卷積層會使用卷積核(本系統(tǒng)推薦使用高斯核)與圖像做哈達(dá)瑪積,提取圖形中的特征點,并經(jīng)過池化層放大特征后輸出給全連接層進(jìn)行分類。CNN 結(jié)構(gòu)如圖5 所示。
圖5 卷積神經(jīng)網(wǎng)絡(luò)Figure 5 Convolutional neural network
在本系統(tǒng)中,可以使用CNN 的實例AlexNet 作為圖像數(shù)據(jù)的主要訓(xùn)練模型,該模型由Geoffrey 與Alex 在2012年提出[8],AlexNet 通過DropOut 等方式對CNN 進(jìn)行了改進(jìn)。這一模型輸入設(shè)備缺陷圖片,輸出可能的故障類型。在實際使用過程中可以用已有數(shù)據(jù)預(yù)訓(xùn)練一個模型再投入使用。
3.2.2 長短期記憶網(wǎng)絡(luò)(LSTM)
長短期記憶神經(jīng)網(wǎng)絡(luò)是一種門控的循環(huán)神經(jīng)網(wǎng)絡(luò),適用于時間序列數(shù)據(jù)。該神經(jīng)網(wǎng)絡(luò)在循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上為了保留序列中較為久遠(yuǎn)的影響因子,引入了遺忘門、輸入門、輸出門進(jìn)行控制,能夠保留序列中的長期因子與短期因子對序列發(fā)展的作用。LSTM 結(jié)構(gòu)如圖6 所示。
圖6 LSTMFigure 6 LSTM
在實際生產(chǎn)環(huán)境中,一個故障往往會引發(fā)多個監(jiān)控系統(tǒng)報警信號的發(fā)出,這些信號在時間上可能較為密集,也可能較為彌散,有些故障對報警信息的影響可能是隱性的,關(guān)系不明顯。例如某電廠多個LCU 與遠(yuǎn)程I/O 系統(tǒng)發(fā)出一般報警,經(jīng)過調(diào)查,報警原因為上位機SCADA 服務(wù)器時間不同步,該原因看似與報警信息毫不相干。而經(jīng)過訓(xùn)練后,LSTM 能夠通過報警信息較為準(zhǔn)確地推測故障成因。[9]
本文在前人的經(jīng)驗下,探討了一種融合AR、深度學(xué)習(xí)、大數(shù)據(jù)等新興技術(shù)的創(chuàng)新型智慧檢修系統(tǒng),突破了水電智慧檢修直觀程度、智能程度不足的壁壘,并從功能、層級結(jié)構(gòu)、業(yè)務(wù)邏輯、技術(shù)細(xì)節(jié)等方面闡述了該系統(tǒng)的相關(guān)內(nèi)容。
盡管本系統(tǒng)創(chuàng)新性強、實用性高、可擴展性好,但仍然存在許多可以改進(jìn)的地方,例如實際生產(chǎn)環(huán)境中的報警數(shù)量可能較少,這會導(dǎo)致模型泛化性能不佳,一個可行的解決思路是將多個電廠的數(shù)據(jù)集中到一個遠(yuǎn)方的數(shù)據(jù)中心進(jìn)行模型訓(xùn)練與集群管理[10],這也將成為該系統(tǒng)后續(xù)改進(jìn)的主要方向。