?

基于爬山—蟻群—FCM模糊聚類的不良負荷數據辨識

2022-05-21 06:54甘迪金巖磊葛立青郭鑫溢
電力大數據 2022年1期
關鍵詞:爬山聚類負荷

甘迪, 金巖磊, 葛立青,郭鑫溢

(南京南瑞繼保電氣有限公司,江蘇 南京 211100)

近年來,隨著我國大力建設智能電網,電力系統涌入了海量的實時數據[1-3]。負荷數據與負荷預測、電力系統狀態估計息息相關,但數據測量、傳輸等環節出現的偶發故障和干擾,使得電力系統出現了與實際值偏差較大的不良負荷數據,干擾電力調度的決策,威脅電力系統的安全穩定運行。有效不良負荷數據辨識有助于提高電力系統分析計算準確度,提升智能用電水平和電網的安全性。

目前數據辨識領域的研究成果較多。文獻[4]采用空間密度聚類和異常數據域方法進行負荷異常值識別。文獻[5]引入小波閾值去噪和多維核密度估計解決類噪聲辨識問題。文獻[6]針對風電次同步振蕩參數辨識問題,采用加阻尼Rife-Vincent 窗和三點插值法計算復數域下的參數指標并進行參數辨識。文獻[7]基于最大測點正常和CPU并行加速,提出一種不良數據辨識模型。在數據辨識研究中,模糊聚類算法[8-10]是解決不良負荷數據辨識的有效方法之一,但通常存在以下方面的不足:(1)聚類數量和聚類中心選取具有偶然性,二者嚴重影響著聚類性能;(2)需要權衡算法效率和算法質量;(3)由于用電數據規模龐大,目標函數容易陷入局部最優[11]。為克服以上問題,本文嘗試將啟發式算法[12]與元啟發式算法[13]相結合,以FCM聚類算法為基礎,采用蟻群算法[14-15]確定FCM聚類算法的聚類數目、聚類中心,并由爬山算法[16]為蟻群算法提供初始解,求解聚類結果,計算負荷可行域上下限,當實際負荷超出可行域上下限時視為不良數據,并采用插值法[17]進行數據修復,實現電力不良數據辨識和修復的功能。

1 FCM負荷曲線聚類

負荷曲線聚類是指利用聚類算法對歷史負荷數據進行分類,以數據為支撐,分析不同類型用戶的負荷特性,為電力負荷預測、電價制定等提供決策依據[18-20]。FCM算法[21-22]是一種常見的聚類算法,使用隸屬度衡量樣本點的相似性,該算法可描述如下:

對含有n個樣本的樣本集,每一個樣本都可以用一組特征向量表示,假設這些樣本可以被分為c個聚類中心,則算法的目標函數是n個樣本到其聚類中心的類內距離加權平方和最小,即

(1)

式中:U為模糊劃分矩陣,V為聚類中心矩陣,m為加權指數,取值范圍在[1,+∞],uik為第k個樣本屬于第i類聚類中心的隸屬度,dik為第i類樣本中第k個樣本到第i類聚類中心的距離。

隸屬度[23]滿足:

(2)

式(1)隨著加權指數m單調遞減,但存在拐點m0使得算法的迭代次數隨m的取值呈現震蕩變化的趨勢,在拐點m0附近取到極小值,即:

(3)

依據拉格朗日乘數法,可以求得目標函數取極小值時,隸屬度uik和聚類中心vi需滿足:

(4)

(5)

以式(1)為目標函數,以式(2)(4)(5)為約束條件,當迭代一定次數后目標函數前后兩次迭代誤差小于一給定正數時,聚類結束。

2 蟻群算法

蟻群算法(ant colony algorithm, ACA)是一種模擬螞蟻覓食行為的元啟發式搜索算法,在沒有任何提示的情況下,螞蟻通過在路徑上釋放分泌物——信息素[24-25],從而找到從巢穴到食物的最短路徑。如果路徑上出現意外,蟻群能夠自適應地尋找到新的最優路徑。蟻群算法的優勢在于魯棒性強、記憶性能好、易與其他優化算法相結合等,具有分布式計算、正反饋性、正組織性等特征[26-27]。

蟻群根據信息素和距離來搜索路徑,在第t次迭代中,螞蟻k由節點i選擇下一節點j的轉移概率滿足:

(6)

(7)

