張恒超 ,沈秋英 ,沈 杰 ,李蘇芙 ,范 彪 ,王 琨 ,蔡嘉輝 ,呂自貴
(1. 國網(wǎng)江蘇省電力有限公司蘇州供電分公司,江蘇 蘇州 215004; 2. 江南大學(xué)機(jī)械工程學(xué)院,江蘇 無錫 214122; 3. 江蘇集萃智能制造技術(shù)研究所有限公司,江蘇 南京 210000)
引發(fā)線損異常的因素復(fù)雜多變,高效迅捷的分析、定位并解決線損異常的技術(shù)難度大,不能妥善處理則會(huì)降低臺(tái)區(qū)運(yùn)行的經(jīng)濟(jì)性和穩(wěn)定性[1-2]?,F(xiàn)有的用電檢查技術(shù)主要采用人工輔以部分設(shè)備作業(yè)的現(xiàn)場檢測方式,但往往成本高效率低,準(zhǔn)確率難以保證,開發(fā)一種高效、精準(zhǔn)的竊電偵測技術(shù)對提升電網(wǎng)的穩(wěn)定性與安全性起著重要的促進(jìn)作用。
臺(tái)區(qū)線損異常處理方法有:系統(tǒng)診斷、人工研判、現(xiàn)場排查、采集排查、竊電及違約用電排查和常態(tài)運(yùn)行監(jiān)控。眾多研究人員對臺(tái)區(qū)線損異常處理進(jìn)行了研究,施文[3]等人探究了臺(tái)區(qū)線損的形成原因,提出了具體問題的解決方法,然而在對如何進(jìn)行閉環(huán)線損治理上并未提出見解。邢毓卿[4]等人通過專家系統(tǒng)建立臺(tái)區(qū)線損診斷模型,實(shí)現(xiàn)了對臺(tái)區(qū)線損的異常原因的分析,但在線損異常診斷模型的準(zhǔn)確性上還可以有進(jìn)一步提升。
其中,竊電作為線損異常的重要因素,給電力行業(yè)造成了巨大損失[5]。在美國,每年因電力盜竊造成的損失數(shù)以億計(jì)。傳統(tǒng)的竊電檢測方法成本過高,為解決這個(gè)困境,亟須研究一種迅速、精確的竊電檢測方法。近年來,深度學(xué)習(xí)作為實(shí)現(xiàn)人工智能的關(guān)鍵技術(shù)在多個(gè)領(lǐng)域中迅猛發(fā)展。本文依托海量的電力數(shù)據(jù),提出了基于DenseNet 算法的檢測模型。臺(tái)區(qū)線損異常包括關(guān)口計(jì)量裝置故障、竊電、用戶計(jì)量裝置異常、戶變關(guān)系異常等問題,采用經(jīng)驗(yàn)知識(shí)的方法進(jìn)行判斷[6-7]。
所開發(fā)的系統(tǒng)軟件包含用電采集失敗查詢模塊、任意或連續(xù)日期線損臺(tái)區(qū)查詢模塊、竊電檢測模塊、計(jì)量系統(tǒng)診斷模塊、戶變關(guān)系錯(cuò)誤診斷模塊。從數(shù)據(jù)分析、線損異常診斷、閉環(huán)管理方面,實(shí)現(xiàn)全方位的線損診斷與管控。
本系統(tǒng)以C#和python 作為主要的開發(fā)語言。經(jīng)了解,電網(wǎng)業(yè)務(wù)人員和客戶端多選用Windows 系統(tǒng)作為操作系統(tǒng),而WinForm 框架能夠?yàn)殚_發(fā)者提供多元美觀的窗體控件,開發(fā)效率高且操作簡單,且開發(fā)界面可以達(dá)到良好的可視化效果。據(jù)此,本文的系統(tǒng)開發(fā)將在Windows 窗體的基礎(chǔ)上,使用框架WinForm,利用C#編程語言完成。以國家電網(wǎng)某供電公司所提供的線損相關(guān)歷史用電數(shù)據(jù)為數(shù)據(jù)來源,按照電力行業(yè)的現(xiàn)行標(biāo)準(zhǔn)和規(guī)范,實(shí)現(xiàn)供電公司要求的功能,設(shè)計(jì)開發(fā)出的線損異常診斷系統(tǒng)的功能結(jié)構(gòu)圖如圖1 所示,由臺(tái)區(qū)線損異常診斷模塊和閉環(huán)管理模塊兩個(gè)模塊組成。
圖1 功能結(jié)構(gòu)圖
線損異常臺(tái)區(qū)查詢模塊由統(tǒng)計(jì)線損率考核閾值設(shè)置、單日線損異常臺(tái)區(qū)查詢以及多日線損異常臺(tái)區(qū)查詢3 個(gè)部分組成。該模塊的實(shí)現(xiàn)是基于目前收集到的臺(tái)區(qū)線損與電力歷史數(shù)據(jù),在設(shè)定好并將上述數(shù)據(jù)經(jīng)過相應(yīng)的邏輯算法運(yùn)算后,搜索并篩選出單日或多日內(nèi)的臺(tái)區(qū)線損異常信息,將這些臺(tái)區(qū)線損異常信息加以存儲(chǔ)。
閉環(huán)管理模塊的主要功能是將診斷出的線損異常狀況通過電腦客戶端或者手機(jī)App 及時(shí)發(fā)送給檢修人員,以提升電力維修工作的效率。
為了彌補(bǔ)當(dāng)前常見竊電診斷方式的不足,首先在用戶用電數(shù)據(jù)的基礎(chǔ)上分析用戶的用電行為,提出一種基于DenseNet-RF 的竊電檢測算法,利用供電企業(yè)提供的大量電力數(shù)據(jù)進(jìn)行模型訓(xùn)練,將訓(xùn)練得到的模型與常見的用戶竊電模型作比較,驗(yàn)證提出的竊電檢測模型預(yù)測是否準(zhǔn)確,并對除此之外的導(dǎo)致線損異常的原因與其相對應(yīng)的線損異常情況進(jìn)行分析,得到其它不同的線損異常原因,提出相應(yīng)的線損異常檢測方法,最終形成完整的線損異常診斷流程。
在電網(wǎng)業(yè)務(wù)場景中,很難獲得學(xué)術(shù)上的標(biāo)準(zhǔn)數(shù)據(jù)集。從國家電網(wǎng)某供電公司收集到用電竊電數(shù)據(jù)正反樣本數(shù)量比約為10∶1,以用戶每15 min 的采集頻率記錄用電量情況作為數(shù)據(jù)來源。數(shù)據(jù)集包含臺(tái)區(qū)用戶每日用電量、合同容量以及作為標(biāo)簽的用戶狀態(tài)。將正類1 作為竊電用戶,負(fù)類0 作為正常用戶。大量的客戶用電數(shù)據(jù),為本文研究竊電檢測提供了可靠的數(shù)據(jù)保障。
不平衡的數(shù)據(jù)集會(huì)引發(fā)過擬合的問題,導(dǎo)致預(yù)測結(jié)果向樣本占比大的類別偏移,使得模型的泛化能力弱化。為解決這個(gè)問題,首先采用文獻(xiàn)提出的樣本生成方法生成更多的竊電數(shù)據(jù),同時(shí)采用SMOTE 算法平衡數(shù)據(jù)集當(dāng)中的正常用電樣本數(shù)量和疑似竊電樣本數(shù)量。
此外,為加快網(wǎng)絡(luò)收斂,對用電數(shù)據(jù)作歸一化處理。
式中:max(e)、min(e)分別為樣本最大值和最小值;et為總體樣本里某一值。
通過數(shù)據(jù)預(yù)處理得到同等數(shù)量的正常樣本和竊電樣本共10 000 個(gè)。每次訓(xùn)練時(shí),隨機(jī)抽取其中的8 000 個(gè)樣本數(shù)據(jù)為訓(xùn)練集,其中的2 000 個(gè)樣本數(shù)據(jù)為測試集。
DenseNet 是由黃高博士等設(shè)計(jì)的一種網(wǎng)絡(luò)結(jié)構(gòu),由Dense Block 和Transition Layer 兩個(gè)單元組成。其中,Dense Block 的各層與之后的各層密集連接,2 個(gè)Dense Block 之間通過Transition Layer 連接[8],設(shè)Dense Block 中有i層特征圖層,第i層的輸出記作Xi,第i層的非線性映射記作Hi,Dense Block中包含的密集連接數(shù)目為i×(i+1)/2 ,
式中:Xi=H([Xi-1,Xi-2,···,X1,X0]) 為將第0 層至第i層的輸出根據(jù)通道數(shù)作合并級聯(lián),H() 得到圖層經(jīng)過批量標(biāo)準(zhǔn)化(batch normalization, BN)、激活函數(shù)(rectified linear unit, RELU)、卷積操作(convolution,Conv)等操作以后的輸出。通過合并級聯(lián)可以把卷積操作得到的特征數(shù)據(jù)合并,在進(jìn)行訓(xùn)練時(shí)提高初始特征,進(jìn)而提升圖層使用率和模型分析的精度。層與層間通過Concatenation 連接,Dense Block 結(jié)構(gòu)如圖2 所示。
圖2 Dense Block 示意圖
竊電檢測模型訓(xùn)練基本流程為:首先通過DenseNet 網(wǎng)絡(luò),從智能電測指示儀表數(shù)據(jù)集中獲取得到用戶的電能特性,接著再利用RF 算法使用所獲得的特性參數(shù)訓(xùn)練分類器,然后通過網(wǎng)格搜索算法對特性參數(shù)進(jìn)行優(yōu)選,由此實(shí)現(xiàn)了對隨機(jī)森林分類器的最優(yōu)預(yù)測選擇,進(jìn)而找出疑似竊電行為。模型的輸入為實(shí)際用戶用電數(shù)據(jù),而輸出則為疑似竊電用戶。模型訓(xùn)練流程圖如圖3 所示,其中帶訓(xùn)練網(wǎng)絡(luò)的配置信息如表1 所示,其中k代表特征圖層的增長速率。
表1 DenseNet 及CNN 網(wǎng)絡(luò)參數(shù)配置信息表
圖3 模型訓(xùn)練流程圖
竊電檢測模型訓(xùn)練的具體實(shí)現(xiàn)流程如下。
數(shù)據(jù)預(yù)處理:利用SMOTE 算法,保證得到同樣數(shù)量的正常樣本和竊電樣本,共計(jì)12 096 個(gè)。對全部樣本數(shù)據(jù)作了歸一化處理,隨機(jī)抽取其中的10 000 個(gè)數(shù)據(jù)樣本為訓(xùn)練集,抽取其中的2 096 個(gè)數(shù)據(jù)樣本為測試集。所有用戶電力能耗矩陣的維數(shù)均為534 × 48。
配置網(wǎng)絡(luò)模型:分別通過RF、XGBoost(extreme gradient boosting)和梯度提升樹(gradient boosting decision tree,GBDT)等機(jī)器學(xué)習(xí)算法來訓(xùn)練用戶竊電檢測模型,根據(jù)表1 中的配置參數(shù)訓(xùn)練WDNet、自定義CNN、DenseNet 等用戶竊電檢測模型。
訓(xùn)練過程:利用矩陣變換,讓用戶電力能耗矩陣適應(yīng)于各種算法的特征輸入,包括訓(xùn)練機(jī)器學(xué)習(xí)模型時(shí)調(diào)用scikit-learn 中的算法函數(shù),通過網(wǎng)格搜索算法確定最佳參數(shù),最終輸出相應(yīng)的模型;自定義CNN 的訓(xùn)練過程中首先將矩陣增維至1 × 534 ×48,接著再進(jìn)行網(wǎng)絡(luò)構(gòu)建,最終通過全連接層完成分類,將分類結(jié)果通過向量的歸一化分析后在Softmax 層輸出具體類別。分別構(gòu)建DenseNet-121、DenseNet-169 和DenseNet-201(k=32)三種網(wǎng)絡(luò),為更好地適應(yīng)DenseNet 網(wǎng)絡(luò)的輸入尺寸,需要先把輸入的用戶電力能耗矩陣維數(shù)變換為1 × 178 × 144,在構(gòu)建模型前應(yīng)當(dāng)先做一次卷積操作以提取圖層特征,做一次池化操作對圖層尺寸進(jìn)行壓縮,接著按照表1 中的配置參數(shù)構(gòu)造Dense Block 和Transition Layer 兩個(gè)部分。其中,Dense Block 的作用主要是促進(jìn)信息的特征重用,在Transition Layer 中,1 × 1卷積層的作用主要是降低矩陣維數(shù),2 × 2 平均池化層的作用主要是壓縮圖層尺寸,以減少網(wǎng)絡(luò)參數(shù),經(jīng)過池化操作以后,在全連接層中對圖層信息完成分類,接著再在Softmax 層中做向量歸一化,最后輸出特定類別。每個(gè)算法函數(shù)將生成k個(gè)特征圖,k為輸入層通道數(shù)。在這一步中,更改不同超參數(shù)k,以比較不同DenseNet 模型的優(yōu)劣。
存儲(chǔ)訓(xùn)練結(jié)果,選擇最優(yōu)模型:向訓(xùn)練得到的各模型中輸入事先準(zhǔn)備好的測試集并得到訓(xùn)練結(jié)果,比較不同模型生成的分類結(jié)果以及測試集標(biāo)注的真實(shí)標(biāo)簽是否對應(yīng),以此評判該模型的優(yōu)劣,選擇最優(yōu)的DenseNet 模型。
融合模型:在上一步模型訓(xùn)練中,得到最優(yōu)DenseNet 以后,修改優(yōu)化模型參數(shù),接著利用隨機(jī)森林算法對圖層特征進(jìn)行二次訓(xùn)練,最終獲得DenseNet-RF 模型。
診斷疑似竊電用戶:從輸出的分類結(jié)果中,能夠判斷用戶是否存在竊電嫌疑。其中,竊電檢測模型以智能電測指示儀表數(shù)據(jù)為輸入,以疑似竊電用戶為輸出。
為驗(yàn)證DenseNet 模型的可靠性,使用數(shù)據(jù)集對竊電檢測模型開展了分析。測試設(shè)備配置為Windows 10,CPU 為AMD Ryzen 5 1400,顯卡為RTX 2070,總內(nèi)存8 GB;采用tensorflow 深度學(xué)習(xí)框架和scikitlearn 機(jī)器學(xué)習(xí)框架進(jìn)行研究。DenseNet 和CNN 模型通過多輪訓(xùn)練獲得,其訓(xùn)練過程如圖4(a)(b)(c)所示。另外本文還比較了其他常用的機(jī)器學(xué)習(xí)算法,包括支持向量機(jī)(SVM),隨機(jī)森林(Random Forest,RF),梯度增強(qiáng)決策樹(GBDT)和邏輯回歸(LR),其訓(xùn)練結(jié)果能夠通過調(diào)用scikit-learn 的庫函數(shù)讀出,訓(xùn)練結(jié)果表2 所示。
表2 算法的參數(shù)配置與測試集準(zhǔn)確率
圖4 訓(xùn)練過程曲線
根據(jù)以上結(jié)果,可得結(jié)論如下:在時(shí)間成本方面,相較于普通CNN 算法,DenseNet-121 網(wǎng)絡(luò)模型的迭代次數(shù)最少,模型收斂也更快,相應(yīng)的模型訓(xùn)練所需時(shí)間更少;在模型準(zhǔn)確度方面,DenseNet-121 網(wǎng)絡(luò)模型相較于普通CNN、RF、GBDT、LR和SVM 等機(jī)器學(xué)習(xí)算法在測試集中分類準(zhǔn)確率明顯更高,在測試集中準(zhǔn)確率達(dá)到95.18%,由此可見DenseNet 模型用于檢測用戶是否存在竊電行為表現(xiàn)出良好的準(zhǔn)確性。
將通過tensorflow 訓(xùn)練好的模型以H5 格式保存,利用flask 部署模型,可以在系統(tǒng)軟件中調(diào)用該模型進(jìn)行預(yù)測。模型部署應(yīng)用流程圖如圖5 所示。
圖5 模型部署應(yīng)用流程圖
臺(tái)區(qū)線損異常原因包括用電采集失敗、計(jì)量系統(tǒng)問題、竊電、戶變關(guān)系錯(cuò)誤等,在本系統(tǒng)中采用不同的模塊來實(shí)現(xiàn)各類功能。
該模塊包括近期、長期采集失敗查詢與任意或連續(xù)日期線損異常臺(tái)區(qū)查詢。近期、長期采集失敗查詢是根據(jù)線損率、用戶參與率以及可參照線損率來進(jìn)行邏輯判斷。如圖6 所示為近期、長期采集失敗查詢的具體判斷流程,a表示線損率閾值下限,b表示線損率閾值上限。
圖6 GIGWOBP 預(yù)測值
任意或連續(xù)日期線損臺(tái)區(qū)查詢模塊包括歷史日期內(nèi)任意兩日都存在線損異常臺(tái)區(qū)查詢與連續(xù)多日的線損的異常臺(tái)區(qū)查詢,將查詢的日期范圍和閾值輸入即可實(shí)現(xiàn)查詢,并可將持續(xù)線損的臺(tái)區(qū)以不同的命名方式存入數(shù)據(jù)庫中,并在列表中顯示。任意或連續(xù)日期線損臺(tái)區(qū)的分析過程如圖7 所示。當(dāng)日的線損異常臺(tái)區(qū)信息表記為allLoss,持續(xù)線損數(shù)據(jù)表記為ChiX,持續(xù)負(fù)損數(shù)據(jù)表記為ChiF,持續(xù)高損數(shù)據(jù)表記為ChiG。
圖7 任意或連續(xù)日期線損臺(tái)區(qū)查詢模塊流程圖
3.2.1 關(guān)口計(jì)量裝置故障診斷模塊
根據(jù)當(dāng)日線損異常臺(tái)區(qū)信息表,可以查詢到存在線損異常的臺(tái)區(qū)信息,向計(jì)量系統(tǒng)問題診斷模塊中導(dǎo)入臺(tái)區(qū)主變當(dāng)日的電流曲線數(shù)據(jù),包含日期、點(diǎn)數(shù)、相序和每15 min 采集的電流數(shù)據(jù)等。可通過以下方法實(shí)現(xiàn)對計(jì)量系統(tǒng)問題進(jìn)行有效判斷,具體過程如下。
根據(jù)技術(shù)人員提供的經(jīng)驗(yàn)知識(shí):任意電流相中存在連續(xù)時(shí)刻電流值為0 時(shí),即可判定為疑似關(guān)口連片未合或互感器故障。
臺(tái)區(qū)總表中任意一相電流值高出另外兩相的成倍數(shù)關(guān)系時(shí),即可判定為疑似臺(tái)區(qū)關(guān)口表互感器變比錯(cuò)誤。
3.2.2 用戶計(jì)量裝置異常診斷模塊
在持續(xù)高損數(shù)據(jù)表中,可以查詢到系統(tǒng)內(nèi)上傳的所有歷史線損持續(xù)高損的臺(tái)區(qū)信息。在此模塊中導(dǎo)入臺(tái)區(qū)主變的供電損失數(shù)據(jù)。
根據(jù)技術(shù)人員提供的經(jīng)驗(yàn)知識(shí):當(dāng)連續(xù)多日線損率高于預(yù)設(shè)定閾值同時(shí)結(jié)合合格標(biāo)簽均為不合格時(shí),即可判定線損異常原因?yàn)橐伤朴脩粲?jì)量裝置異常或疑似戶變關(guān)系異常。
MQTT 是一種采用二進(jìn)制消息的發(fā)送/訂閱編程方式的即時(shí)通信技術(shù),也是一種基于輕量級的訂閱/發(fā)送方式的消息發(fā)送物聯(lián)網(wǎng)傳輸方式[9]。MQTTnet是一種基于MQTT 通信協(xié)議的分布式數(shù)據(jù)庫。本軟件在MQTT 服務(wù)端軟件的基礎(chǔ)上,開發(fā)了一款桌面級的MQTT 客戶端,應(yīng)用一款名為mqtt_client 的安卓軟件,通過花生殼內(nèi)網(wǎng)穿透軟件實(shí)現(xiàn)用戶手機(jī)客戶端消息的訂閱和發(fā)布,可實(shí)現(xiàn)電腦和手機(jī)的線損異常原因的閉環(huán)接收與反饋。
本文從江蘇省蘇州市國家電網(wǎng)抽取了6000 條數(shù)據(jù)導(dǎo)入到線損異常診斷系統(tǒng),設(shè)定閾值5%,查出189 條單日線損異常數(shù)據(jù),65 條多日線損異常數(shù)據(jù)。其中經(jīng)系統(tǒng)監(jiān)測判定23 條數(shù)據(jù)存在竊電嫌疑。經(jīng)人員現(xiàn)場查驗(yàn),該23 戶存在竊電行為。
本文通過分析多種線損異常情況,結(jié)合某電網(wǎng)公司的線損相關(guān)歷史數(shù)據(jù),提出了一種基于深度學(xué)習(xí)的線損異常原因診斷系統(tǒng)的研究方案,訓(xùn)練了基于DenseNet 的竊電檢測模型,同時(shí)比較了現(xiàn)有常用機(jī)器學(xué)習(xí)算法的竊電檢測效果并完成了模型的系統(tǒng)部署。實(shí)驗(yàn)結(jié)果表明,基于DenseNet 的竊電檢測模型準(zhǔn)確性較高。另外,本文提出了基于經(jīng)驗(yàn)知識(shí)的線損異常診斷方案,配套開發(fā)了相應(yīng)的診斷模塊以及基于開源庫的線損異常閉環(huán)管理模塊。本文所研究的方法對多方面的線損異常原因進(jìn)行診斷,目標(biāo)降低臺(tái)區(qū)線損異常狀況分析的時(shí)間成本,提高監(jiān)測與治理的工作效率,幫助構(gòu)建智能化的電網(wǎng)環(huán)境。