石 鋒,梁尚斌,蔣 勇,閆麗萍,徐建軍,郭曉東
1.中國(guó)石油化工股份有限公司 西北油田分公司,烏魯木齊 830011
2.四川大學(xué) 電子信息學(xué)院,成都 610065
石油和天然氣工業(yè),從原油開采到油氣集輸,需要高效可靠的技術(shù)和系統(tǒng)來監(jiān)測(cè)生產(chǎn)運(yùn)行情況,及時(shí)發(fā)現(xiàn)異常并進(jìn)行處理,提高安全生產(chǎn)水平。近年來,由于無線傳感器具有小型化、低速率、低功耗、快速部署、便于維護(hù)的特點(diǎn),在油氣工業(yè)數(shù)據(jù)監(jiān)測(cè)和生產(chǎn)控制方面得到了廣泛應(yīng)用?;谖锫?lián)網(wǎng)的油田生產(chǎn)數(shù)據(jù)在線監(jiān)測(cè)系統(tǒng),由智能感知層、網(wǎng)絡(luò)層、服務(wù)資源層和應(yīng)用層組成,通常在智能感知層對(duì)采集的異構(gòu)數(shù)據(jù)打包,通過網(wǎng)絡(luò)層發(fā)送至遠(yuǎn)端服務(wù)器層,在遠(yuǎn)端應(yīng)用層進(jìn)行協(xié)議解析和異常數(shù)據(jù)處理,同時(shí)在云端進(jìn)行控制指令下發(fā)[1-2]?;谠贫说奈锫?lián)網(wǎng)應(yīng)用具有資源按需分配、快速?gòu)椥圆渴鸷头?wù)可計(jì)量的特點(diǎn)[3-4]。但是基于云端的物聯(lián)網(wǎng)應(yīng)用,存在數(shù)據(jù)在服務(wù)器端處理和展示,在進(jìn)行邏輯控制時(shí),也需要在云端進(jìn)行規(guī)則判斷,然后把控制指令下發(fā)至現(xiàn)場(chǎng)感知層,異常數(shù)據(jù)處理和邏輯控制嚴(yán)重依賴網(wǎng)絡(luò),由于網(wǎng)絡(luò)時(shí)延、擁塞,不能及時(shí)響應(yīng)現(xiàn)場(chǎng)異常情況。
應(yīng)對(duì)這種挑戰(zhàn),計(jì)算領(lǐng)域最近出現(xiàn)了范式轉(zhuǎn)變,即邊緣計(jì)算[5-6]。邊緣計(jì)算可以看作是云計(jì)算的補(bǔ)充,在靠近物或數(shù)據(jù)源頭的網(wǎng)絡(luò)邊緣側(cè),融合云計(jì)算中的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)和應(yīng)用資源,利用邊緣計(jì)算提供計(jì)算和存儲(chǔ)能力,使應(yīng)用、服務(wù)和內(nèi)容實(shí)現(xiàn)本地化部署,滿足業(yè)務(wù)低時(shí)延、海量連接的需求,緩解網(wǎng)絡(luò)負(fù)載壓力[7-8]。在油田物聯(lián)網(wǎng)應(yīng)用中,云計(jì)算和邊緣計(jì)算之間可以相互協(xié)作和補(bǔ)充,實(shí)現(xiàn)云端計(jì)算下沉至邊緣端[9-10],實(shí)現(xiàn)業(yè)務(wù)本地化,降低能耗,避免了因網(wǎng)絡(luò)擁塞和中斷時(shí)造成的服務(wù)中斷和數(shù)據(jù)丟失。通過在邊緣端實(shí)現(xiàn)異常數(shù)據(jù)檢測(cè)和邏輯控制,降低生產(chǎn)安全風(fēng)險(xiǎn)[11-12]。
本文首先分析了基于云端應(yīng)用的物聯(lián)網(wǎng)系統(tǒng)的特點(diǎn)以及進(jìn)行異構(gòu)海量數(shù)據(jù)連接、實(shí)時(shí)處理、分析和邏輯控制的缺陷,提出基于邊緣計(jì)算的油田物聯(lián)網(wǎng)架構(gòu),在邊緣端實(shí)現(xiàn)數(shù)據(jù)接入、協(xié)議轉(zhuǎn)換與數(shù)據(jù)異常檢測(cè)和邏輯控制。根據(jù)油田應(yīng)用實(shí)際,在邊緣網(wǎng)關(guān)部署阿里巴巴公司的Link Edge邊緣計(jì)算環(huán)境,結(jié)合油田應(yīng)用實(shí)際開發(fā)設(shè)備接入驅(qū)動(dòng)程序和數(shù)據(jù)處理用戶程序,使用孤立森林算法進(jìn)行異常數(shù)據(jù)檢測(cè)和處理[13-15],利用邊緣端的計(jì)算和存儲(chǔ)能力進(jìn)行函數(shù)計(jì)算,實(shí)現(xiàn)加熱爐溫度控制功能,滿足業(yè)務(wù)低時(shí)延、高可靠和實(shí)時(shí)服務(wù),同時(shí)在云端實(shí)現(xiàn)設(shè)備管理、數(shù)據(jù)展示、報(bào)警信息查詢。
邊緣計(jì)算通過把小型帶有計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)接入能力的設(shè)備部署在網(wǎng)絡(luò)邊緣,與智能傳感器、有線儀表和用戶緊密相連,既可以滿足邊緣設(shè)備計(jì)算能力擴(kuò)展需求,又可以有效減少網(wǎng)絡(luò)負(fù)載,降低數(shù)據(jù)時(shí)延。邊緣計(jì)算面向的對(duì)象包括來自邊緣端物聯(lián)網(wǎng)的上行數(shù)據(jù)和來自云計(jì)算中心的下行數(shù)據(jù)[16-17]。
油田現(xiàn)場(chǎng)生產(chǎn)活動(dòng)分散地處于偏遠(yuǎn)且難以到達(dá)的惡劣自然環(huán)境地區(qū),網(wǎng)絡(luò)連接時(shí)常發(fā)生中斷情況,現(xiàn)場(chǎng)生產(chǎn)數(shù)據(jù)無法回傳和實(shí)時(shí)控制?,F(xiàn)場(chǎng)數(shù)據(jù)采集、傳輸和業(yè)務(wù)邏輯的實(shí)時(shí)性要求較高,如果數(shù)據(jù)分析和控制邏輯全部集中在云端完成,難以滿足實(shí)時(shí)性需求。另一方面,邊緣計(jì)算可以提供計(jì)算卸載,在邊緣端進(jìn)行通信協(xié)議解析、數(shù)據(jù)格式轉(zhuǎn)換后可以實(shí)時(shí)響應(yīng)感知層設(shè)備,將異常數(shù)據(jù)過濾后進(jìn)行規(guī)則學(xué)習(xí),計(jì)算報(bào)警閾值,數(shù)據(jù)異常時(shí)觸發(fā)報(bào)警,減少傳統(tǒng)云端計(jì)算模式下報(bào)警信息大量冗余和淹沒有效報(bào)警信息的弊端,提高響應(yīng),降低時(shí)延,實(shí)現(xiàn)安全生產(chǎn)的目標(biāo)。油田物聯(lián)網(wǎng)邊緣計(jì)算整體架構(gòu)自下而上分為智能感知層、邊緣計(jì)算層、云計(jì)算層[18-20],總體設(shè)計(jì)如圖1所示。
智能感知層,通常包括無線智能壓力、溫度、抽油泵示功圖傳感器、電量監(jiān)測(cè)設(shè)備、流量計(jì)、調(diào)節(jié)閥以及電動(dòng)機(jī)變頻器等。感知層設(shè)備與上層設(shè)備通信方式有無線和有線兩種方式,通信協(xié)議分別為基于IEEE 802.15.4標(biāo)準(zhǔn)和ZigBee 通信協(xié)議標(biāo)準(zhǔn)的油田SZ9-GRM(G 代表網(wǎng)關(guān)Gateway,R代表路由Router,M代表無線儀表等測(cè)量設(shè)備Measurement)私有通信協(xié)議和工業(yè)標(biāo)準(zhǔn)Modbus通信協(xié)議,感知層設(shè)備的安全主要考慮設(shè)備的物理安全和內(nèi)容安全。
邊緣計(jì)算層,在油田物聯(lián)網(wǎng)邊緣計(jì)算系統(tǒng)中邊緣網(wǎng)關(guān)設(shè)備具有豐富的下聯(lián)設(shè)備接口,包含以太網(wǎng)口、RS-232/485串口、數(shù)字量輸入/輸出接口以及3G/4G模塊。邊緣網(wǎng)關(guān)具有訪問互聯(lián)網(wǎng)的功能,充當(dāng)邊緣網(wǎng)關(guān)的角色,既可以實(shí)現(xiàn)設(shè)備數(shù)據(jù)的采集、過濾、流轉(zhuǎn)、存儲(chǔ)、分析和處理,又可以將設(shè)備數(shù)據(jù)上報(bào)至云端,同時(shí)提供規(guī)則引擎和函數(shù)計(jì)算功能,方便應(yīng)用場(chǎng)景編排和業(yè)務(wù)擴(kuò)展,邊緣計(jì)算層的核心功能接口如圖2所示。
圖1 油田物聯(lián)網(wǎng)邊緣計(jì)算架構(gòu)
圖2 邊緣計(jì)算層核心功能
云計(jì)算層,通常包括服務(wù)器計(jì)算資源、存儲(chǔ)資源、云端網(wǎng)絡(luò)和用戶應(yīng)用程序部分,除了提供復(fù)雜的數(shù)據(jù)處理、分析和展示外,還提供異常數(shù)據(jù)報(bào)警管理、設(shè)備管理和控制功能,與邊緣端處理協(xié)同,滿足不同的業(yè)務(wù)應(yīng)用需求。
從圖2可知,在邊緣計(jì)算層需要實(shí)現(xiàn)底層設(shè)備接入驅(qū)動(dòng)的開發(fā)和管理,支持設(shè)備驅(qū)動(dòng)程序云端下發(fā)、子設(shè)備通道設(shè)定管理和子設(shè)備添加、刪除管理與維護(hù)等功能;協(xié)議數(shù)據(jù)解析與轉(zhuǎn)換,經(jīng)過數(shù)據(jù)過濾后,利用異常數(shù)據(jù)處理算法進(jìn)行數(shù)據(jù)實(shí)時(shí)檢測(cè)和異常值判斷和報(bào)警提醒;基于規(guī)則引擎進(jìn)行多個(gè)數(shù)據(jù)邏輯控制,進(jìn)而實(shí)現(xiàn)設(shè)備連鎖控制功能。通過在邊緣端部署邊緣網(wǎng)關(guān),將原來云端計(jì)算和存儲(chǔ)資源下放至邊緣端,在邊緣端實(shí)現(xiàn)設(shè)備協(xié)議數(shù)據(jù)包解析、數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)過濾和報(bào)警提醒以及設(shè)備連鎖邏輯控制,降低網(wǎng)絡(luò)時(shí)延和由于網(wǎng)絡(luò)中斷造成數(shù)據(jù)丟失和控制功能失效,提高業(yè)務(wù)實(shí)時(shí)連續(xù)性,保障生產(chǎn)平穩(wěn)運(yùn)行。
油田物聯(lián)網(wǎng)邊緣計(jì)算功能主要包括設(shè)備程序開發(fā)封裝和部署、基于孤立森林算法的異常數(shù)據(jù)檢測(cè)和設(shè)備邏輯控制三方面。
邊緣計(jì)算的實(shí)現(xiàn)依托Link Edge 提供的支撐環(huán)境,設(shè)備接入模塊在Link Edge 中實(shí)現(xiàn)。一個(gè)完整的設(shè)備接入驅(qū)動(dòng)由設(shè)備的連接管理、協(xié)議數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)交互與命令處理組成。連接管理是指設(shè)備與網(wǎng)關(guān)建立通信連接,Link Edge不限制建立通信連接的協(xié)議,可根據(jù)業(yè)務(wù)需求靈活選擇。協(xié)議數(shù)據(jù)轉(zhuǎn)換是指設(shè)備接入驅(qū)動(dòng)將獲取到的終端設(shè)備數(shù)據(jù)轉(zhuǎn)換為符合物聯(lián)網(wǎng)模型規(guī)范的數(shù)據(jù)格式,并上報(bào)到云端。數(shù)據(jù)與命令處理是指驅(qū)動(dòng)可以處理云端對(duì)于設(shè)備的操作請(qǐng)求,并完成對(duì)設(shè)備的服務(wù)調(diào)用和處理調(diào)用結(jié)果,最終將結(jié)果返回到云端。
設(shè)備接入驅(qū)動(dòng)是Link Edge 中獨(dú)立的服務(wù)模塊,Link Edge 除了提供常用協(xié)議驅(qū)動(dòng),如Modbus、OPC UA驅(qū)動(dòng)外,還支持自定義驅(qū)動(dòng)開發(fā)。本文根據(jù)GRM私有通信協(xié)議開發(fā)自定義設(shè)備接入驅(qū)動(dòng),并自定義驅(qū)動(dòng)功能和數(shù)據(jù)流向。
GRM 協(xié)議系統(tǒng)是基于國(guó)際標(biāo)準(zhǔn)實(shí)現(xiàn)的通用協(xié)議,是在油氣行業(yè)的具體應(yīng)用,包含儀表通信協(xié)議、儀表配置協(xié)議、儀表標(biāo)定協(xié)議和儀表工作狀態(tài)轉(zhuǎn)換規(guī)定等。其基本思路是通過無線接收終端采集無線儀表的數(shù)據(jù),再經(jīng)路由形成ZigBee 網(wǎng)絡(luò)將數(shù)據(jù)傳送到就近的網(wǎng)關(guān),再將數(shù)據(jù)傳送至云端。儀表通信協(xié)議基于ZigBee通信協(xié)議,在協(xié)議數(shù)據(jù)包中嵌入應(yīng)用協(xié)議數(shù)據(jù),應(yīng)用層協(xié)議數(shù)據(jù)幀包括幀頭和數(shù)據(jù)兩大部分,幀頭部分包含協(xié)議類型、儀表廠商代碼、儀表類型、儀表組號(hào)、儀表序號(hào)和數(shù)據(jù)類型幾個(gè)數(shù)據(jù)段。儀表通信協(xié)議數(shù)據(jù)幀格式如表1所示。
表1 儀表通信協(xié)議數(shù)據(jù)幀格式
在本文構(gòu)建的邊緣計(jì)算物聯(lián)網(wǎng)系統(tǒng)中使用無線接收終端接收無線儀表的數(shù)據(jù),然后將數(shù)據(jù)通過RS-485接口傳送至邊緣網(wǎng)關(guān)中,處理后發(fā)送至遠(yuǎn)端數(shù)據(jù)中心服務(wù)器。無線接收終端使用API模式進(jìn)行數(shù)據(jù)接收,支持用戶開發(fā)程序通過串口直接讀取數(shù)據(jù),其數(shù)據(jù)幀通用格式如表2所示。基于以上兩種數(shù)據(jù)幀內(nèi)容定義,開發(fā)用戶驅(qū)動(dòng)程序進(jìn)行儀表設(shè)備數(shù)據(jù)讀取請(qǐng)求與應(yīng)答,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)監(jiān)控。
表2 終端接收數(shù)據(jù)幀通用格式
用戶驅(qū)動(dòng)的開發(fā)基于Link Edge 的集成開發(fā)環(huán)境Docker 鏡像進(jìn)行,設(shè)備驅(qū)動(dòng)開發(fā)包括程序編碼、編譯打包、程序上傳至云端、部署至邊緣設(shè)備、數(shù)據(jù)查看和運(yùn)行日志查看等流程。
在基于云端應(yīng)用的物聯(lián)網(wǎng)架構(gòu)下,海量異構(gòu)設(shè)備數(shù)據(jù)在云端進(jìn)行異常數(shù)據(jù)實(shí)時(shí)檢測(cè)處理無法滿足業(yè)務(wù)需求,因此數(shù)據(jù)在云端應(yīng)用上通過設(shè)定報(bào)警值的閾值范圍來檢測(cè)異常,當(dāng)數(shù)據(jù)超出閾值范圍時(shí)觸發(fā)報(bào)警?,F(xiàn)場(chǎng)生產(chǎn)數(shù)據(jù)情況波動(dòng)、儀表設(shè)備采集數(shù)據(jù)時(shí),不可避免地產(chǎn)生噪聲、數(shù)據(jù)缺失和錯(cuò)誤及信號(hào)傳輸異常,導(dǎo)致產(chǎn)生大量報(bào)警信息,淹沒了有效報(bào)警信息,并且需要生產(chǎn)監(jiān)控管理人員進(jìn)行現(xiàn)場(chǎng)確認(rèn),帶來許多額外工作。
基于邊緣計(jì)算的物聯(lián)網(wǎng)架構(gòu),可以在邊緣端對(duì)關(guān)鍵生產(chǎn)數(shù)據(jù)進(jìn)行異常檢測(cè),同時(shí)將異常數(shù)據(jù)值和報(bào)警規(guī)則上傳至云端,提高業(yè)務(wù)響應(yīng)的實(shí)時(shí)性,降低網(wǎng)絡(luò)負(fù)載。
異常數(shù)據(jù)檢測(cè)方法是對(duì)正常樣本進(jìn)行特征描述,不在正常特征空間中的樣本被視為異常。異常數(shù)據(jù)具有兩個(gè)特點(diǎn):一是異常數(shù)據(jù)只占少量,屬于異常特征值;二是和正常數(shù)據(jù)差別很大。
孤立森林(Isolation Forest)檢測(cè)算法是不再描述正常的樣本點(diǎn),而是要孤立異常點(diǎn)。異常數(shù)據(jù)被定義為“容易被孤立的離群點(diǎn)”,可以認(rèn)為是分布稀疏且距離密度高的群體較遠(yuǎn)的點(diǎn)。在樣本特征空間中,分布稀疏的區(qū)域表示事件發(fā)生在該區(qū)域的概率很低,認(rèn)為落在這些區(qū)域里的數(shù)據(jù)是異常的。孤立森林算法是一種無監(jiān)督異常數(shù)據(jù)檢測(cè)方法,不需要有標(biāo)記的樣本來訓(xùn)練,但是要求樣本特征是連續(xù)的變量,隨機(jī)遞歸地分割樣本數(shù)據(jù)集,直到所有的樣本點(diǎn)都是孤立的,在這種隨機(jī)分割的策略下,異常點(diǎn)通常具有較短的路徑。
孤立森林算法對(duì)數(shù)據(jù)集進(jìn)行隨機(jī)采樣并構(gòu)造樹iTree。iTree 是一種隨機(jī)二叉樹,每個(gè)節(jié)點(diǎn)要么有兩個(gè)孩子,要么就是葉子節(jié)點(diǎn),一個(gè)孩子都沒有。然后將多個(gè)iTree 集成為森林iForest,將傳入的數(shù)據(jù)遍歷每一棵樹的節(jié)點(diǎn),根據(jù)平均路徑深度檢測(cè)是否為異常。
構(gòu)造iTree的思想如下:
(1)從給定的數(shù)據(jù)集中隨機(jī)選擇ψ個(gè)樣本點(diǎn)作為子采樣數(shù)據(jù)集,并構(gòu)造一棵初始的iTree,將子采樣放入樹的根節(jié)點(diǎn)。
(2)根據(jù)數(shù)據(jù)集特征,指定數(shù)據(jù)集的一個(gè)屬性項(xiàng)q,在屬性項(xiàng)q中隨機(jī)產(chǎn)生一個(gè)分割點(diǎn)p,分割點(diǎn)p介于屬性數(shù)據(jù)項(xiàng)q的最大值與最小值之間。
(3)根據(jù)數(shù)據(jù)點(diǎn)的p值對(duì)每條記錄進(jìn)行劃分,構(gòu)造iTree,把小于p值的記錄放在左節(jié)點(diǎn),把大于等于p值的記錄放在右節(jié)點(diǎn)。
(4)遞歸執(zhí)行步驟(2)和步驟(3),不斷構(gòu)造新的樹節(jié)點(diǎn),直到子采樣數(shù)據(jù)集中只有一條數(shù)據(jù),無法繼續(xù)分割,或者樹的高度已經(jīng)達(dá)到初始定義好的限定高度。
iTree是一個(gè)完全二叉樹,樹中的每個(gè)節(jié)點(diǎn)都有0或兩個(gè)子節(jié)點(diǎn)。假設(shè)所有實(shí)例都是不同的,當(dāng)一個(gè)iTree完全生長(zhǎng)時(shí),每個(gè)實(shí)例都被隔離到一個(gè)外部節(jié)點(diǎn),在這種情況下,外部節(jié)點(diǎn)的數(shù)量是n,內(nèi)部節(jié)點(diǎn)為n-1,節(jié)點(diǎn)總數(shù)為2n-1。異常檢測(cè)的任務(wù)是提供一個(gè)反映異常程度的排序。
根據(jù)給定數(shù)據(jù)集構(gòu)建完成t個(gè)iTree 之后生成孤立森林模型iForest,然后用來評(píng)估測(cè)試數(shù)據(jù),發(fā)現(xiàn)異常數(shù)據(jù)。對(duì)于一個(gè)測(cè)試數(shù)據(jù)x,遍歷每一棵iTree,計(jì)算x落在每一棵樹的深度,即葉子節(jié)點(diǎn)到根節(jié)點(diǎn)的路徑長(zhǎng)度,記為h(x),根據(jù)h(x)來判斷一條記錄x是否是異常點(diǎn),所有h(x)的平均值為E(h(x)),因此設(shè)置標(biāo)準(zhǔn)平均搜索長(zhǎng)度c(ψ)為:
從而可以定義一個(gè)待測(cè)數(shù)據(jù)x的異常評(píng)分為:
從式(3)中可以看出:
當(dāng)E(h(x))→c(ψ),s→ 0.5;
當(dāng)E(h(x))→ 0,s→ 1;
當(dāng)E(h(x))→n-1,s→0 。
根據(jù)異常評(píng)分可以判斷出,當(dāng)評(píng)分值為1 時(shí),該數(shù)據(jù)點(diǎn)為異常值;當(dāng)評(píng)分值小于0.5 時(shí),該數(shù)據(jù)點(diǎn)為正常值;如果所有數(shù)據(jù)點(diǎn)評(píng)分值全部約為0.5時(shí),說明整個(gè)數(shù)據(jù)集都沒有明顯異常。
通過在觀測(cè)數(shù)據(jù)的最大值與最小值之間生成隨機(jī)數(shù)構(gòu)建孤立森林,因?yàn)槲锫?lián)網(wǎng)觀測(cè)數(shù)據(jù)的正常值變化范圍較小,在構(gòu)建孤立森林時(shí)子采樣空間大小為觀測(cè)值去重后數(shù)量的4 倍,建立孤立樹的個(gè)數(shù)為50,最大樹高度為10層。由于正常數(shù)據(jù)與異常數(shù)據(jù)的臨界值需要在具體應(yīng)用中分析來確定,本文使用包含訓(xùn)練數(shù)據(jù)在內(nèi)的一系列數(shù)據(jù)進(jìn)行模擬計(jì)算10組數(shù)據(jù),然后計(jì)算其均值,確定正常數(shù)據(jù)與異常數(shù)據(jù)的臨界值為0.581。模擬計(jì)算結(jié)果如圖3所示。在進(jìn)行異常數(shù)據(jù)實(shí)時(shí)檢測(cè)時(shí),計(jì)算的孤立森林值大于0.581時(shí),則進(jìn)行異常報(bào)警提醒。
圖3 臨界值模擬計(jì)算結(jié)果
在傳統(tǒng)的油田物聯(lián)網(wǎng)系統(tǒng)應(yīng)用場(chǎng)景中,油井生產(chǎn)現(xiàn)場(chǎng)的各類傳感器負(fù)責(zé)實(shí)時(shí)采集數(shù)據(jù),通過3G/4G或者光纜等有線網(wǎng)絡(luò)將數(shù)據(jù)傳輸至遠(yuǎn)端數(shù)據(jù)中心服務(wù)器,在遠(yuǎn)端數(shù)據(jù)中心服務(wù)器進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換、處理、分析和運(yùn)算,然后將處理結(jié)果及生產(chǎn)控制指令再通過網(wǎng)絡(luò)傳輸至現(xiàn)場(chǎng)儀表層,實(shí)現(xiàn)現(xiàn)場(chǎng)過程控制。這種傳統(tǒng)的物聯(lián)網(wǎng)架構(gòu),數(shù)據(jù)異常處理和過程控制嚴(yán)重依賴網(wǎng)絡(luò),當(dāng)網(wǎng)絡(luò)中斷時(shí),不可避免地產(chǎn)生業(yè)務(wù)中斷,給安全生產(chǎn)帶來極大的隱患。如果將云端的計(jì)算、存儲(chǔ)資源下沉至邊緣端,在邊緣端集成異常數(shù)據(jù)檢測(cè)處理和邏輯控制,可以提高業(yè)務(wù)連續(xù)性、實(shí)時(shí)性,降低安全風(fēng)險(xiǎn)[21]。本文構(gòu)建的油田物聯(lián)網(wǎng)邊緣計(jì)算模式,依托邊緣端計(jì)算、存儲(chǔ)資源和Link Edge 邊緣計(jì)算環(huán)境以及輕量級(jí)存儲(chǔ)環(huán)境SQLite,構(gòu)建近端邊緣層與云端計(jì)算層協(xié)同處理的新模式。在近端邊緣層對(duì)儀表感知層的數(shù)據(jù)進(jìn)行預(yù)處理、異常檢測(cè)和數(shù)據(jù)修正,同時(shí)完成現(xiàn)場(chǎng)的過程控制和故障診斷,同時(shí)將數(shù)據(jù)、異常檢測(cè)結(jié)果和過程控制邏輯上傳至云端,在云端進(jìn)行深層次的計(jì)算,云端展示給用戶使用和判斷,這樣就實(shí)現(xiàn)了一個(gè)立體的分層式數(shù)據(jù)協(xié)同處理過程[22-23]。
在如圖4的實(shí)際邏輯場(chǎng)景中,油井加熱爐對(duì)開采的原油進(jìn)行加熱后經(jīng)過輸油管線運(yùn)輸,為了防止非金屬輸油管線因原油加熱溫度過高,導(dǎo)致使用壽命降低,或者物理損傷后造成原油泄漏,進(jìn)而導(dǎo)致環(huán)境污染現(xiàn)象發(fā)生,需要實(shí)時(shí)監(jiān)測(cè)和控制加熱后的出口溫度,設(shè)定控制邏輯如下:當(dāng)火焰探測(cè)器監(jiān)測(cè)無火焰時(shí),同時(shí)關(guān)閉調(diào)節(jié)閥1和調(diào)節(jié)閥2;當(dāng)出口溫度大于65 ℃時(shí),減少供氣,打開調(diào)節(jié)閥2,關(guān)閉調(diào)節(jié)閥1,當(dāng)溫度小于45 ℃時(shí),增加供氣,打開調(diào)節(jié)閥1,關(guān)閉調(diào)節(jié)閥2。
圖4 加熱爐邏輯控制場(chǎng)景
本文在Link Edge 中通過函數(shù)計(jì)算功能實(shí)現(xiàn)現(xiàn)場(chǎng)邏輯控制,函數(shù)計(jì)算是一種運(yùn)行時(shí)框架,遵循事件驅(qū)動(dòng)模型??梢允褂帽镜睾瘮?shù)計(jì)算框架基于設(shè)備數(shù)據(jù)、事件的業(yè)務(wù)邏輯開發(fā)實(shí)現(xiàn)控制,在本地?cái)?shù)據(jù)存儲(chǔ)的基礎(chǔ)上,進(jìn)行數(shù)據(jù)過濾、計(jì)算,然后根據(jù)函數(shù)計(jì)算實(shí)現(xiàn)控制,同時(shí)利用邊緣端的消息路由功能,控制本地?cái)?shù)據(jù)在邊緣計(jì)算節(jié)點(diǎn)中的流轉(zhuǎn),如將設(shè)備數(shù)據(jù)流轉(zhuǎn)至函數(shù)計(jì)算、流數(shù)據(jù)分析,進(jìn)行數(shù)據(jù)清洗、加工、聚合之后再流入至企業(yè)云端服務(wù)器,大大減少數(shù)據(jù)傳輸成本,實(shí)現(xiàn)數(shù)據(jù)安全可控。邊緣計(jì)算節(jié)點(diǎn)在斷網(wǎng)或者網(wǎng)絡(luò)條件較弱的時(shí)候,將數(shù)據(jù)保存在本地存儲(chǔ)區(qū),不但可以提供數(shù)據(jù)恢復(fù)能力,由于計(jì)算和存儲(chǔ)資源下沉在本地,還能夠?qū)崿F(xiàn)本地控制的業(yè)務(wù)連續(xù)性。邊緣計(jì)算節(jié)點(diǎn)通過函數(shù)計(jì)算實(shí)現(xiàn)邏輯控制功能的結(jié)構(gòu)如圖5所示。
為了評(píng)估在邊緣側(cè)進(jìn)行異常數(shù)據(jù)處理和函數(shù)計(jì)算邏輯控制的精度和運(yùn)行效率,分別從異常數(shù)據(jù)檢測(cè)處理計(jì)算時(shí)間和算法精度兩方面進(jìn)行評(píng)估。
在邊緣端使用的邊緣網(wǎng)關(guān)硬件配置和云端數(shù)據(jù)中心服務(wù)器硬件配置如表3所示。
表3 邊緣端和云端異常檢測(cè)設(shè)備配置對(duì)比
圖5 邊緣計(jì)算節(jié)點(diǎn)函數(shù)計(jì)算
在邊緣端和云端分別運(yùn)行異常數(shù)據(jù)檢測(cè)程序,運(yùn)行10次,得到平均運(yùn)行消耗的時(shí)間如表4所示。從邊緣端運(yùn)行時(shí)間可以看出,在邊緣端進(jìn)行單個(gè)數(shù)據(jù)異常檢測(cè)的平均時(shí)間僅為1.05 s,處理的時(shí)效性滿足生產(chǎn)應(yīng)用需要。同時(shí)結(jié)合云數(shù)據(jù)過濾功能,可以僅將異常數(shù)據(jù)和報(bào)警規(guī)則上傳至云端,降低網(wǎng)絡(luò)傳輸成本。
表4 邊緣端和云端異常檢測(cè)運(yùn)行時(shí)間對(duì)比
基于函數(shù)計(jì)算的邏輯控制功能的時(shí)間響應(yīng)也在秒級(jí),由此可知,基于邊緣計(jì)算設(shè)備實(shí)現(xiàn)云端的計(jì)算功能,可以滿足生產(chǎn)實(shí)際需要。
由于物聯(lián)網(wǎng)監(jiān)測(cè)的正常數(shù)據(jù)的變化范圍較小,而且數(shù)值固定在某一個(gè)區(qū)間,因此在進(jìn)行算法精度評(píng)估中,按照實(shí)際監(jiān)測(cè)數(shù)據(jù)個(gè)數(shù)的兩倍生成一個(gè)序列進(jìn)行精度監(jiān)測(cè),實(shí)際監(jiān)測(cè)數(shù)據(jù)值為0.82至1.10之間,共18個(gè)不同的數(shù)據(jù)。在精度分析中根據(jù)實(shí)際數(shù)據(jù)最大值和最小值以及數(shù)據(jù)個(gè)數(shù),計(jì)算數(shù)據(jù)變化間隔,然后按照間隔數(shù)據(jù)生成一個(gè)從0.692至1.237的區(qū)間,使用混淆矩陣進(jìn)行精度評(píng)價(jià)。
混淆矩陣中的真陽性(True Positive,TP)是正常數(shù)據(jù)被異常檢測(cè)程序正確識(shí)別為正常數(shù)據(jù)的數(shù)量;偽陽性(False Positive,F(xiàn)N)是實(shí)際為異常數(shù)據(jù)被異常檢測(cè)為正常數(shù)據(jù)的數(shù)量;真陰性(True Negative,TN)是實(shí)際為異常數(shù)據(jù)被識(shí)別為異常數(shù)據(jù)的數(shù)量;偽陰性(False Negative,F(xiàn)N)是實(shí)際為異常數(shù)據(jù)被識(shí)別成正常數(shù)據(jù)的數(shù)量。真陽性和真陰性是正確的識(shí)別,一個(gè)好的檢測(cè)算法應(yīng)該有較大的真陽性和真陰性值,較小的偽陽性和偽陰性值。
在精度評(píng)價(jià)中,使用36 個(gè)數(shù)據(jù)值的序列,運(yùn)行10次,求得平均值,進(jìn)行混淆矩陣計(jì)算,計(jì)算結(jié)果如表5所示。
表5 精度評(píng)價(jià)混淆矩陣
精確度(Accuracy)或者稱為總成功率是度量檢測(cè)算法能夠正確地對(duì)數(shù)據(jù)進(jìn)行正常檢測(cè)的比例,被定義為TP和TN的總和除以數(shù)據(jù)總數(shù),如式(4)所示:
真陽性率(True Positive Rate,TPR)是被檢測(cè)程序正確識(shí)別為正常數(shù)據(jù)的比例;偽陽性率(False Positive Rate,F(xiàn)PR)是異常數(shù)據(jù)被檢測(cè)為正常數(shù)據(jù)的比例,F(xiàn)PR也稱為錯(cuò)誤率;偽陰性率(False Negative Rate,F(xiàn)NR)是正常數(shù)據(jù)被標(biāo)記為異常數(shù)據(jù)的比例,F(xiàn)NR 也稱為誤報(bào)率。參數(shù)計(jì)算如式(5)所示:
由式(4)、(5)計(jì)算得到檢測(cè)算法的精確度為94.44%,真陽性率為88.89%,偽陽性率即漏報(bào)率為0,偽陰性率即誤報(bào)率為11.11%,從實(shí)際應(yīng)用安全要求本質(zhì)來看,誤報(bào)率可以接受,而漏報(bào)不能被接受。
針對(duì)油田物聯(lián)網(wǎng)邊緣計(jì)算問題,提出了邊緣計(jì)算整體的架構(gòu),實(shí)現(xiàn)了行業(yè)數(shù)據(jù)接入驅(qū)動(dòng)和云端設(shè)備監(jiān)控與管理功能,并基于邊緣端的設(shè)備實(shí)現(xiàn)基于監(jiān)測(cè)數(shù)據(jù)的最值之間的隨機(jī)數(shù)生成孤立森林進(jìn)行異常數(shù)據(jù)檢測(cè)和異常報(bào)警,同時(shí)使用邊緣計(jì)算的函數(shù)計(jì)算功能實(shí)現(xiàn)設(shè)備間的邏輯控制,最終實(shí)現(xiàn)基于邊緣設(shè)備進(jìn)行數(shù)據(jù)就地監(jiān)測(cè)和就近控制,避免了網(wǎng)絡(luò)時(shí)延和中斷帶來的影響。通過從異常檢測(cè)計(jì)算時(shí)間對(duì)比和檢測(cè)精度分析對(duì)比來看,孤立森林算法可以很好地應(yīng)用于物聯(lián)網(wǎng)邊緣計(jì)算場(chǎng)景中。但是在異常數(shù)據(jù)檢測(cè)中誤報(bào)率較高,仍然需要進(jìn)一步改進(jìn)和提高。