????????歡迎來到本博客????????
??博主優(yōu)勢(shì):??????博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。
??座右銘:行百里者,半于九十。
??????本文目錄如下:??????
目錄
??1 概述
??2 運(yùn)行結(jié)果
?
??3?參考文獻(xiàn)
??4 Matlab代碼實(shí)現(xiàn)
?
??1 概述
如今現(xiàn)代電力系統(tǒng)正在向智能化方向發(fā)展,大量的智能設(shè)備,如智能儀表和傳感器,促進(jìn)了電力系統(tǒng)在發(fā)電、變電、輸電和配電模式方面的轉(zhuǎn)變,使得智能電網(wǎng)成為一個(gè)典型的網(wǎng)絡(luò)物理系統(tǒng),即將物理電力傳輸系統(tǒng)和計(jì)算機(jī)網(wǎng)絡(luò)相結(jié)合。在智能電網(wǎng)中,監(jiān)督控制和數(shù)據(jù)采集系統(tǒng)(SCADA)實(shí)時(shí)收集外場(chǎng)設(shè)備通過網(wǎng)絡(luò)發(fā)送來的數(shù)據(jù),進(jìn)行分析后向控制中心匯報(bào)收集到的信息,控制中心根據(jù)這些信息對(duì)電網(wǎng)的發(fā)電配電進(jìn)行調(diào)整。
在享受智能電網(wǎng)帶來便利的同時(shí),由于使用了大量智能設(shè)備以及通過網(wǎng)絡(luò)來收發(fā)數(shù)據(jù),使得智能電網(wǎng)更容易遭到攻擊者的攻擊。最為顯著的是通過有預(yù)謀地篡改智能設(shè)備的數(shù)據(jù)來達(dá)到攻擊電力系統(tǒng)的目的,稱之為虛假數(shù)據(jù)注入攻擊(FDIA)。為了保障電力服務(wù)的平穩(wěn)運(yùn)行,智能電網(wǎng)的檢測(cè)至關(guān)重要。
FDIA 的攻擊目標(biāo)主要包括測(cè)量單元、通信網(wǎng)絡(luò)和控制設(shè)備。由于控制設(shè)備往往保護(hù)級(jí)別較高,而難以入侵,因此,F(xiàn)DIA 通常以前兩種方式實(shí)施。在實(shí)施 FDIA 過程中,攻擊者首要任務(wù)是入侵系統(tǒng)網(wǎng)絡(luò)。例如,為了破壞測(cè)量單元(例如,遠(yuǎn)程終端單元和向量測(cè)量單元)的數(shù)據(jù),攻擊者往往利用加密和認(rèn)證機(jī)制固有的漏洞來進(jìn)行入侵并修改原始數(shù)據(jù)。在文獻(xiàn)[17]中,研究人員揭示了通過欺騙向量測(cè)量單元全球定位系統(tǒng)的時(shí)間同步攻擊。由于全球定位系統(tǒng)信號(hào)并無加密或授權(quán)機(jī)制,攻擊者可以產(chǎn)生偽冒的全球定位系統(tǒng)信號(hào),而接收器無法從原始數(shù)據(jù)中辨別出來。
攻擊者在侵入系統(tǒng)網(wǎng)絡(luò)后,可以獲得測(cè)量修改權(quán)限。根據(jù)潮流規(guī)律,某一測(cè)量值的變化會(huì)引起相鄰測(cè)量值的變化。當(dāng)偽造一個(gè)數(shù)據(jù)(例如節(jié)點(diǎn)或傳輸線路的測(cè)量值)時(shí),為了繞過壞數(shù)據(jù)檢測(cè),攻擊者會(huì)考慮潮流定律,找到測(cè)量數(shù)據(jù)相應(yīng)改變的最小空間。而將需要協(xié)同攻擊的最小空間定義為該數(shù)據(jù)在執(zhí)行 FDIA 時(shí)滿足潮流規(guī)律和最優(yōu)資源利用規(guī)律的最小相關(guān)空間[18]。
狀態(tài)估計(jì)方法分為靜態(tài)估計(jì)和動(dòng)態(tài)估計(jì)。傳統(tǒng)的電力系統(tǒng)狀態(tài)估計(jì)方法采用的是加權(quán)最小二乘估計(jì)器等靜態(tài)估計(jì)方法。這是建立在電力系統(tǒng)具有足夠冗余且處于穩(wěn)態(tài)狀態(tài)的假設(shè)之上的[8]。然而,由于用電需求和發(fā)電量是實(shí)時(shí)變化的,因此真實(shí)的電力系統(tǒng)并不是在穩(wěn)定狀態(tài)下運(yùn)行[19]。同時(shí)靜態(tài)估計(jì)方法僅考慮當(dāng)前時(shí)刻數(shù)據(jù),沒有關(guān)聯(lián)先前的狀態(tài),因此其估計(jì)結(jié)果精度不佳。為了解決這些問題,動(dòng)態(tài)狀態(tài)估計(jì)器如卡爾曼濾波器被引入電力系統(tǒng)狀態(tài)估計(jì)[20]。接下來討論了不同的基于狀態(tài)估計(jì)的 FDIA 檢測(cè)方案,其分類如圖 3.2 所示。(本文選擇KF)
?
??2 運(yùn)行結(jié)果
clf
subplot(311), plot(t,yt,'b',t,y_hat,'r--'),?
xlabel('Number of Samples'), ylabel('Output')
title('Kalman Filter Response')
legend('True','Filtered')
subplot(312), plot(t,yt-y,'g',t,yt-y_hat,'r--'),
xlabel('Number of Samples'), ylabel('Error')
legend('True - measured','True - filtered')subplot(313), plot(t, state,'g',t,[x1_hat, x2_hat,x3_hat],'r--'),
xlabel('Number of Samples'), ylabel('State')
legend('True - state','True - filtered')
?
....
figure;
plot(t, filtered, t, v);
ylim([-2 2]);
xlabel('time (in seconds)');
legA = legend('filtered','real');
set(legA,'FontSize',12)
title('signal vs. estimation');
grid on
??
??
?[y_o,t_o,x_o] = lsim( sys, [u 0*w], t); ? ? % IDEAL behavior for comparison
figure(1)
for k = 1:length(sys.A)
? ? subplot( round((length(sys.A)+1)/2 ),2,k)
? ? plot(t,x_o(:,k),'k','linewidth',2); hold on;
? ? plot(t,x_(:,k),'bo:','linewidth',2);?
? ? stairs(t,x(:,k),'r','linewidth',1.5);
? ? xlabel('Time (s)'); ylabel('Amplitude'); title(['State x_' num2str(k) '(t)']); grid on;
? ? legend('ideal','real','estimated'); hold off;
end
subplot( round((length(sys.A)+1)/2 ),2,k+1)
plot(t,y_o,'k','linewidth',2); hold on;
plot(t,z,'bo:','linewidth',2);
stairs(t,y,'r','linewidth',1.5);
xlabel('Time (s)'); ylabel('Amplitude'); title('Output y(t)'); grid on;
legend('ideal','measured','estimated');
%Generate process noise and sensor noise vectors using the same noise covariance values Q and R that you used to design the filter.
rng(10,'twister');
w1 = sqrt(Q)*randn(length(t),1);
v1 = sqrt(R)*randn(length(t),1);%Finally, simulate the response using lsim.
out = lsim(SimModel,[u,w1,v1]);
%lsim generates the response at the outputs yt and ye to the inputs applied at w, v, and u. Extract the yt and ye channels and compute the measured response.yt = out(:,1); ? % true response
ye = out(:,2); ?% filtered response
y = yt + v1; ? ? % measured response%Compare the true response with the filtered response.
clf
subplot(211), plot(t,yt,'b',t,ye,'r--'),?
xlabel('Number of Samples'), ylabel('Output')
title('Kalman Filter Response')
legend('True','Filtered')
subplot(212), plot(t,yt-y,'g',t,yt-ye,'r--'),
xlabel('Number of Samples'), ylabel('Error')
legend('True - measured','True - filtered')%covariance of the error before filtering (measurement error covariance)
MeasErr = yt-yt;
MeasErrCov = sum(MeasErr.*MeasErr)/length(MeasErr) ?%=0
% and after filtering (estimation error covariance)
EstErr = yt-ye;
EstErrCov = sum(EstErr.*EstErr)/length(EstErr)
% so the Kalman filter reduces the error yt - y due to measurement noise
% Kalman filter
[y_hat, ~, ~, P_last, K_last, x_hat, K_steps, P_steps] = kalmanfilter(y, Q, R, StopTime);e_real = x - x_hat; %state error
figure();
plot(t,y, t, y_hat);
ylim([-1.5,1.5]);
legA = legend('real','estimated');
title('true signal and filtered signal without attack');grid on;
??3?參考文獻(xiàn)
部分理論來源于網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系刪除。文章來源:http://www.zghlxwxcb.cn/news/detail-462133.html
[1]徐俐. 智能電網(wǎng)虛假數(shù)據(jù)注入攻擊及檢測(cè)技術(shù)研究[D].廣州大學(xué),2022.DOI:10.27040/d.cnki.ggzdu.2022.001248.文章來源地址http://www.zghlxwxcb.cn/news/detail-462133.html
??4 Matlab代碼實(shí)現(xiàn)
到了這里,關(guān)于針對(duì)KF狀態(tài)估計(jì)的電力系統(tǒng)虛假數(shù)據(jù)注入攻擊研究(Matlab代碼實(shí)現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!