王文鈺,任洲洋,孫義豪,潘 棟,劉振偉
(1.輸配電裝備及系統(tǒng)安全與新技術(shù)國家重點實驗室(重慶大學(xué)),重慶 400044;2.國網(wǎng)河南省電力公司經(jīng)濟技術(shù)研究院,河南 鄭州 450052;3.國網(wǎng)河南省電力公司鄭州供電公司,河南 鄭州 450018;4.鄭州祥和集團有限公司登封分公司,河南 登封 452470)
隨著信息通信技術(shù)(Information Communication Technology, ICT)的發(fā)展,電力系統(tǒng)中融合了越來越多的通信設(shè)備和計算機技術(shù),形成了可實時感知系統(tǒng)狀態(tài)的電力信息物理系統(tǒng)(Cyber-Physical Systems, CPS)[1,2],使得電力系統(tǒng)的自動化程度不斷提高,但由于電力CPS對數(shù)據(jù)通信的依賴,其容易受到網(wǎng)絡(luò)攻擊的干擾,由此帶來的電力系統(tǒng)信息安全問題也成為當前研究的熱點。
網(wǎng)絡(luò)安全由保密性、完整性和可用性構(gòu)成,針對三個不同的特性,有不同的攻擊方法[3]。例如,改變通信網(wǎng)絡(luò)拓撲結(jié)構(gòu)影響網(wǎng)絡(luò)信息安全的可用性,或利用虛假數(shù)據(jù)注入的方式破壞網(wǎng)絡(luò)安全的完整性等。文獻[3]對當前電力系統(tǒng)中存在的網(wǎng)絡(luò)攻擊現(xiàn)象進行了詳細的綜述;文獻[4]總結(jié)分析了電力信息物理系統(tǒng)中虛假數(shù)據(jù)注入的攻擊過程和攻擊手段;文獻[5]介紹了虛假數(shù)據(jù)的構(gòu)造方法,從而利用構(gòu)造的虛假數(shù)據(jù)對電力系統(tǒng)進行攻擊。簡言之,虛假數(shù)據(jù)繞過不良數(shù)據(jù)模塊的辨識,將含有攻擊數(shù)據(jù)的量測信息傳輸至控制中心,影響控制中心的決策,嚴重時造成電力系統(tǒng)大面積癱瘓等惡性結(jié)果。以2015年的烏克蘭大停電為例,攻擊者通過黑客病毒的方式,向控制監(jiān)控與數(shù)據(jù)采集(Supervisory Control And Data Acquisition, SCADA)系統(tǒng)注入虛假數(shù)據(jù)并刪改原有數(shù)據(jù),導(dǎo)致控制中心做出錯誤的判斷,從而使得故障大規(guī)模擴散[6]。
對虛假數(shù)據(jù)進行檢測的方法可分為基于狀態(tài)估計[7-9]、基于軌跡預(yù)測[10,11]和基于人工智能三類。絕大多數(shù)狀態(tài)估計方法是對原有加權(quán)最小二乘回歸方法的改進,無可避免地需要在電力系統(tǒng)網(wǎng)絡(luò)中收集大量測量數(shù)據(jù),且會受到系統(tǒng)自身拓撲結(jié)構(gòu)的限制。而基于軌跡預(yù)測的方法,使用卡爾曼濾波器等對狀態(tài)值進行預(yù)測,需要前一采樣時刻的數(shù)據(jù)穩(wěn)定可靠,本質(zhì)上沒有逃脫狀態(tài)估計的弊端,例如:文獻[12]通過計算歷史量測數(shù)據(jù)相鄰斷面的差分值,使用灰度關(guān)聯(lián)分析法求得各序列之間的加權(quán)關(guān)聯(lián)度,根據(jù)檢測數(shù)據(jù)的差分值是否超過閾值檢測虛假數(shù)據(jù)。人工智能方法已廣泛應(yīng)用于圖像識別、聲音處理等實際場景中,數(shù)據(jù)處理準確率高,且應(yīng)用到電力系統(tǒng)中可以擺脫原始結(jié)構(gòu)的限制,從數(shù)據(jù)的特征入手,分析是否存在虛假數(shù)據(jù)。文獻[13]總結(jié)了現(xiàn)有智能電網(wǎng)中常用的虛假數(shù)據(jù)檢測方法,包括對狀態(tài)估計器的修改和以數(shù)據(jù)為中心的監(jiān)督、半監(jiān)督、無監(jiān)督機器學(xué)習(xí)方法。文獻[14]使用主成分分析法對海量數(shù)據(jù)進行降維處理,從而降低了計算復(fù)雜度,然后使用支持向量機對正常數(shù)據(jù)和被攻擊數(shù)據(jù)進行分類。文獻[15]使用半監(jiān)督學(xué)習(xí)方法,生成自編碼器,考慮到測量數(shù)據(jù)的維度和非線性相關(guān)特性,獲取數(shù)據(jù)特征,可以擺脫電力系統(tǒng)拓撲結(jié)構(gòu)的限制,且計算時間短,但仍需要對數(shù)據(jù)進行標記。文獻[16]將門控循環(huán)單元結(jié)構(gòu)(Gated Recurrent Unit, GRU)加入卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network, CNN)的全連接層之前構(gòu)建CNN-GRU混合神經(jīng)網(wǎng)絡(luò),根據(jù)電網(wǎng)歷史量測數(shù)據(jù)進行訓(xùn)練并更新網(wǎng)絡(luò)參數(shù),提取數(shù)據(jù)的空間和時間特征,但GRU會隨著數(shù)據(jù)規(guī)模的增長而出現(xiàn)梯度爆炸的情況。目前應(yīng)用在虛假數(shù)據(jù)檢測中的機器學(xué)習(xí)方法實現(xiàn)了對直流狀態(tài)估計中的虛假數(shù)據(jù)注入(False Data Injection Attacks, FDIAs)檢測,考慮數(shù)據(jù)的空間結(jié)構(gòu),并進行特征提取。在實際運行過程中,由于電網(wǎng)拓撲結(jié)構(gòu)復(fù)雜,數(shù)據(jù)采集量大,非線性結(jié)構(gòu)特征明顯,前文論述的僅就單一時刻進行虛假數(shù)據(jù)檢測的方法不一定有效,能夠搜集到的虛假數(shù)據(jù)較少。為解決這些問題,本文提出了基于小波變換和稀疏自編碼器相結(jié)合的虛假數(shù)據(jù)檢測方法,置于不良數(shù)據(jù)檢測模塊后,輔助不良數(shù)據(jù)檢測模塊檢測FDIAs。首先,將節(jié)點狀態(tài)估計值(電壓幅值和相角)進行小波變換,獲取多尺度分解下原始數(shù)據(jù)在頻域內(nèi)的能量分布值,按照時間尺度排列為能量特征向量,作為稀疏自編碼器的輸入。然后,使用電力系統(tǒng)正常運行時的歷史數(shù)據(jù)對稀疏自編碼器進行訓(xùn)練,使其進行自監(jiān)督學(xué)習(xí),從而構(gòu)造表示電力系統(tǒng)正常運行模式的編碼器。最后,在對FDIAs進行檢測時,基于自編碼器解碼和編碼的運行機制,由于訓(xùn)練好的自編碼器表征系統(tǒng)正常運行模式,存在攻擊時,自編碼器重構(gòu)的特征向量與原始輸入存在偏差,利用原始特征向量與重構(gòu)向量的標準差,設(shè)置閾值對FDIAs進行檢測。其中,小波變換可在頻域展示連續(xù)時間信號的局部特征,易于發(fā)現(xiàn)數(shù)據(jù)的異常變化。稀疏自編碼器可以完成對原始數(shù)據(jù)的特征提取,構(gòu)造滿足特定目的的編碼器,本文的目的為構(gòu)造表示電力系統(tǒng)正常運行狀態(tài)的編碼器。
電力系統(tǒng)的信息通過遠動裝置傳送到調(diào)度中心,遠動裝置的誤差以及在傳送過程中各個環(huán)節(jié)存在的誤差,使得量測數(shù)據(jù)存在不同程度的誤差和不可靠性。另外,由于測量裝置在數(shù)量或種類上的限制,往往不可能得到完整且足夠多的數(shù)據(jù)用于電力系統(tǒng)分析計算。為了解決這些問題,提出了電力系統(tǒng)狀態(tài)估計方法。在測量值有誤差的情況下,通過計算得到可靠且為數(shù)最少的狀態(tài)變量值[17]。狀態(tài)估計的具體步驟見附錄。
在已知電力系統(tǒng)拓撲結(jié)構(gòu)的情況下,攻擊者可構(gòu)建不可觀察的虛假數(shù)據(jù),即虛假數(shù)據(jù)a,其滿足:
a=h(c)
(1)
式中,c為攻擊者注入的虛假數(shù)據(jù)為任意的非零向量,c=[c1,c2,…,cn]T,c1,c2,…,cn∈R;n為狀態(tài)數(shù)量。
(2)
式中,x為無攻擊時的狀態(tài)向量;xa為被攻擊的狀態(tài)向量;εe為特征矩陣;HT為轉(zhuǎn)置的特征向量。
式(2)表示受到攻擊之后的量測值za的狀態(tài)估計量。在此情況下,被攻擊的量測值za表達式為:
za=h(x)+h(c)+e=h(x+c)+e=h(xa)+e
(3)
式中,e為測量噪聲向量。
殘差表示為:
ra=za-h(x)=z+a-h(x+c)=z-h(x)
(4)
式中,z為未被攻擊的量測值。
因此,虛假數(shù)據(jù)可繞過基于殘差的不良數(shù)據(jù)模塊檢測,注入到量測系統(tǒng)中,對電力系統(tǒng)進行攻擊。
從虛假數(shù)據(jù)的構(gòu)造過程來看,攻擊者需要在知道系統(tǒng)電壓幅值和相角或電力系統(tǒng)拓撲結(jié)構(gòu)的前提下制造虛假數(shù)據(jù)。考慮到電力系統(tǒng)中信息傳輸?shù)陌踩?,攻擊者很難完全掌握全部信息。因此,在狀態(tài)信息不完全可知的情況下,制造虛假數(shù)據(jù)變得尤為關(guān)鍵。
交流系統(tǒng)中,輸電線上的潮流計算公式為:
(5)
(6)
式中,bii、gii和bij、gij分別為互導(dǎo)納和自導(dǎo)納;Vi、Vj為節(jié)點電壓;δij為電壓相角差,δij=θi-θj。
由式(5)和式(6)可以看出,電力系統(tǒng)的有功功率和無功功率由電壓幅值和相角差計算得出。換言之,攻擊者只需在特定相角差下構(gòu)造攻擊向量而不需要完全知曉系統(tǒng)的運行狀態(tài)[18]。
對于典型的傳輸網(wǎng)絡(luò),滿足以下公式:
cos(θi-θj)≈1
(7)
sin(θi-θj)≈θi-θj
(8)
Vi≈Vj≈1
(9)
將式(7)~式(9)代入式(5)中可得到:
(10)
式中,xij為線路阻抗。
由此可得,攻擊者根據(jù)電力系統(tǒng)的阻抗和流過線路的潮流可以求得相角差,然后基于相角差構(gòu)造攻擊向量,達到對電力系統(tǒng)進行攻擊的目的。
如式(3)所示,被攻擊者精心設(shè)計的結(jié)構(gòu)良好的虛假數(shù)據(jù)由于符合基爾霍夫定律和電網(wǎng)的運行規(guī)律,在計算殘差的過程中數(shù)據(jù)相互抵消而躲過不良數(shù)據(jù)的辨識。受電力系統(tǒng)拓撲結(jié)構(gòu)的影響,系統(tǒng)狀態(tài)數(shù)據(jù)存在空間相關(guān)性的同時,連續(xù)時間序列中也存在時間相關(guān)性,這種關(guān)系在瞬態(tài)和動態(tài)操作中尤為明顯?;陔娏ο到y(tǒng)數(shù)據(jù)的這種特性,提出了使用小波變換,對節(jié)點狀態(tài)變量進行時-頻域的分析,然后將多尺度分解后,數(shù)據(jù)在頻域的能量值組成特征向量作為自編碼器的輸入,訓(xùn)練表征系統(tǒng)正常運行狀態(tài)的編碼器,并使用訓(xùn)練好的自編碼器對電力系統(tǒng)狀態(tài)估計進行實時檢測,以支撐系統(tǒng)中的不良數(shù)據(jù)檢測模塊,彌補原有檢測方法的不足。
在本節(jié)中,首先闡述了所提方法的運行機制和數(shù)據(jù)結(jié)構(gòu)。然后,對所提方法中所使用的小波分析和自編碼器的原理分別進行了介紹。
圖1 時間序列攻擊檢測模型
為使自編碼器更好地學(xué)習(xí)數(shù)據(jù)的特征,在考慮小波分析工具箱分解效率的基礎(chǔ)上,使用滑動時間窗口將連續(xù)數(shù)據(jù)分割為多個時間斷面分別進行分解,獲取多個時間斷面下的時頻特征數(shù)據(jù)庫ft作為自編碼器的輸入,訓(xùn)練自編碼器。同樣,在實際運行檢測過程中,使用滑動時間窗口對狀態(tài)連續(xù)數(shù)據(jù)進行分割和小波分解,獲得該段數(shù)據(jù)在頻域內(nèi)的能量特征向量,構(gòu)成能量分布圖,并輸入到訓(xùn)練好的稀疏自編碼器中。根據(jù)自編碼器解碼和編碼的運行機制,當輸入序列中存在虛假數(shù)據(jù)時,已完成訓(xùn)練的自編碼器在重新擬合原始特征時,輸入與輸出之間存在偏差,該偏差可通過繪制數(shù)據(jù)圖像直觀看出,也可通過計算偏差值得出,從而確定系統(tǒng)中存在攻擊數(shù)據(jù)。
本文使用標準差作為重構(gòu)數(shù)據(jù)的判定標準,并基于算例分析結(jié)果給標準差設(shè)置閾值τ,如果標準差大于τ,則判定該時間序列中存在不良數(shù)據(jù),反之,則不存在不良數(shù)據(jù)[19,20]。
小波變換能夠清晰地表示出隱藏在時間序列中的變化,充分反應(yīng)系統(tǒng)在不同時間尺度下的變化趨勢。小波分析使用一簇小波函數(shù)系來表示或者逼近某一函數(shù)信號,可在頻域集中展示序列細節(jié),具備在時域和頻域展現(xiàn)局部特征的能力,以檢測信號的瞬態(tài)或奇異點。因此,對于在時間序列中不能被檢測出的攻擊數(shù)據(jù),被分解到頻域時,由于人為構(gòu)造與系統(tǒng)自然運行時頻域特征的差異,能夠被表示出來。小波分析的原理見附錄。
本文使用連續(xù)采樣時刻下狀態(tài)估計值(節(jié)點電壓幅值和相角)組成的時間序列f(t),借助小波變換,對時間序列信號進行平移和伸縮,可獲得不同尺度下的能量分布值,將能量分布值按照時間尺度的順序構(gòu)成特征向量,并將由此獲得的特征作為自編碼器的輸入進行訓(xùn)練。
需要注意的是,考慮小波分析工具的分解性能,本文使用滑動窗口對連續(xù)時間序列進行分割,組成多個連續(xù)時間斷面。將分割后的序列分別進行小波變換,提取多尺度分解下的能量值,按照時間尺度順序組成電壓幅值和相角的能量特征向量,作為由原始時間序列(電壓幅值和相角)提取出的特征,進行后續(xù)分析。
基于以上描述,利用小波分析技術(shù)對狀態(tài)數(shù)據(jù)進行特征構(gòu)造的流程如下:
(1)讀取經(jīng)過不良數(shù)據(jù)辨識后的量測數(shù)據(jù),對量測數(shù)據(jù)進行狀態(tài)估計,獲取連續(xù)節(jié)點狀態(tài)數(shù)據(jù):電壓幅值和相角。
(2)使用滑動時間模塊對連續(xù)的狀態(tài)估計數(shù)據(jù)進行切割,分成多個斷面下的連續(xù)狀態(tài)估計數(shù)據(jù)。
(3)使用小波分析技術(shù)對分割后的連續(xù)狀態(tài)數(shù)據(jù)進行時域和頻域的分解,提取小波分解能量值構(gòu)成特征向量。
(4)利用多個特征向量構(gòu)成分解矩陣繪制多尺度下的能量分布圖,稀疏自編碼器每行的輸入即由分解系數(shù)組成的向量,對稀疏自編碼器進行訓(xùn)練。
自編碼器作為一種自監(jiān)督的深度學(xué)習(xí)方法,可以在輸入數(shù)據(jù)沒有攻擊值的情況下進行訓(xùn)練,基于歷史數(shù)據(jù)學(xué)習(xí)電力系統(tǒng)運行的正常模式。在檢測時,測量實時數(shù)據(jù)狀態(tài)值的偏差程度,從而確定系統(tǒng)中是否存在不良數(shù)據(jù),有效解決了現(xiàn)有虛假數(shù)據(jù)量少的實際情況。
自編碼器的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。由輸入層、表示學(xué)習(xí)特征的隱藏層和重構(gòu)的與輸入層具有相同維度的輸出層構(gòu)成。其中,輸入層和隱藏層構(gòu)成編碼器網(wǎng)絡(luò),對輸入的原始數(shù)據(jù)特征進行學(xué)習(xí)和非線性提取,儲存到隱藏層中作為下一層的輸入;隱藏層和輸出層構(gòu)成解碼器網(wǎng)絡(luò),對隱藏層中的特征進行還原,還原得到的特征理論上與輸入層的原始數(shù)據(jù)非線性近似。
圖2 自編碼器結(jié)構(gòu)圖
y=φ(x)=σ(Wx+b)
(11)
式中,W為權(quán)重矩陣;b為編碼器的偏置向量;σ為激活函數(shù),常用的激活函數(shù)為Sigmoid函數(shù)。然后,利用解碼器對隱層矩陣進行解碼重構(gòu),得到重構(gòu)的狀態(tài)值作為輸出。其中,解碼器的運算公式為:
x′=ψ(y)=σ′(W′y+c)
(12)
式中,W′、c和σ′分別為權(quán)值矩陣、偏置向量和解碼器的激活函數(shù)。編碼器和解碼器的權(quán)值矩陣和偏置向量在訓(xùn)練過程中會動態(tài)調(diào)整,通過使輸入數(shù)據(jù)與輸出數(shù)據(jù)重構(gòu)誤差最小化的方式實現(xiàn)。其中,最優(yōu)化的計算公式為:
φ,ψ=argminL(x,x′)
(13)
式中,L(x,x′)為誤差方程。
為了避免神經(jīng)元的過擬合,學(xué)習(xí)到更具有代表性的特征,避免隱藏神經(jīng)元的數(shù)量較大,不稀疏化無法得到輸入的壓縮表示。本文引入了稀疏自編碼器對數(shù)據(jù)進行訓(xùn)練,在原有損失函數(shù)的基礎(chǔ)上,加上稀疏性約束,其表達公式為:
(14)
在完成稀疏自編碼器的訓(xùn)練,確定好自編碼器的參數(shù)后,可結(jié)合圖1的模型進行后續(xù)的檢測。
本節(jié)使用IEEE 39和IEEE 118算例對論文所提及的檢測方法進行了驗證。在IEEE 39算例中,將中國某地區(qū)變電站一周內(nèi)的連續(xù)有功負荷數(shù)據(jù),按照功率因數(shù)為0.9計算連續(xù)無功負荷數(shù)據(jù),代入到相應(yīng)的負荷節(jié)點中,進行潮流計算,獲取穩(wěn)態(tài)時節(jié)點電壓的幅值和相角,使用本文第2節(jié)所介紹的方法為IEEE 39節(jié)點算例構(gòu)建虛假數(shù)據(jù),在IEEE 118算例中,將美國紐約州內(nèi)各地區(qū)變電站一個月內(nèi)的連續(xù)負荷數(shù)據(jù)代入到相應(yīng)的負荷節(jié)點,計算穩(wěn)態(tài)時節(jié)點的幅值和相角。為生成足夠多的數(shù)據(jù)對自編碼器進行訓(xùn)練和測試,在原有數(shù)據(jù)點的基礎(chǔ)上添加高斯噪聲構(gòu)造數(shù)據(jù)樣本。
本文對深度學(xué)習(xí)工具稀疏自編碼器的超參數(shù)設(shè)置如下:L2權(quán)重調(diào)整器系數(shù)為0.004,稀疏正則項為4,稀疏比例為0.15,在IEEE 39節(jié)點算例中,設(shè)置的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為[200-100-200],進行1 000次迭代訓(xùn)練,計算結(jié)果。在IEEE 118節(jié)點算例中,設(shè)置神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為[300-200-300]。
本文將混淆矩陣作為性能指標,對所提方法的檢測性能進行分析和判定,主要為準確率、正判錯誤率和精確度3個指標。
準確率為判定為正確的樣本數(shù)量與總樣本數(shù)量的比值,準確率越高,算法效果越好,計算式為[22]:
(15)
正判錯誤率表示數(shù)據(jù)中被錯誤預(yù)測的正樣本占全部正樣本的比例,正判錯誤率越低,算法效果越好,計算公式為[16]:
(16)
精確度為數(shù)據(jù)中真正類占被預(yù)測為正確的樣本的比例,精確度越高,算法效果越好。計算公式為:
(17)
式中,Tp為真正類,表示正確地識別正常數(shù)據(jù)的數(shù)量;Tn為真負類,表示正確地識別錯誤數(shù)據(jù)的數(shù)量;Fn為假負類,表示將正常數(shù)據(jù)識別為錯誤數(shù)據(jù)的數(shù)量;Fp為假正類,表示將錯誤數(shù)據(jù)識別為正常數(shù)據(jù)的數(shù)量。
圖3為對IEEE 39算例第5個節(jié)點的前300個幅值和相角進行小波分解后多尺度空間下的能量分布圖,其中左側(cè)為幅值按照100個時間節(jié)點進行小波分解后,多尺度空間下的能量分布圖,右側(cè)為相角按照前述方法進行小波分解的能量分布圖。從圖3中可以明顯看出,小波分析通過時頻轉(zhuǎn)換挖掘數(shù)據(jù)在低頻和高頻的細節(jié),將原始連續(xù)時間序列轉(zhuǎn)換為表征狀態(tài)特征的能量分布圖。通過使用滑動窗口將100 000個狀態(tài)數(shù)據(jù)進行切割,使用小波分析技術(shù)生成多張能量分布圖像,對稀疏自編碼器進行訓(xùn)練,調(diào)整網(wǎng)絡(luò)參數(shù),從而使稀疏自編碼器完成電力系統(tǒng)正常運行時的自監(jiān)督學(xué)習(xí)。
圖3 多尺度分解能量分布圖
圖4為使用本文所提方法進行檢測后的直觀示意圖。圖4(a)為系統(tǒng)中不存在攻擊數(shù)據(jù)時,自編碼器重構(gòu)的多尺度能量分布圖與原始輸入的比較。左側(cè)為原始輸入,右側(cè)為重構(gòu)圖。圖4(b)為系統(tǒng)中存在攻擊數(shù)據(jù)時,自編碼器重構(gòu)的多尺度能量分布灰度圖與原始輸入的比較。為了更清楚地表示重構(gòu)圖與原始輸入圖的差異,本文使用二值函數(shù)進行灰度設(shè)置,對圖像進行表示。
圖4 自編碼器檢驗結(jié)果
從圖4中可看出,當系統(tǒng)中存在攻擊時,基于正常運行條件下的歷史數(shù)據(jù)訓(xùn)練的稀疏自編碼器(沒有虛假數(shù)據(jù)攻擊)所重構(gòu)的能量分布灰度圖與存在虛假數(shù)據(jù)的原始能量分布灰度圖存在明顯差異,從而確定電力系統(tǒng)中存在虛假數(shù)據(jù)的攻擊。相對應(yīng)地,IEEE 118節(jié)點的仿真結(jié)果與上述描述相似。
為了檢測不同的小波分解度對本文所提方法的影響,本文采用db2、db4、db6、db7和db8小波在分解比例為32、48和64的情況下對IEEE 118節(jié)點的測試準確度分別進行了測試,測試結(jié)果見表1。
表1 不同小波分解度下的準確率分析
從測試結(jié)果可以看出,隨著db小波濾波器消失矩的增長,準確率先上升后不斷下降。這是因為db小波的消失矩越大,小波越光滑,通過小波分析對時間序列進行分解所捕捉的細節(jié)越少,越容易掠過被攻擊的數(shù)據(jù),db小波消失矩的值越小,低頻分量越少,會掠過部分低頻的細節(jié),因此準確率相對低。同理,隨著小波分解尺度的增長,準確率逐漸下降,這是因為分解尺度越大,小波越光滑,越容易掠過高頻和低頻的細節(jié)。直到在db8時,無論分解尺度如何變化,準確率均不發(fā)生變化,這說明此時小波濾波器已過于平滑,絕大多數(shù)數(shù)據(jù)細節(jié)已被略過。因此,本文選擇準確度最高的db6小波在分解尺度為48時進行小波分解。
針對滑動時間窗口對本文所提檢測模型準確率的影響,本文針對IEEE 118算例,在滑動窗口W為50,100和150,分解尺度為48的情況下,對不同db小波下的檢測準確率進行了分析,結(jié)果如圖5所示。從圖5中可以看出,滑動時間窗口的取值為100時,在不同的小波分解下準確率最高?;瑒訒r間窗口的取值小,每個時間段內(nèi)的數(shù)據(jù)點不夠,影響檢測準確率?;瑒訒r間窗口的取值越大,對于固定的數(shù)據(jù)樣本,所構(gòu)成的多尺度能量分布圖越少,影響稀疏自編碼器參數(shù)的調(diào)整,因此檢測準確率低。同時,可以看出,對于消失矩不同的db小波,檢測準確率均呈現(xiàn)先升后降的結(jié)果。這與db小波的性質(zhì)有關(guān),消失矩過大,會略過部分高頻細節(jié),相應(yīng)地,消失矩小,會略過部分低頻細節(jié)。因此,本文選取db6小波濾波器進行分析。
圖5 不同滑動窗口下的準確度
本文所使用的閾值為稀疏自編碼器的原始序列與重構(gòu)序列的標準差。誤差值的選擇對虛假數(shù)據(jù)的判定有決定性影響,如果閾值過大,會忽略原本被攻擊的數(shù)據(jù),造成誤判;如果閾值過小,將會使正確數(shù)據(jù)分類為虛假數(shù)據(jù),影響檢測效率。因此,基于不同閾值進行仿真分析,結(jié)果如圖6所示。
圖6 閾值選擇圖譜
從圖6中可以直觀看到,隨著閾值的增長,準確率基本保持不變,在95%左右的位置且逐漸升高,精確度亦是如此。然而,對正判錯誤率而言,在閾值為0.5~0.6的區(qū)間內(nèi),出現(xiàn)了驟降,這說明隨著閾值的增長,將正常數(shù)據(jù)判定為虛假數(shù)據(jù)的概率逐漸升高。因此,綜合實驗分析結(jié)果,選擇閾值為0.52作為區(qū)分虛假數(shù)據(jù)與正常數(shù)據(jù)的標準。
將本文所使用的檢測方法與現(xiàn)有方法做對比,如表2所示。本文所使用方法與現(xiàn)有的深度神經(jīng)網(wǎng)絡(luò)和門控神經(jīng)網(wǎng)絡(luò),在準確度上提高了5%左右。與同樣考慮連續(xù)時間特性的文獻[15]和文獻[20]所提方法相比,本文將連續(xù)時間下的數(shù)據(jù)進行分割,獲取多個時間斷面下的能量分布圖,挖掘數(shù)據(jù)在頻域上的更多細節(jié)。在對稀疏自編碼器進行訓(xùn)練時,采用大量系統(tǒng)正常運行的歷史數(shù)據(jù),用以使深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)電網(wǎng)正常運行的模式畫像。因此,避免了對數(shù)據(jù)進行攻擊與被攻擊兩種不同類型的標記工作。與卷積神經(jīng)網(wǎng)絡(luò)-門控神經(jīng)網(wǎng)絡(luò)相比,使用稀疏化的損失函數(shù),有效避免了門控神經(jīng)網(wǎng)絡(luò)梯度爆炸的問題,并提高了檢測準確度。
表2 不同深度學(xué)習(xí)方法準確率對比
通過計算過程中的損失函數(shù)下降過程,表示本文所提攻擊檢測模型的收斂性。從圖7中可以看出,在IEEE 39算例中,當?shù)?00次左右時,損失函數(shù)值保持在較低水平,收斂速度較快,IEEE 118算例由于使用了更多的隱藏層數(shù),在對損失函數(shù)進行計算時,收斂速度比IEEE 39算例慢,兩者在完成1 000次迭代后,損失函數(shù)值均達至最佳水平且保持穩(wěn)定,說明使用能量分布圖可以迅速對稀疏自編碼器進行調(diào)參,有效學(xué)習(xí)輸入數(shù)據(jù)的特征。
圖7 損失函數(shù)下降過程
基于以上的性能指標,對所提方法進行檢驗,如表3所示??梢钥闯?,對于IEEE 39節(jié)點和IEEE 118節(jié)點而言,IEEE 118節(jié)點算例的準確率和精確度略有提高,這是因為IEEE 118算例的隱藏層數(shù)多,可以更深度地挖掘特征。另外,本文所提方法沒有考慮兩個算例的網(wǎng)架拓撲結(jié)構(gòu),只針對連續(xù)時間內(nèi)的狀態(tài)數(shù)據(jù)進行分析。因此,準確率和精度等參數(shù)的考量不需要獲取電網(wǎng)的拓撲結(jié)構(gòu),在有足夠歷史數(shù)據(jù)的情況下,便可對自編碼器進行訓(xùn)練,然后檢測虛假數(shù)據(jù),且檢測準確率和精確度在96%~99%的范圍內(nèi),可以實現(xiàn)對虛假數(shù)據(jù)的有效檢測。
表3 虛假數(shù)據(jù)檢測方法的性能分析
本文基于電力系統(tǒng)的交流狀態(tài)估計場景,考慮電力系統(tǒng)狀態(tài)值的時間特性和現(xiàn)有虛假數(shù)據(jù)量少的實際情況,提出了使用小波分析將時序數(shù)據(jù)轉(zhuǎn)換到時頻域,然后利用時頻域的數(shù)據(jù)訓(xùn)練自編碼器,得到合適的訓(xùn)練參數(shù),再將已訓(xùn)練好的自編碼器進行線上檢測,以協(xié)助不良數(shù)據(jù)檢測模塊檢測出攻擊數(shù)據(jù)的方法。本文對所提方法進行了介紹,然后通過算例分析對所提方法進行了驗證。使用無監(jiān)督學(xué)習(xí)方法,可以擺脫電力系統(tǒng)拓撲結(jié)構(gòu)的限制,提高了檢測準確率,同時有效解決了虛假數(shù)據(jù)量少的實際問題。
附錄
1 狀態(tài)估計
交流潮流模型中,量測值z與狀態(tài)變量x的關(guān)系為:
z=h(x)+e
式中,h為考慮交流系統(tǒng)拓撲結(jié)構(gòu)的雅克比矩陣;x為系統(tǒng)狀態(tài)變量,通常為各節(jié)點的電壓模值與電壓相角;z為來自數(shù)據(jù)采集中心的量測值,通常由智能電表、PMU等量測設(shè)備獲得并由控制中心收集。
W{z(t)-h[x(t)]}
式中,W為加權(quán)正定矩陣。
對以上方程求解后,得量測值殘差r為:
r=z(t)-h[x(t)]
求解得到的殘差值可用于不良數(shù)據(jù)檢測,以得到量測結(jié)果。但不良數(shù)據(jù)檢測只能檢測出由于測量儀器毀壞或系統(tǒng)擾動而存在偏差的不良數(shù)據(jù),難以檢測出攻擊者精心設(shè)計注入的虛假數(shù)據(jù)。
2 小波分析的工作原理
小波函數(shù)具有振蕩性,能夠在短時間內(nèi)衰減到零。小波函數(shù)的這一特性表示如下[22,23]:
式中,ψ(t)為小波基函數(shù),可以進行伸縮和平移,從而得到一簇函數(shù)系,即:
式中,a,b∈R,a≠0,a為尺度因子,控制小波函數(shù)的伸縮;b為平移量,控制小波函數(shù)的平移。兩者用于表征連續(xù)信號的時頻多尺度特征。
對于給定的信號f(t),連續(xù)小波變換為:
式中,Wf(a,b)為小波變換系數(shù)。