李姍姍*,孫曉玲,張艷霞
(1.防災(zāi)科技學(xué)院信息工程學(xué)院,河北廊坊;2.防災(zāi)科技學(xué)院智能應(yīng)急信息處理研究所,河北廊坊)
隨著光伏發(fā)電規(guī)模的不斷擴大,監(jiān)控系統(tǒng)在這一領(lǐng)域的地位日益重要。傳統(tǒng)的分布式光伏監(jiān)控系統(tǒng)通常采用C/S 開發(fā)模式構(gòu)建,通常被稱為SCADA(Supervisory Control and Data Acquisition)系統(tǒng)。在這種模式下,需要在每個客戶端設(shè)備上部署客戶端應(yīng)用程序。然而,分布式光伏發(fā)電系統(tǒng)遍布各種地理環(huán)境,包括遙遠偏僻地區(qū)和極端惡劣氣候條件下。因此,采用這種系統(tǒng)需要高昂的經(jīng)濟和運營成本,這不僅限制了系統(tǒng)的覆蓋范圍,還增加了系統(tǒng)的維護和管理難度。
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,將傳統(tǒng)監(jiān)控系統(tǒng)與Web 技術(shù)融合,并引入大數(shù)據(jù)和人工智能分析,已成為近年來的熱點研究開發(fā)領(lǐng)域。這種基于Web 的分布式監(jiān)控系統(tǒng)被稱為Web SCADA 系統(tǒng)。采用B/S 開發(fā)模式,無需在客戶端設(shè)備上進行安裝部署,并且具有跨平臺兼容性,使得用戶可以通過Web 瀏覽器遠程監(jiān)控設(shè)備的運行狀態(tài)。文獻[1]將Web SCADA 系統(tǒng)與物聯(lián)網(wǎng)設(shè)備集成,傳感器和設(shè)備的數(shù)據(jù)通過互聯(lián)網(wǎng)傳輸?shù)絎eb SCADA 系統(tǒng),實現(xiàn)實時監(jiān)控。文獻[2-5]利用云計算和大數(shù)據(jù)分析技術(shù),以實現(xiàn)更高效、可擴展的數(shù)據(jù)存儲和處理。然而,他們采用的Web 技術(shù)比較老舊,大部分都是基于一體化的Web 技術(shù),這樣帶來的弊端是,運行可靠性和穩(wěn)定性都存在一定的問題。
我們采用前后端分離技術(shù)設(shè)計實現(xiàn)了一個前后端分離的Web SCADA 系統(tǒng),前端采用vue+ElementUI 的框架,該框架基于MVVM (Model-View-View-Model)的理念,實現(xiàn)了雙向數(shù)據(jù)綁定,減少了開發(fā)工作量;后端采用SpringBoot 框架,為數(shù)據(jù)接入和前后數(shù)據(jù)處理提供了基于數(shù)據(jù)驅(qū)動的模式,降低了開發(fā)難度。同時,引入大數(shù)據(jù)存儲和處理分析技術(shù),能夠?qū)崟r監(jiān)測每臺光伏逆變器的運行參數(shù)以及整個光伏發(fā)電系統(tǒng)的性能參數(shù),并進行智能數(shù)據(jù)挖掘、深度分析和預(yù)測。
數(shù)據(jù)采集框架如圖1 所示。元數(shù)據(jù)管理模塊提供平臺運行的需要用到的基礎(chǔ)配置數(shù)據(jù),包括規(guī)約庫的管理、基礎(chǔ)表管理、告警引擎和鏈路方式;工程實施模塊根據(jù)工程的需求,按照元數(shù)據(jù)管理模塊提供的配置數(shù)據(jù)進行建立通道、配置點表、告警配置和歷史存儲配置等操作;程序啟動模塊按照工程實施的接口進行加載參數(shù),按照配置的通道配置的規(guī)約動態(tài)加載規(guī)約庫進行數(shù)據(jù)采集,主要的過程為啟動通道、加載點表、加載告警引擎和加載歷史存儲引擎;實時監(jiān)視模塊根據(jù)規(guī)約采集的數(shù)據(jù)進行實時庫存儲,實時庫提供接口為實時監(jiān)視工具提供數(shù)據(jù)服務(wù),數(shù)據(jù)轉(zhuǎn)發(fā)根據(jù)配置為其他應(yīng)用提供規(guī)約轉(zhuǎn)發(fā)服務(wù);歷史數(shù)據(jù)管理模塊從實時庫中按照配置周期遍歷數(shù)據(jù)存到歷史數(shù)據(jù)庫中,供歷史查詢工具查詢和實現(xiàn)斷點續(xù)傳功能。
圖1 數(shù)據(jù)采集平臺框架
為了支持光伏監(jiān)控系統(tǒng)的事務(wù)型數(shù)據(jù)處理,我們采用成熟的數(shù)據(jù)倉庫ClickHouse 來存儲關(guān)鍵數(shù)據(jù)。這包括光伏電站的設(shè)備狀態(tài)、運行日志、異常報告等關(guān)鍵信息。ClickHouse 是一個開源的分布式列式數(shù)據(jù)庫管理系統(tǒng),其數(shù)據(jù)存儲和查詢引擎都是專門為高性能而設(shè)計的,能夠處理TB 級別的數(shù)據(jù),并在毫秒級別內(nèi)提供查詢結(jié)果?;贑lickhouse 的分布式存儲架構(gòu)如圖2 所示。
圖2 基于Clickhouse 的分布式存儲架構(gòu)
由于Mysql 一張表的記錄超過一千萬條會帶來性能下降的問題,因此,如果采用一張表存儲歷史數(shù)據(jù)是不可行。得益于Clickhouse 的分布式存儲機制,一張表可以容納上百億條記錄還可以保證高性能使用,本文提出采用一張表存儲歷史數(shù)據(jù),該存儲方案有如下的優(yōu)點:(1) 高并發(fā)。采用netty 高并發(fā)技術(shù)處理高并發(fā)連接場景,可輕松處理數(shù)百萬的客戶端請求。支持docker 部署,可高效部署到容器節(jié)點中。(2) 分布式。分布式數(shù)據(jù)庫的數(shù)據(jù)可以分散在不同的節(jié)點上,保證數(shù)據(jù)的高可靠性。同時可以支持大規(guī)模數(shù)據(jù)集及水平擴展。(3) 支持復(fù)雜查詢。支持多種復(fù)雜查詢,包括聚合、排序、過濾和窗口函數(shù)等。(4) 實時數(shù)據(jù)處理。支持實時數(shù)據(jù)處理,采用列式存儲數(shù)據(jù),為接收實時數(shù)據(jù)流并將其存儲在數(shù)據(jù)庫中進行分析提供了更加快速的方式,提高了數(shù)據(jù)利用的效率。(5) 易于集成。提供的API 接口有JAVA 和C++語言的,可以方便地集成到各種應(yīng)用程序中,包括數(shù)據(jù)倉庫、數(shù)據(jù)湖、數(shù)據(jù)分析工具等,豐富了開發(fā)場景。
為了加速系統(tǒng)對復(fù)雜或計算代價昂貴的查詢結(jié)果的訪問,我們引入Redis 高速緩存系統(tǒng)。通過定義明確的緩存策略,確定哪些數(shù)據(jù)需要被緩存,以及設(shè)置合適的緩存失效時間和更新策略,系統(tǒng)可以實現(xiàn)快速的數(shù)據(jù)訪問。此外,數(shù)據(jù)預(yù)熱和分布式緩存將用于降低查詢延遲和支持高并發(fā)讀取請求。對于采集光伏設(shè)備實時數(shù)據(jù),采用key-value 方式存儲,存儲方案如圖3 所示。
圖3 key-value 方式存儲
根據(jù)Redis 的規(guī)則,一個集群只能有16384 個槽,編號0-16383(0-2^14-1)。這些槽會分配給集群中的所有主節(jié)點,分配策略按照平均分配的方式。光伏設(shè)備采集點的唯一id 采用int 類型表示,當(dāng)需要在Redis集群中存儲成一個key-value 時,redis 先對id 使用crc16 算法算出一個結(jié)果,然后把結(jié)果對16384 求余數(shù),這樣每個id 都會對應(yīng)一個編號在0-16383 之間的哈希槽,也就是映射到某個節(jié)點上。
Web 組態(tài)構(gòu)架前端使用vue、element、canvas、svg、websocket、mqtt、echart 等開源生態(tài)組件,基于node、webpack4 環(huán)境編譯構(gòu)建。Vue.js 具有雙向數(shù)據(jù)綁定、組件化開發(fā)和易于學(xué)習(xí)的特點。Element UI 作為UI組件庫,以提供現(xiàn)成的UI 元素,如表格、表單、對話框等,以便用戶可以輕松地與系統(tǒng)交互。此外,本文利用HTML5 的Canvas 和SVG 技術(shù)來實現(xiàn)圖形化控制回路的設(shè)計,允許用戶以拖放元素的方式構(gòu)建和配置電路。集成了ECharts 圖表庫,以創(chuàng)建交互式圖表和可視化元素,幫助用戶更好地理解光伏發(fā)電數(shù)據(jù)。實施單點登錄和簡化認(rèn)證機制,以提高系統(tǒng)的安全性和用戶體驗。后端采用springcloud、shiro、jwt、websocket、mysql生態(tài)架構(gòu)體系。第三方業(yè)務(wù)系統(tǒng)按組態(tài)提供的標(biāo)準(zhǔn)接口規(guī)范進行對接,提供單點登錄及簡化認(rèn)證兩種方式。
本文設(shè)計實現(xiàn)了一個交互式圖形界面,允許用戶創(chuàng)建和配置電路。通過Canvas 和SVG 技術(shù),用戶可以從元素庫中選擇設(shè)備和組件,然后將它們拖放到頁面上。實時編輯功能允許用戶添加、刪除和連接元素,以便他們可以實時調(diào)整電路的配置。這種圖形化控制回路設(shè)計使用戶能夠以直觀的方式管理光伏發(fā)電設(shè)備。
界面分為四個區(qū)域:(1) 工具欄區(qū)域:在畫面頂部,支持新建、導(dǎo)入(多種格式)、導(dǎo)出(多種格式)、添加構(gòu)件(構(gòu)件、相機、燈光)、保存、發(fā)布、刪除、清空歷史、復(fù)制、移動等功能;(2) 圖元組件:在畫面左邊區(qū)域,包括光伏、電力系統(tǒng)常用的圖元;(3) 畫圖區(qū)域:在畫面中間區(qū)域,通過托拉拽的方式根據(jù)圖元組件進行構(gòu)圖,實現(xiàn)監(jiān)控畫面的編輯構(gòu)建功能;(4) 畫布屬性區(qū)域:在畫面的右邊區(qū)域,支持編輯畫布的屬性、通信接口屬性配置、圖元和點點、設(shè)置圖元動畫等功能。
采集到的數(shù)據(jù)首先進入采集和清洗系統(tǒng),以從光伏監(jiān)控設(shè)備實時獲取準(zhǔn)確的數(shù)據(jù),并在預(yù)處理階段處理缺失值和異常數(shù)據(jù)。采用Hadoop HDFS 分布式數(shù)據(jù)存儲,并使用適當(dāng)?shù)臄?shù)據(jù)分區(qū)和索引策略,以提高數(shù)據(jù)檢索性能。利用機器學(xué)習(xí)、深度學(xué)習(xí)和統(tǒng)計分析技術(shù),構(gòu)建一個多功能的模型庫,內(nèi)含各種數(shù)據(jù)智能分析模型,覆蓋了故障預(yù)測、組件衰減、逆變器轉(zhuǎn)換效率等關(guān)鍵領(lǐng)域。
智能分析流程包括:(1) 數(shù)據(jù)收集和預(yù)處理,獲取光伏系統(tǒng)實時數(shù)據(jù),包括電流、電壓、溫度、輻照度等,進行異常值處理和數(shù)據(jù)歸一化。(2) 特征工程,提取與故障、衰減和逆變器效率相關(guān)的特征。(3) 模型選擇,構(gòu)建和定制不同需求的模型,考慮精度與簡單性。(4) 模型訓(xùn)練和調(diào)整,使用歷史數(shù)據(jù)進行訓(xùn)練和性能評估。(5) 故障預(yù)測,建立模糊規(guī)則檢測不同故障類型。(6) 組件衰減檢測,使用模糊神經(jīng)網(wǎng)絡(luò)追蹤性能衰減趨勢。(7) 逆變器效率提高,根據(jù)數(shù)據(jù)預(yù)測最佳參數(shù),實時調(diào)整逆變器。(8) 實時監(jiān)測和報警,集成模型進行問題檢測和警報通知。(9) 數(shù)據(jù)可視化和報告,提供儀表板和自動生成報告,支持決策制定。
我們搭建了分布式光伏智能監(jiān)控實驗平臺,如圖4 所示,該平臺通過規(guī)約采集模塊實現(xiàn)對光伏逆變器、匯流箱、點表等設(shè)備的數(shù)據(jù)采集,通過實時監(jiān)視模塊實現(xiàn)對采集數(shù)據(jù)的實時監(jiān)控和告警推送,通過大數(shù)據(jù)分析實現(xiàn)逆變器衰減預(yù)警和光伏發(fā)電異常告警等高級功能。為用戶提高了發(fā)電效率和減少了人工成本,取得了顯著效果。
圖4 分布式光伏智能監(jiān)控實驗平臺
傳統(tǒng)分布式光伏監(jiān)控系統(tǒng)在部署和云化方面存在問題。本文引入前后端分離架構(gòu)、分布式數(shù)據(jù)存儲與采集技術(shù),以及領(lǐng)先的互聯(lián)網(wǎng)組件和大數(shù)據(jù)分析技術(shù),提出了一個基于Web 的分布式光伏智能監(jiān)控系統(tǒng)。經(jīng)過廣泛實驗驗證,該系統(tǒng)取得了較好的效果,為其他領(lǐng)域的分布式監(jiān)控系統(tǒng)提供了可行的借鑒經(jīng)驗。