式中:qij為路徑(i,j)的信息素濃度。α為信息素啟發因子,β為期望啟發式因子,α越大算法搜索性越弱,β越大代表先驗路徑信息的作用越大,越接近貪心算法。allowk表示路徑搜索下一可到達節點的集合,nij為啟發信息,dij為節點i和待選節點j的歐氏距離。

在信息素更新方式的選擇上,為提高蟻群算法的搜索效率,本文引入精英螞蟻系統,該系統通過在當前最優解Tbest更新信息素時釋放額外的信息素,實現增強系統正反饋作用的目的。相關信息素更新的計算公式為:

(8)

(9)

式中:w是調整最優解的參數,代表強化項的權重,Lbest是當前最優路徑Tbest的長度。

本文引入蟻群算法用于模糊聚類過程中選取聚類數量和聚類中心,克服其偶然性,增大獲得最優解的概率。

3 爬山算法

蟻群算法作為一種元啟發式算法,其算法效果非常依賴初始解的質量,可以利用爬山算法為蟻群算法產生初始解,提高算法性能。爬山算法是一種尋優速度快的啟發式局部搜索算法,從當前節點開始,與周圍節點進行比較,若當前節點值最大,則返回當前節點作為“山峰最高點”,反之則用最高的周圍節點替換當前節點,如此循環迭代直到到達最高點。

本文采用狼爬山算法為蟻群算法提供初始解,該算法是基于經典Q學習算法[28]框架的一種強化學習算法。設表征狀態動作好壞的值函數Q(s,a),則有:

(10)

(11)

式中:Vφ*(s)為最優目標值函數,φ*(s)為策略,A為動作集。Q函數的更新機制采用SARSA策略,即:

Qk+1(s,a)=Qk(s,a)+αδkek(s,a)

(12)

Qk+1(sk,ak)=Qk+1(sk,ak)+αρk

(13)

式中:α為Q學習率,δk為Q函數誤差,ek為狀態s在動作a下第k步迭代的資格跡,ρk為在第k步迭代的Q函數誤差。隨著迭代次數的增加,狀態值函數Q(s,a)能夠逐步收斂到最優聯合動作策略。

狼爬山算法基于虛擬博弈,將Q學習率α視為隨迭代動態更新的變量,采用近似均衡的平均貪婪策略,引入兩個學習參數αwin和αlose代表智能體的贏和輸。設智能體的混合策略集為U(sk,ak),變學習率為φi,它將在獎勵函數R的基礎上執行動作ak,從狀態sk過渡到sk+1,則其更新律為:

U(sk,ak)←U(sk,ak)+

(14)

(15)

式中:φlose>φwin,avg為平均策略混合值,當該值低于當前策略值時,智能體獲勝,選擇φwin,否則選擇φlose。

然而,爬山算法容易陷入局部最優,形象的說法是爬山是在迷霧中攀爬,其迷霧缺陷如圖1所示,如果從B點開始搜索,爬山算法會認為A點是最優解,而錯過真正的最優解D;如果從C點開始搜索,則能夠得到正確的答案。為解決迷霧缺陷,本文在狼爬山算法的基礎上做如下改進:在一定程度上擴大初始狀態空間,從更多的起點出發搜索,結果取所有“山峰最高點”的最大值。

圖1 爬山算法迷霧缺陷示意圖Fig.1 Schematic diagram of fog defect of hill climbing algorithm

4 不良數據辨識與修正

在獲得負荷數據的模糊聚類結果后,提取負荷特征曲線為所有聚類中心的采樣點連線,并結合聚類后的負荷曲線和特征曲線得到負荷數據可行域,步驟如下:

(1)對歷史負荷數據集合M,針對第i種分類,求出該類數據在同一時刻的最大值和最小值,即:

(16)

(2)根據特征曲線vi,計算可行域的上下限,即:

(17)

式中:p為采樣點的個數。

當采樣點在可行域上下限范圍內時,視為負荷數據正常;當超出可行域上下限范圍時,視為不良負荷數據。

對不良負荷數據,本文采用插值法進行數據修正。

5 算法流程

本文提出了一種基于爬山-蟻群-FCM模糊聚類的電力不良負荷數據辨識方法,以FCM聚類算法為基礎,由爬山算法為蟻群算法提供初始解,根據蟻群算法確定FCM聚類算法的聚類數目、聚類中心,并求解聚類結果。這樣做可以將啟發式算法與元啟發式算法相結合,發揮各自優點,互補缺點,以克服局部最優問題,提高其性能;同時也解決了聚類數量和聚類中心選取具有偶然性的問題。在聚類結果的基礎上,計算負荷可行域上下限,當實際負荷超出可行域上下限時視為不良數據,然后利用插值法進行數據修復,實現電力不良數據辨識和修復的功能。其算法流程如圖2所示,步驟如下:

