李 敏,劉同旭,張 友,年安君,王 潔,徐曉明
(國網蚌埠供電公司,安徽 蚌埠 233000)
由于電力系統(tǒng)的需要充分兼顧網路的通用性、可擴展性及規(guī)范化的相關問題。要實現的空氣監(jiān)控,需要這套監(jiān)控系統(tǒng)響應速度快,運行可靠性高,系統(tǒng)擴展性寬等要求。新型電力調度與環(huán)境監(jiān)測系統(tǒng)的應用,促進了無人值守電力網絡節(jié)點的實現,可通過遠程監(jiān)視、遠程控制技術對電網進行調度,可快速精確的掌握電力系統(tǒng)各個節(jié)點運行的即時狀態(tài),盡快掌握電力系統(tǒng)各個節(jié)點運行的異常狀況,并通過計算、對比分析出推薦處理方式,還能夠使調度值班員根據整個電力系統(tǒng)的運行狀態(tài)對負荷分配進行分析、合理調配、遠程操控開關斷路器、躲避峰值,填補谷態(tài),把握電網安全平穩(wěn)運行、異常狀況處理的主動性,本質安全型的規(guī)避誤操作、避免人為判斷失誤,縮短電網供電中斷時間,提高系統(tǒng)供電的可靠性。系統(tǒng)通過簡單明了的界面,依靠嚴密的設計理念,強大的硬件配備,精細的軟件全方位控制協(xié)調,表現出了整個系統(tǒng)豐富的功能及強悍的性能,應用前景廣闊,實用性極強。系統(tǒng)投入應用后,基本達到了預期的效果,充分體現出了研究的意義與價在環(huán)境檢測領域中,空氣質量指數是評價環(huán)境好壞的一個重要指標。隨著大眾生活品質的提高,在居民生活中出現的頻率也大幅提高。大氣污染是世界各國面臨的最嚴峻環(huán)境問題,中國大氣環(huán)境面臨的形勢尤其嚴峻,大氣污染物排放總量居高不下??諝庾鳛槿祟惿姝h(huán)境的必備條件,是衡量的標準之一,舒適的空氣環(huán)境是大多數自然的核心競爭力[1]。
在系統(tǒng)最關鍵的數據處理上,為了搭建一個高內聚低耦合、程序可復用程度高的前后端分離的MVC框架,系統(tǒng)采用Spring、Struts2以及ORM框架Spring Data Jpa進行開發(fā)。在硬件上,為了在低能耗與保證傳輸數據的穩(wěn)定性與數據可靠性中間找到最優(yōu)解,系統(tǒng)選擇使用 ZigBee 與GPRS進行UDP數據傳輸[2]。
系統(tǒng)首先通過采集終端采集的空氣質量基礎數據,將數據發(fā)送到服務器,通過系統(tǒng)對數據的自動分析產生有效空氣質量數據。用戶通過可視化界面請求空氣服務時,系統(tǒng)利用數據提供相應的服務。另一方面,系統(tǒng)管理員通過管理接口管理系統(tǒng)。系統(tǒng)數據流程如圖1所示。
圖1 系統(tǒng)數據流程
數據采集過程分為以下2個步驟:①通過空氣采集終端采集空氣質量基礎數據,如 PM2.5、SO2等空氣污染物的濃度值,通過 ZigBee 網絡發(fā)送到協(xié)調器。協(xié)調器通過UDP協(xié)議將數據投放到服務器 UDPServer 中。②服務器解析數據以及將數據持久化[3]。
總體流程如圖2所示。通過ZigBee模塊上集成的傳感器模塊組采集空氣中污染物濃度以及溫濕度等數據之后,ZigBee模塊初步校驗數據產生校驗和并使用“智慧空氣質量傳輸協(xié)議”將數據封裝為16進制數組發(fā)送到協(xié)調器,協(xié)調器通過GPRS將數據發(fā)送到服務器指定端口[4]。采集網絡數據流程如圖3所示。
圖2 數據采集數據流
圖3 前端傳感網絡數據流
數據到達服務器之后,服務器首先使用“智慧空氣質量傳輸協(xié)議”對數據進行解析,然后校驗數據完整性以及準確性,確定沒有問題之后將數據持久化,如果數據出錯則將數據拋棄[5],持久化過程數據流如圖4所示。
圖4 持久化數據流
系統(tǒng)在數據服務上提供6種服務,具體包括:①空氣質量指數服務;②排行服務;③空氣質量、人體舒適度周期變化服務;④數據地圖服務;⑤天氣及出行指數服務;⑥具體污染物濃度變化趨勢服務。
系統(tǒng)采集終端將大量的空氣質量基礎數據發(fā)送到服務器,基礎數據無法形成規(guī)律以及排行。所以系統(tǒng)需要自動完成數據解析、計算以及持久化的工作,以便提供準確、高效的數據服務。
系統(tǒng)為管理員提供管理服務。通過系統(tǒng)管理服務,管理員可以管理以及下所有監(jiān)測點。系統(tǒng)管理服務數據流如圖5所示。
圖5 系統(tǒng)管理服務
通過分析系統(tǒng)需求,根據空氣質量基礎數據數據流在系統(tǒng)中各個模塊中扮演的角色以及出現的先后順序以及方式,設計系統(tǒng)的總體架構。系統(tǒng)從采集空氣質量基礎數據的采集終端設計開始,到采集設備網絡組網方式以及通信協(xié)議設計實現、終端數據校驗,再到數據傳輸過程協(xié)議設計實現、中心數據服務器框架搭建以及多種空氣質量算法的編碼實現、服務器外部接口的調用方式與文檔的規(guī)范,最后將數據傳輸到用戶所能訪問到的前端設備中進行數據可視化展示,完成系統(tǒng)的整體架構中數據流動方式設計實現[6]。從數據角度出發(fā),對系統(tǒng)業(yè)務分析后對系統(tǒng)總體設計如圖 6所示 。
圖6 系統(tǒng)總體設計
對電力通信環(huán)境監(jiān)測傳輸網絡如圖7所示,數據采集終端網絡是由整合了多種空氣質量傳感器和電力監(jiān)控傳感器節(jié)點組成的,具有自組網、可通過網絡訪問服務器等特點的監(jiān)測點網絡。首先傳感器采集到SO2、NO2、PM2.5等數據之后使用數據傳輸協(xié)議對原始數據進行封裝以及產生校驗和之后,通過傳輸網絡將數據發(fā)送發(fā)協(xié)調器,通過UDP協(xié)議將數據發(fā)送到服務器[7]。
圖7 電力通信環(huán)境監(jiān)測傳輸網絡
根據數據采集終端的功能設計以及終端需要采集的數據,需要將采集環(huán)境中的空氣質量數據的傳感器以及終端與協(xié)調器間數據傳輸功能在每一個終端節(jié)點上實現。無線傳感網絡中的終端節(jié)點由傳感器模塊、ZigBee C2530核心模塊和電源模塊構成[8]。傳感器模塊負責內的空氣質量信息的采集和數據轉換; ZigBee核心模塊負責控制整個終端節(jié)點的操作,存儲以及轉化采集到的以及來自其他子節(jié)點的數據為特定數據協(xié)議格式;電源模塊提供終端節(jié)點運行所需要的能量,由于終端節(jié)點設計,傳感器模塊組需要較大功率以及穩(wěn)定的電流[9]??諝獠杉K端如圖8所示。
圖8 ZigBee 采集終端
采集網絡設計中主要考慮的地形地貌以及基礎設施選擇適用的節(jié)點數量、分布以及ZigBee節(jié)點組網方式。由于ZigBee采用自組網的方式,只要設備彼此間在網絡模塊的通信范圍內,通過彼此自動尋找確定聯絡很方便設備在中的布置。采集終端之間的組網方式在通常情況下采用網狀網絡。在實際應用中由于各種各樣的因素,無法保證所有的無線信道通暢以及每一個設備不產生故障。這種組網方式在某一個終端出現故障的情況下最大限度保證其他終端數據能夠進行傳輸[10]。
采集網絡經過如圖9的流程組網之后,節(jié)點在加入網絡時在相鄰表中所有父節(jié)點中選擇一個深度最小、信號最強的節(jié)點加入,如果加入失敗則,遞歸這一過程直至加入網絡成功。
圖9 ZigBee組網過程
終端以及協(xié)調器在布置到的同時,會記錄節(jié)點所屬的Id、節(jié)點Id、經度、緯度同時存儲到數據庫中,用于唯一確定一個節(jié)點所采集的數據。數據在轉發(fā)到協(xié)調器上并校驗無誤之后,協(xié)調器使用GPRS模塊將數據發(fā)送到的服務器指定端口上。
空氣質量采集網絡數據傳輸協(xié)議設計主要從系統(tǒng)的穩(wěn)健性和可靠性以及數據一致性出發(fā)。消息發(fā)送協(xié)議則定義了數據傳輸格式進行封裝傳輸以及解析,從而避免傳輸過程中數據包沖突、數據誤差等數據錯誤。
數據在前端傳感網絡發(fā)送到服務器后,服務器首先使用“智慧數據傳輸協(xié)議”解析數據、校驗數據,之后將實時數據持久化。處理過程數據流如圖10所示。
圖10 處理過程
為方便數據傳輸到服務器之后對數據進行解析、校驗以及與數據庫實時數據表行成映射,系統(tǒng)中定義了數據傳輸格式以及數據校驗方式。協(xié)議中定義了頭碼、數據長度、主節(jié)點編號、子節(jié)點編號、校驗以及定義了傳輸數據中每一個字節(jié)所對應的空氣質量類型以及長度。
為了實現電力通信數據的整體仿真,需要將變電站一次設備模型的運行數據傳送給二次設備,相互反饋。以110 kV的線路保護為例,有2臺110 kV的線路保護斷路器對110 kV輸電線路進行保護,將仿真模型數據與110 kV保護設備1通過信號發(fā)生器(作為合并單元)連接,信號發(fā)生器在2個設備之間一端通過網線另一端通過雙模光纖進行數據的傳輸。另一端,在電腦仿真中打包同樣的仿真模型數據與110 kV保護設備2通過信號發(fā)生器(作為合并單元)連接,同時,兩保護設備之間要通過光纖進行收、發(fā)兩端的連接。具體連接如圖11所示。
由于數據采集網絡使用UDP協(xié)議發(fā)送空氣質量數據,數據服務器需要設計一個使用UDP協(xié)議接收數據的Socket服務器用于接收數據。UDP是一種基于不可靠連接的傳輸協(xié)議,不需要建立連接,并且沒有使用Socket 以及SocketServer 來區(qū)分服務器和客戶端。區(qū)別于基于流進行傳輸的TCP協(xié)議,UDP服務器一般是順序迭代的處理過程。利用UDP進行網絡通信主要由兩個類來參與,一個是用來將數據的字節(jié)填充到UDP數據包中、收發(fā)UDP數據報的DatagramPacket。另一個是用來建立連接,表示用來發(fā)送和接收數據報包的套接字的DatagramSocket,數據報套接字是UDP數據報傳輸的發(fā)送或接收點。在服務器綁定 IP、端口之后等待客戶端請求、讀取請求、處理以及發(fā)回響應這樣一個迭代過程中,當服務器處理一個請求所需要的時間比較長,或者由于數據包丟失使得服務器始終處于阻塞模式,可能導致服務器無法處理其他的請求陷入數據故障。為避免這種情況發(fā)生,項目中的處理方法是使用多線程并發(fā)處理。服務器在接收到一個請求之后,直接交給線程處理,線程處理完成之后新建一個線程,處理來自客戶端的數據報以響應請求,并且在線程之中完成將數據校驗和持久化到數據庫的過程。
數據可能在傳輸過程中出現錯誤,所以項目在設計之初就設計了一套數據校驗的方案,即在傳輸數據的最后一位為整個數據的校驗和。校驗和是將數據部分的所有位相加,去除溢出的部分就是據校驗和。如果校驗和與數據中的校驗和不一致就拋棄數據。要將數據存儲到數據庫中,需要構建一個與數據對應的POJO,根據“智慧傳輸協(xié)議”中每一個字節(jié)對應哪個屬性解析數據,將解析出來的數據與屬性形成映射關系,通過使用 SpringDataJpa 將POJO持久化到數據庫中。數據持久化流程如圖12所示。
圖12 數據持久化流程
數據采集網絡在設計上為了使數據盡可能準確以及最新,采用了短周期采集發(fā)送的方法,因此在數據庫會出現大量的空氣質量基礎數據。數據可視化完全依賴于精確有效的數據,基礎空氣質量數據中有大量無效的、重復的、無規(guī)律的數據無法作為數據可視化的源數據進行使用。對基礎數據的處理是本系統(tǒng)的核心所在,下面對系統(tǒng)自動分析數據的過程以及算法進行描述。
應用對象測試,應用對象為某電力公司下屬一企業(yè),系統(tǒng)測試準則為實現了本項目的軟件需求規(guī)格說明書中所有功能,在正常使用過程中沒有出現數據以及其他錯誤,系統(tǒng)運行及業(yè)務處理正常。確保測試的功能正常,包括數據變化曲線、數據地圖等功能。測試中所發(fā)現的錯誤已經全部得到修復。非功能需求滿足需求規(guī)格說明書中規(guī)定要求。
當測試的內容都達到軟件需求規(guī)格說明書要求,解決了所有已發(fā)現的問題。遺留問題中無致命性和嚴重性錯誤,一般性缺陷不能超過總數的2%,輕微性缺陷不能超過8%,遺留缺陷總數不能超過缺陷總數的10%時,測試可結束,當系統(tǒng)在部署期間或使用過程中發(fā)現嚴重缺陷或客戶需求已發(fā)生重大變化時,系統(tǒng)測試重新啟動。
系統(tǒng)使用阿里云性能測試功能對系統(tǒng)計算集中型以及數據庫訪問集中型業(yè)務進行測試,包括數據排行、數據地圖、空氣質量變化趨勢、污染物濃度變化趨勢等業(yè)務。首先固定50的并發(fā)用戶數在10 min內持續(xù)訪問相應業(yè)務的接口,對系統(tǒng)各項性能指標進行記錄。然后以初始1用戶數,每秒以3個遞增并發(fā)量,最大值50并發(fā)用戶數,持續(xù)30 min訪問相應業(yè)務接口測試系統(tǒng)性能。
(1)持續(xù)10 min,固定50并發(fā)量模式。在10 min的周期內,固定50并發(fā)用戶數對相應業(yè)務接口持續(xù)訪問的情況下,接口調用的成功率為100%,系統(tǒng)吞吐量平均值為39.65次/s,平均響應時間為1 248.22 ms。
(2)持續(xù)30 min,并發(fā)量遞增模式。在并發(fā)用戶數遞增情況下持續(xù)30 min對相應業(yè)務接口進行訪問,接口調用成功率為100%,系統(tǒng)吞吐量平均值為37.85次/s,平均響應時間為1 360.09 ms。系統(tǒng)響應時間隨著并發(fā)用戶數增大,響應時間隨著明顯增大。系統(tǒng)對并發(fā)處理穩(wěn)定,未出現接口調用錯誤情況。系統(tǒng)吞吐量結果如圖13所示,系統(tǒng)響應時間如圖14所示,系統(tǒng)并發(fā)用戶數如圖15所示。
圖13 系統(tǒng)吞吐量
圖14 系統(tǒng)響應時間
圖15 并發(fā)用戶數
系統(tǒng)經過以上兩種性能測試規(guī)則,系統(tǒng)性能表現穩(wěn)定,符合設計需求。
在系統(tǒng)實現時,首先給出了系統(tǒng)的總體設計,從搭建服務器的框架到前端實現方式以及第三方接口和類庫的調用,給出了系統(tǒng)功能結構和數據庫設計。在采集終端網絡設計時給出了終端網絡實現方式、制訂數據傳輸方式以及協(xié)議。在設計數據分 析及可視化時,給出數據分析的關鍵算法的核心代碼以及類圖和主要模塊的實現的效果圖。最后對系統(tǒng)進行測試,從測試結果看,系統(tǒng)基本根據需求說明完成開發(fā)并穩(wěn)定運行。系統(tǒng)在開發(fā)工程中始終貫徹高內聚低耦合的開發(fā)思想,所以系統(tǒng)的擴展性比較強。另外系統(tǒng)處理數據的方式為經過優(yōu)化的多線程方式可以容納較高的并發(fā)量,如果系統(tǒng)業(yè)務范圍擴張可以對系統(tǒng)數據庫進行分庫分表、MapReduce處理。另外空氣質量數據具有很高的數據挖掘價值,對空氣質量的長期監(jiān)控產生的大量的空氣質量基礎數據可以產生很良好的效益。