蔣正威,張 超,孫偉樂,趙友國,隋向陽
(1.國網(wǎng)浙江省電力有限公司,杭州 310007;2.國網(wǎng)浙江省電力有限公司杭州供電公司,杭州 310009;3.東方電子股份有限公司,山東 煙臺 264000)
智能電網(wǎng)融合了大數(shù)據(jù)、人工智能和網(wǎng)絡(luò)通信等技術(shù),具備更強的感知、通信和決策能力,顯著提升了電力系統(tǒng)的靈活性和可靠性。智能電網(wǎng)高度依賴運行數(shù)據(jù)進行決策,而惡意網(wǎng)絡(luò)攻擊,如FDIA(假數(shù)據(jù)注入攻擊)等可以篡改SCADA(數(shù)據(jù)采集與監(jiān)控系統(tǒng))中的量測數(shù)據(jù),進而影響智能電網(wǎng)狀態(tài)估計的結(jié)果,嚴重威脅智能電網(wǎng)運行的經(jīng)濟性與安全性。在常見的網(wǎng)絡(luò)攻擊方式中,F(xiàn)DIA 是對電網(wǎng)狀態(tài)估計威脅最大的一種[1-2]。與分布式拒絕服務(wù)攻擊和網(wǎng)絡(luò)擁塞攻擊等其他攻擊方式不同,F(xiàn)DIA 可以繞過傳統(tǒng)的基于殘差的假數(shù)據(jù)識別機制[3]。在現(xiàn)有的狀態(tài)估計程序中,F(xiàn)DIA 可以反復(fù)實施而無法被檢測,因此需要研究更為先進的檢測方法以防范由FDIA 所產(chǎn)生的網(wǎng)絡(luò)威脅。
FDIA 的產(chǎn)生機制和檢測方法是當(dāng)前國內(nèi)外學(xué)者關(guān)注的研究熱點之一。FDIA 的產(chǎn)生機制是根據(jù)已知的全部或部分電網(wǎng)拓撲和參數(shù)信息,產(chǎn)生滿足電網(wǎng)拓撲約束的注入攻擊,因此可以繞過傳統(tǒng)基于殘差的壞數(shù)據(jù)檢測。早期的FDIA 產(chǎn)生機制針對直流(潮流方程為線性方程)狀態(tài)估計,系統(tǒng)模型分析相對簡單,如文獻[4-5];近來,多種方法被用來模擬交流狀態(tài)估計中假數(shù)據(jù)的產(chǎn)生機制,如文獻[6-7],其中,文獻[7]研究了部分拓撲信息已知條件下交流狀態(tài)估計的注入攻擊產(chǎn)生機制。多個學(xué)科的分析方法被用于直流或交流狀態(tài)估計中的FDIA 檢測,比較有代表性的有統(tǒng)計學(xué)方法[8]、卡爾曼濾波[9]、稀疏優(yōu)化[10]、狀態(tài)預(yù)測[11]、網(wǎng)絡(luò)理論[12]、時間序列[13]和機器學(xué)習(xí)[14]等。在上述的研究成果中,文獻[8-14]都是針對直流狀態(tài)估計中的假數(shù)據(jù)注入攻擊,而這類方法是否能夠有效檢測出交流狀態(tài)估計中的假數(shù)據(jù)注入攻擊仍有待驗證;此外,針對已知系統(tǒng)拓撲信息的假數(shù)據(jù)注入攻擊,文獻[14]利用卷積神經(jīng)網(wǎng)絡(luò)對空間數(shù)據(jù)特征識別的優(yōu)勢進行攻擊檢測,通過算例發(fā)現(xiàn)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)相較于其他類型的方法對于電力系統(tǒng)空間拓撲信息被攻擊者掌握后的假數(shù)據(jù)注入攻擊有更好的檢測能力。然而,對于文獻[7]中已知部分拓撲信息條件下針對交流狀態(tài)估計產(chǎn)生的FDIA,上述方法的有效性仍待驗證(部分拓撲信息可能使卷積神經(jīng)網(wǎng)絡(luò)對空間數(shù)據(jù)特征識別的優(yōu)勢難以有效發(fā)揮)。
盡管相關(guān)方法已經(jīng)實現(xiàn)了對直流狀態(tài)估計中FDIA 的檢測,但隨著電網(wǎng)拓撲結(jié)構(gòu)越來越復(fù)雜,數(shù)據(jù)采集量越來越多,上述方法無法有效應(yīng)對所有可能的攻擊場景(如交流狀態(tài)估計情況下的有效性待驗證)。為進一步提高FDIA 檢測的準確性,本文提出基于DWT(離散小波變換)和DNN(深度神經(jīng)網(wǎng)絡(luò))的FDIA 檢測方法。其中DNN 本質(zhì)屬于循環(huán)神經(jīng)網(wǎng)絡(luò),能夠從數(shù)據(jù)的時間特征出發(fā)彌補卷積神經(jīng)網(wǎng)絡(luò)僅關(guān)注數(shù)據(jù)空間特征的不足。
電網(wǎng)狀態(tài)估計的本質(zhì)是利用傳感器所感知的系統(tǒng)運行狀態(tài)的采樣信息來估計系統(tǒng)實際運行狀態(tài)。典型的采樣信息包括節(jié)點電壓幅值、節(jié)點注入功率和輸電線路潮流?;谏鲜霾蓸有畔⒑徒涣鞒绷鞣匠蘦(·),可以構(gòu)建采樣信息z 與實際運行狀態(tài)x 之間的函數(shù)關(guān)系:
式中: e 代表附加的采樣噪聲,其方差用R 表示。狀態(tài)估計的目的是根據(jù)式(1)的函數(shù)關(guān)系找到一組實際運行狀態(tài)x 的估計值,該過程等價于求解下面的加權(quán)最小二乘問題:
式中: 權(quán)重矩陣W=diag{R-1}。一般通過迭代近似來求解式(2),常用的方法有牛頓-拉夫遜算法。以加權(quán)最小二乘方法得到的狀態(tài)估計值是在白噪聲條件下的最優(yōu)估計,因此可以避免附加采樣噪聲對系統(tǒng)運行狀態(tài)的干擾。當(dāng)傳感器發(fā)生故障而采集到壞數(shù)據(jù)時,目前的電力系統(tǒng)均采用基于殘差的壞數(shù)據(jù)檢測方法: 比較采樣信息z 與狀態(tài)估計值所對應(yīng)的采樣值之間的殘差大小,當(dāng)殘差的范數(shù)(事先給定的閾值)時,則認為狀態(tài)估計結(jié)果受到了壞數(shù)據(jù)的干擾,否則認為狀態(tài)估計結(jié)果可信。
FDIA 的目的是誤導(dǎo)調(diào)控中心對系統(tǒng)實際運行狀態(tài)的感知,使調(diào)控中心基于被攻擊后的狀態(tài)估計結(jié)果做出錯誤決策,為達到誤導(dǎo)調(diào)控中心的目的,F(xiàn)DIA 將傳輸?shù)秸{(diào)控中心的采樣信息惡意篡改為za=z+Δz。若實施FDIA 的攻擊者已知電網(wǎng)全局拓撲信息h(·),則假數(shù)據(jù)中的Δx與Δz 滿足:
在上述情況下,傳統(tǒng)壞數(shù)據(jù)殘差檢驗的結(jié)果為:
可見,F(xiàn)DIA 可以繞過傳統(tǒng)基于殘差的壞數(shù)據(jù)檢測,實施上述這種FDIA 的具體過程詳見文獻[6]。然而,已知全局拓撲信息h(·)對于FDIA的實施者來說過于理想化,實際情況中FDIA 的實施者很可能只利用到部分拓撲信息,考慮到上述更加實際的攻擊場景,文獻[7]提出了僅利用系統(tǒng)部分拓撲信息的FDIA 產(chǎn)生方法。
文獻[7]基于給定的部分節(jié)點相角差來構(gòu)建滿足基爾霍夫電流定律的FDIA。特別是受攻擊節(jié)點與未受攻擊節(jié)點相角差已知時,很容易計算出受攻擊節(jié)點對應(yīng)的注入功率,據(jù)此可以篡改SCADA采集信息中的節(jié)點注入功率值。按照上述思想,文獻[7]提出了構(gòu)造攻擊交流系統(tǒng)狀態(tài)估計的FDIA算法,流程為:
(1)初始化受攻擊系統(tǒng)的電壓幅值、相角向量[V,θ]T=[V0,θ0]T。
(2)根據(jù)當(dāng)前電壓幅值、相角[V,θ]T計算出受攻擊的采樣信息[P,Q,p,q]T(分別為節(jié)點注入有功、無功功率,線路有功、無功潮流)。
(3)檢查受攻擊的采樣信息是否滿足運行范圍約束,若滿足約束則輸出受攻擊的采樣信息作為FDIA;否則繼續(xù)下一步。
(4)更新電壓幅值、相角為[V,θ]T+[ΔV,Δθ]T,其中變化量[ΔV,Δθ]T要通過求解優(yōu)化問題來獲取?;氐讲襟E(2)。
在步驟(4)中提到的優(yōu)化問題具體為(其中所有變量均為向量):
式中: 目標函數(shù)中的Si為松弛變量;?P/?V 對應(yīng)潮流方程雅可比矩陣的相應(yīng)部分;G 為系數(shù)矩陣,將節(jié)點電壓相角轉(zhuǎn)換為線路兩端相角差。優(yōu)化式(5)的詳細內(nèi)容參考文獻[7]。通過求解上述優(yōu)化問題,可以得到變化量[ΔV,Δθ]T來逐步迭代得到FDIA,這種形式的FDIA 不僅可以繞過基于殘差的壞數(shù)據(jù)檢測,還能夠繞過一些基于直流模型狀態(tài)估計的FDIA 檢測方法[7]。
根據(jù)前文所述,構(gòu)造滿足基爾霍夫定律的FDIA 可以繞過基于殘差的壞數(shù)據(jù)檢測,而且這種具有空間相關(guān)性的FDIA 很難在僅利用單一時刻采樣信息的條件下被檢測出來??紤]到一段時間內(nèi)電力系統(tǒng)同步采樣信息是一組具有時間-空間相關(guān)性的矩陣,這種時間相關(guān)性在暫態(tài)和動態(tài)過程中尤為明顯,因此利用同步采樣信息的時間相關(guān)性作為實施FDIA 檢測的突破口是可行的[16]。
FDIA 檢測模型一般分為訓(xùn)練和檢測兩個環(huán)節(jié),訓(xùn)練的目的是確定DNN 中的有關(guān)參數(shù)用以實現(xiàn)FDIA 的在線檢測,因此這兩個環(huán)節(jié)在過程上是相似的,區(qū)別在于訓(xùn)練環(huán)節(jié)先確定DNN 中未知參數(shù),檢測環(huán)節(jié)利用訓(xùn)練好的DNN 進行在線檢測,即實現(xiàn)有/無FDIA 的二分類問題。
圖1 為本文所提出的FDIA 檢測方法流程。該檢測方法以電網(wǎng)終端將采集到的運行狀態(tài)信息z 為輸入(比如節(jié)點電壓幅值和相角),輸入信息首先上傳到SCADA 中的狀態(tài)估計模塊,計算得到系統(tǒng)運行狀態(tài)估計值,若估計值在殘差檢測環(huán)節(jié)未發(fā)現(xiàn)假數(shù)據(jù),則存入狀態(tài)歷史數(shù)據(jù)庫(歷史數(shù)據(jù)庫一般存儲容量有限,本文假設(shè)其容量上限為60 個時刻的狀態(tài)估計值,并按照時間順序由新數(shù)據(jù)覆蓋原始數(shù)據(jù))。虛線框內(nèi)為本文所提的FDIA檢測主要步驟: 狀態(tài)歷史數(shù)據(jù)庫中近期60 個采樣時刻的狀態(tài)估計值經(jīng)小波變換提取時-頻特征后,作為空間特征數(shù)據(jù)又存入特征歷史數(shù)據(jù)庫,接下來再從特征歷史數(shù)據(jù)庫中提取近期n 個(數(shù)量越多則檢測準確度越高,但會帶來更大計算負擔(dān))空間特征數(shù)據(jù)輸入到基于深度神經(jīng)網(wǎng)絡(luò)的攻擊檢測環(huán)節(jié),提取其中的時間特征,并進行有/無FDIA 的分類并輸出檢測結(jié)果(有,輸出1;無,輸出0)。
小波變換是狀態(tài)特征提取環(huán)節(jié)所采用的數(shù)字信號處理方法,該方法能夠提取時間序列的時-頻特征,適用于非平穩(wěn)輸入信號。
連續(xù)時間小波變換[15]可表示為:
圖1 FDIA 檢測模型
式中: x(t)為輸入連續(xù)時間信號;ψ(t)為母小波函數(shù);a 和b 分別為縮放因子和位置參數(shù),代表時-頻多尺度特征。
DWT[15]將時間序列x(t)在縮放因子a=2j和位置參數(shù)b=2j×k(j,k 均為整數(shù))時進行小波變換。常用的多尺度DWT 可以將長度為2M的時間序列x(t)分解成至多M 層的小波函數(shù):
式中: φjk(t)=2-j/2φ(2-jt-k),φ(t)為尺度函數(shù)又稱父小波函數(shù);ajk和djk為相應(yīng)的近似系數(shù)。
本文選擇對于數(shù)據(jù)特征具有魯棒性的db 或sym 族小波函數(shù)來進行小波變換,可供選擇的參數(shù)有兩組,分別是濾波器長度為4,尺度數(shù)為4或濾波器長度為16,尺度數(shù)為2。兩組參數(shù)的最優(yōu)性通過算例進行分析。
在本文中,多個采樣時刻下狀態(tài)估計所得到的節(jié)點電壓幅值和相角(設(shè)系統(tǒng)中節(jié)點總數(shù)為N)估計值組成了時間序列x(t),利用多尺度DWT可以得到相應(yīng)的小波分解。由于每個具體時刻t 都有一系列的近似系數(shù)ajk和小波系數(shù)djk,直接采用近似系數(shù)來表征狀態(tài)估計值的時-頻特性存在數(shù)據(jù)量過于龐大的問題。文獻[16]采用小波變換中近似系數(shù)的統(tǒng)計特征作為分類器的特征輸入,驗證了以近似系數(shù)統(tǒng)計特征實施分類的可行性,故本文在此基礎(chǔ)上采用所有時刻ajk和djk的均值與方差作為輸入時間序列的時-頻特征進行提取。根據(jù)式(7)可知,小波分解中系數(shù)總數(shù)為16,考慮到多時段系數(shù)的均值和方差,以及節(jié)點數(shù),每個節(jié)點檢測的電壓幅值和相角,上述變量數(shù)量相乘后總計為64N 個特征信息將作為下節(jié)中攻擊檢測器模型的單時段的特征輸入,即ft。
攻擊檢測環(huán)節(jié)采用現(xiàn)有的DNN 單元來構(gòu)造RNN(循環(huán)神經(jīng)網(wǎng)絡(luò)),目的是通過學(xué)習(xí)DWT 提取的時-頻空間特征進而學(xué)習(xí)出數(shù)據(jù)的時間特征,并以此來檢測是否存在FDIA。RNN 是一種考慮時間-空間數(shù)據(jù)特征的典型網(wǎng)絡(luò),在本文中由兩種類型的網(wǎng)絡(luò)層組成,分別是GRU(門循環(huán)單元)和全連接層。兩種網(wǎng)絡(luò)層通過串聯(lián)組成多層神經(jīng)網(wǎng)絡(luò),具體結(jié)構(gòu)見圖2。
圖2 DNN 結(jié)構(gòu)
圖2 中構(gòu)建的攻擊檢測器有五層網(wǎng)絡(luò),分別為:
(1)數(shù)據(jù)輸入層
由圖1 中的特征歷史數(shù)據(jù)庫提取多段歷史特征,即上文中ajk和djk的均值與方差的歷史數(shù)據(jù),作為神經(jīng)網(wǎng)絡(luò)的輸入,構(gòu)造數(shù)據(jù)輸入層。每個時段的特征輸入ft都包含64N 個特征信息,ω 個時段特征輸入對應(yīng)ft,ft-1,…,具體時段數(shù)的選擇可通過訓(xùn)練過程進行參數(shù)調(diào)整。
(2)GRU 結(jié)構(gòu)層1
GRU 是長短時記憶網(wǎng)絡(luò)的一種變體,構(gòu)造更為簡單,在訓(xùn)練大量數(shù)據(jù)時具有用時少、收斂快的優(yōu)點。GRU 用來提取數(shù)據(jù)輸入層的時序特征,令{ft-ω-1,…,ft}代表GRU 的輸入,{gt-ω-1,…,gt}代表輸出,則二者關(guān)系為:
式中: sigm 代表sigmoid 函數(shù)作為激活函數(shù)。在式(8)—式(10)中,除輸入、輸出外,其余參數(shù)均為GRU 中學(xué)習(xí)而來的參數(shù)。
在GRU 結(jié)構(gòu)層1 中首先輸入來自上一層的64Nω 的特征,因此本層的神經(jīng)元數(shù)量可設(shè)置為1024,以此可以學(xué)習(xí)出特征數(shù)據(jù)中的時間特征。
(3)GRU 結(jié)構(gòu)層2
將上一層GRU 的輸出作為本層GRU 的輸入,其余結(jié)構(gòu)與步驟(2)中一致,神經(jīng)元數(shù)量也為1024,多層GRU 可以從輸入數(shù)據(jù)中提取更為抽象的特征。
(4)全連接層1
本層的神經(jīng)元數(shù)量為512,此外,數(shù)據(jù)輸入層的輸入在經(jīng)過兩層GRU 以后,其時間-空間特征更為抽象,但是過多的參數(shù)訓(xùn)練可能導(dǎo)致過擬合問題。本層引入隨機淘汰機制,淘汰率為30%,隨機剔除部分特征防止過擬合的發(fā)生。
(5)全連接層2
本層神經(jīng)元數(shù)量為128,該層在上一層基礎(chǔ)上繼續(xù)隨機剔除部分特征以防止過擬合,淘汰率為30%,并輸出檢測結(jié)果。
兩個全連接層能夠?qū)崿F(xiàn)從特征到判斷結(jié)果的映射,其輸入-輸出關(guān)系表示為:
式中:x 和y 分別代表全連接層的輸入(特征)和輸出(判斷結(jié)果,0 代表無攻擊,1 代表有攻擊),其余參數(shù)通過學(xué)習(xí)獲??;actv 代表此處的激活函數(shù)。
DNN 環(huán)節(jié)中的參數(shù)通過大量訓(xùn)練集數(shù)據(jù)進行調(diào)整,在參數(shù)確定以后可直接按照圖1 中的流程進行FDIA 在線檢測,具體過程不再贅述。
算例分析采用IEEE 118 節(jié)點系統(tǒng)來驗證本文所提的FDIA 檢測方法的有效性。隨機產(chǎn)生系統(tǒng)正常運行工況200 000 次,運行工況之間的變化由系統(tǒng)動態(tài)仿真過程實現(xiàn),在100 個工況下注入已知全局拓撲的FDIA,具體見式(3);另外在400 個工況下注入部分拓撲已知的FDIA,具體見式(5),訓(xùn)練集與測試集按照2∶1 進行分配。計算條件為一臺具有Intel Pentium G3260 3.3 GHz CPU 和4G 內(nèi)存的雙核計算機。由于小波分析程序成熟,本文采用基于MATLAB 平臺的小波分析工具箱處理每個狀態(tài)變量對應(yīng)的一維離散時間序列的小波分析,相關(guān)過程參考MATLAB 工具箱說明。
首先驗證本文所提檢測方法的有效性。針對2.3 節(jié)中輸入層特征數(shù)據(jù)的時間窗口寬度ω=5,采樣周期為60 ms。
表1 所示分析結(jié)果驗證了本文所提的FDIA檢測方法的有效性。無論測試集還是訓(xùn)練集,本文的FDIA 檢測方法的正確率均達到90%以上,因此可由測試集與訓(xùn)練集正確率的比較說明本文中的DNN 避免了過擬合問題。表1 中的正判錯誤率代表原本沒有攻擊的情況被錯判為有攻擊,反判錯誤率與之相反。從訓(xùn)練時間來看,DNN 需要7 633 s 的訓(xùn)練時間是整個過程中最耗時的部分,因此DNN 的訓(xùn)練部分只能離線進行,而在線檢測耗時極短,平均只需要12 ms。
表1 FDIA 檢測方法的檢測結(jié)果 %
文獻[9-10]研究了直流狀態(tài)估計中FDIA 的檢測方法,所針對的FDIA 是在已知全局拓撲信息條件下產(chǎn)生的。將本文中使用的測試集分別運用于文獻中的檢測方法,獲得檢測正確率分別為70.25%和80.68%,均低于本文所提的FDIA 檢測方法。
因為交流狀態(tài)估計中考慮了線損和傳輸線路的電壓降,所以交流狀態(tài)估計比直流狀態(tài)估計更為準確。一方面,準確的交流狀態(tài)估計導(dǎo)致FDIA攻擊的產(chǎn)生難度增加;另一方面,這也使得攻擊向量的可識別性降低,這種低可識別性的FDIA攻擊更容易越過直流FDIA 檢測機制(直流FDIA針對的直流狀態(tài)估計本身與實際狀態(tài)值存在較大偏差,因此只能檢測出距離實際狀態(tài)值更遠的FDIA 攻擊)。
本文針對已知部分拓撲信息的FDIA 提出了基于DWT 和DNN 的檢測方法。該方法從多時段狀態(tài)估計結(jié)果中提取時-頻特征,并利用DNN 對特征進行進一步的抽象并判斷是否受到FDIA 的攻擊。仿真分析結(jié)果表明本文所提方法能夠有效檢測出狀態(tài)估計是否受到FDIA 的影響。
下一步的研究工作主要是減少DNN 訓(xùn)練集的樣本數(shù)量,并加快訓(xùn)練速度。