圖2 算法流程圖Fig.2 Algorithm flowchart

步驟1:導入樣本數據,用爬山算法確定蟻群算法的初始解。

步驟2:根據初始解,采用蟻群算法確定FCM聚類算法的聚類數據和聚類中心,初始化隸屬度矩陣。

步驟3:完成FCM聚類,提取負荷數據特征曲線。

步驟4;根據負荷數據特征曲線,訓練生成負荷數據可行域區間。

步驟5:導入待測數據。

步驟6:對待測數據進行不良數據辨識。

步驟7:對不良數據進行修復。

6 算例分析

6.1 模型評價

為驗證模型的有效性,有必要建立模型的評價標準。聚類算法是為解決分類問題而提出的,首先應當對分類的準確性進行評價,在分類準確的基礎上才做出修復準確的判定。因此,本文設某負荷數據點采集值偏離真實值超過20%為不良負荷數據,并采用精準率PRE、準確率ACC、召回率REC三項常見的分類問題評價指標來評價聚類效果指標,相關計算公式如下:

PRE=nTP/(nTP+nFP)

(18)

ACE=(nTP+nTN)/(nTP+nTN+nFN+nFP)

(19)

REC=nTP/(nTP+nFN)

(20)

式中:n為每類事件的數量,TP和TN均代表正確判別,FN代表漏判,FP代表誤判,如表1所示。所有指標取值均在[0,1]之間,取值越大,聚類效果越佳。

表1 混淆矩陣Tab.1 Confusion matrix

在數據修復的模型評價上,則采用傳統的平均誤差率e評價模型。

6.2 算例有效性驗證

本文以某市2020年3月某用電管理平臺采集到的某用戶電力負荷數據為算例數據,采樣周期為15分鐘,每天有96個采樣點。同時收集該用戶側負荷數據作為真實數據,用于檢驗不良負荷數據辨識結果的正確性和精確性。

首先進行聚類分析,采用爬山算法和蟻群算法求解FCM聚類問題,以爬山算法為蟻群算法提供初始解,由蟻群算法提供FCM聚類算法的聚類數據和聚類中心。根據蟻群算法結果,初始的聚類中心為3個,聚類數據分別包含19、31、35個樣本點,取加權指數m=3計算新聚類中心,不斷迭代直到滿足退出條件,獲取聚類結果。

根據聚類結果計算特征曲線和可行域上下限,辨識不良負荷數據,并對不良負荷數據采用插值法進行數據修正。其結果如表2和表3所示。

表2 不良負荷數據辨識結果Tab.2 Identification result of bad load data

表3 不良負荷數據辨識模型評價Tab.3 Evaluation of bad load data identification model

表2中不良數據點號是指從3月1日0點開始記為1號點,0點15分記為2號點,以此類推。由表2可以推出以下結論:

(1)在3月用電管理平臺采集到的負荷數據中,根據經驗常識,一共出現了2次真實發生的、偏差較大的不良負荷數據,一次是182號點,該點采集值是791.2,真實值是320.6,采集值偏離真實值達到146.8%,按照負荷數據點采集值偏離真實值超過20%視為不良負荷數據的判斷標準,該點屬于不良數據,本文方法在該點判別上正確,修正值為329.5,修正值偏離真實值為2.8%,按照經驗來看修正有效。

(2)第2個不良數據點是1539號點,該點采集值是593.3,真實值是389.2,采集值偏離真實值達到52.4%,按照負荷數據點采集值偏離真實值超過20%視為不良負荷數據的判斷標準,該點屬于不良數據,本文方法在該點判別上正確,修正值為411.4,修正值偏離真實值為5.7%,按照經驗來看修正有效。

(3)本文方法沒有對其他非不良數據點造成誤判,即FP=0;對所有的不良數據點均正確判別,沒有錯判,即FN=0;本文方法在本算例的識別效果驗證了方法的準確性和有效性。

表3列舉了本文算法的聚類效果評價指標值。由表3可以看出,本文算法的PRE、ACE、REC在這次算例中均為最佳值1,沒有發生漏判,即出現未成功判斷出某次不良數據的現象;也沒有發生誤判,即錯誤地將正常數據判定為不良數據。分析原始數據可知,這主要是因為選取的負荷數據質量好,絕大多數的數據偏差小于3%。由此可見,本文提出的爬山-蟻群-FCM聚類算法能夠有效地在2976個負荷采樣點中辨識出唯二的不良數據點,驗證了模型的有效性。

作為對比,本文將蟻群-FCM聚類算法、爬山-FCM聚類算法應用到相同的算例中進行不良數據辨識,其結果如下表所示:

由表4可以分析得出以下結論:

表4 不同算法結果對比Tab.4 Comparison of results of different algorithms

(1)面對質量好的一段負荷數據樣本,本文算法、蟻群-FCM聚類算法、爬山-FCM聚類算法都能夠有效辨識不良數據,沒有發生漏判和誤判;

(2)對比算法的平均誤差分別為5.31%和5.96%,均低于本文算法的4.25%,驗證了本文模型的有效性和準確性。

6.3 算例魯棒性驗證

為進一步驗證本文模型的魯棒性和準確性,本文擴大數據范圍,將該市從4月到12月共9個月(每個月取1號到30號數據)的電力負荷數據作為研究對象,每個月獨立做聚類分析。由于實際采集中不良數據點數較少,本文人為將每月的1號到30號中,每天96個采樣點的第10、20、30、40、50個點增大25%,第15、25、35、45、55個點減小25%,則每天共有10個不良數據點,每個月有300個不良數據點,合計2700個不良數據點,總數據點達25920個點。通過人為對部分真實負荷數據進行縮放,實現了制造更差負荷數據質量、更多不良負荷數據的目的,在這種環境下考察不良負荷數據辨識算法的魯棒性。采用本文方法、蟻群-FCM聚類算法、爬山-FCM聚類算法對這些經過處理后的數據進行分析,各算法數據辨識對比分析結果如表5所示。

表5 不同算法魯棒性結果對比Tab.5 Comparison of robustness results of different algorithms

由表5可以推出以下結論:

(1)本文方法在25920個負荷數據的不良數據辨識中,漏判了17個點,而蟻群-FCM聚類算法漏判105個點,爬山-FCM聚類算法漏判89個點,從漏判角度而言,本文方法優于蟻群-FCM聚類算法、爬山-FCM聚類算法。

(2)本文方法在25920個負荷數據的不良數據辨識中,錯判了2個點,而蟻群-FCM聚類算法錯判5個點,爬山-FCM聚類算法錯判4個點,從錯判角度而言,本文方法優于蟻群-FCM聚類算法、爬山-FCM聚類算法。

(3)本文方法的PRE為0.9993,優于蟻群-FCM聚類算法的0.9981,也優于爬山-FCM聚類算法的0.9985;同理,其余3項指標ACE、REC、e均優于蟻群-FCM聚類算法、爬山-FCM聚類算法。這說明面對樣本數據規模大、突變率25%逼近20%分界線等難點,本文算法相比蟻群-FCM聚類算法、爬山-FCM聚類算法表現更優,魯棒性和準確性更強。算例結果表明,本文提出的組合搜索算法能有效提高單一搜索算法的精度,驗證了本文模型的魯棒性和準確性,具有更好的工程實踐優勢。

7 結論

本文提出了一種基于爬山-蟻群-FCM模糊聚類算法,用于求解電力不良負荷數據辨識的問題。首先利用爬山算法為蟻群算法產生初始解,提高算法性能,接著用蟻群算法求解FCM負荷曲線聚類模型;根據聚類結果計算特征曲線和可行域上下限,辨識不良負荷數據,并對不良負荷數據采用插值法進行數據修正。算例表明,本文模型能夠有效實現不良負荷數據辨識功能,在模型的準確性上相比單一搜索算法更優,可推廣到其他電力采集數據的數據辨識等領域。但在實際應用過程中,不良數據的修正值和實際值之間仍然存在偏差,特別是對于罕見的負荷快速、劇烈波動的場景,偏差會進一步增大,如何解決這一問題,是下一步的研究方向。

猜你喜歡
爬山聚類負荷
一種傅里葉域海量數據高速譜聚類方法
人造革合成革拉伸負荷測量不確定度評定
3項標準中維持熱負荷要求對比分析
基于知識圖譜的k-modes文本聚類研究
MIV-PSO-BP神經網絡用戶熱負荷預測
一種改進K-means聚類的近鄰傳播最大最小距離算法
我們一起去爬山
基于模糊聚類和支持向量回歸的成績預測
生如夏花
我們去登高
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合