【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)

这篇具有很好参考价值的文章主要介绍了【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

文献来源:

【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)

文献分享阅读:

我用夸克网盘分享了「【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策.pdf」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
链接:夸克网盘分享
提取码:4vRm 

虚假数据注入攻击(FDIA)已被证明是对抗电力系统的严重安全挑战之一。这正成为电力公司日益关注的问题,最近引起了电力系统研究人员和工程师的注意。因此,电力系统运行和规划中的状态估计是监测和控制系统通过电表测量和电力系统拓扑估计电力系统最佳状态的重要和必不可少的工具。因此,本文提出了避免系统内不必要的完全停电的建模和对策。本文还考虑了输电和配电系统对FDIA的脆弱性。本文的结果可为制定针对电力系统网络漏洞的必要保护对策奠定基础。

原文摘要:

Abstract:

False Data Injection Attacks (FDIA) has been shown to be one of the serious security challenges combating power systems. This is becoming a grown concern to power utilities and has drawn the attention of power system researchers and Engineers in recent times. State estimation in power system operation and planning is therefore an important and an essential tool for monitoring and controlling the system to estimate the best state of the power system through meter measurements and power system topologies. This paper therefore presents the modeling and countermeasures for avoiding unnecessary total blackout within the system. The vulnerability of both the Transmission and the distribution power system to FDIA is also considered in this paper. The outcomes of this paper could serve as a basis for the development of necessary protective countermeasures against vulnerabilities within power system networks.

确保任何系统的数据完整性和安全性对于安全运行和保护系统免受操纵至关重要。随着传统电网被智能电网取代,这就构成了电网容易受到网络攻击的情况[1]。智能电网作为国家关键基础设施,是一个将网络和物理系统集成在一起的系统,该系统的不同部分之间不断通信。因此,确保数据完整性并保护系统免受操纵非常重要。物联网(IoT)的应用使通信链路和整个电力系统容易受到攻击。电网不能被描述为传统的网络系统,而是一个信息物理系统,其特征是网络和物理系统之间的通信或集成[2]。智能电网带来的进步在自动化、电网监控和管理、智能计量基础设施和客户端管理领域值得称赞。由此产生的电力系统的通信网络更容易受到入侵者的攻击和操纵[2]。

智能电网的一个重要元素是状态估计。状态估计的输入仅限于负载总线上的P,Q注入和电压控制总线上的PV值。需要状态估计有两个原因。首先,来自远程终端单元(RTU)和传感器等现场设备的测量被认为是有噪声的,并且包含一些误差。其次,在潮流的情况下,测量值包含一些变量,例如PQ线流,这些变量对于潮流计算不是必需的。因此,运行状态的最佳估计是通过状态估计获得的,并且该估计值在被接受之前需要进行统计分析[3]。

电力系统由能源管理系统(EMS)或监督控制和数据采集(SCADA)系统持续监测和控制,这些系统需要状态估计器的输入来维持电力系统的运行状态。SCADA系统从现场设备(如网络中的传感器)收集测量值。传感器测量值用作状态估计器的输入。状态估计器根据这些测量值估计电力系统的真实状态。状态估计器的输出是一些电压幅度和相位角。控制动作和能量管理系统依赖于状态估计器的输出,以实现电力系统的安全运行。因此,状态估计使用来自仪表测量的数据,计算这些测量的最佳估计值,然后将结果用于控制网格。因此,状态估计在电力系统监测和控制中起着重要作用[3] [4]。

状态估计给出了电力系统真实状态的估计,大多数控制动作、研究和系统操作都依赖于状态估计。对电力系统状态估计的攻击往往会危及电网。电力系统模型可以是交流或直流,其中交流模型同时考虑实际功率和无功功率,因此该模型的方程变为非线性。对于简化的直流模型,方程是线性的,不需要迭代。

电网对攻击的敏感性是由于电网作为网络物理系统的架构,通信链路更容易受到网络物理攻击。配备智能电表的先进计量系统基础设施的引入在实现智能电网方面发挥了重要作用。然而,由于电网上有许多输入或插座可用,系统就越脆弱[4]。

针对电网的攻击之一是虚假数据注入攻击(FDIA)。FDIA 是一种针对电力系统中状态估计的数据完整性攻击,攻击者会破坏传感器节点。大多数情况下,攻击者操纵和误导系统操作员发出不准确的命令,如果不快速检测和控制,会导致电力系统停电[6]。因此,FDIA的后果是重大设备故障和完全停电。通过破坏智能电表测量、传感器或远程终端单元 (RTU) 或侵入网络上的监控通信 [7],可能会注入虚假数据。

攻击者可以插入通常不会被BDD检测到的测量值[8]。了解电力系统的当前配置可能会导致BDD的当前实现无法检测到攻击,因为攻击者希望注入与估计状态密切相关的数据。大多数BDD技术基于最小加权平方法。了解电源系统配置肯定会违反这种方法。许多研究表明,保护一些战略性选择的仪表测量值,以防止FDIA [4],[9],[10]。确定一组仪表测量值,以便攻击者注入 FDA 所需的矢量受到限制是一种很好的做法。但是,这种方法不会完全使系统免受攻击,并且必须始终提供受保护传感器的测量值。对于实际系统,可能无法实现仪表免受攻击的绝对保护。由于SCADA设备和网络拓扑各不相同,因此正确监控系统以确定最合适的FDIA实施非常重要。因此,需要制定超越这些传统方法的检测方法,因为攻击者可以利用最小二乘法允许的误差范围之间的测量而不会被检测到[6]。

因此,考虑到电网作为国家关键基础设施的重要性以及FDIA对电力系统的严重影响,确保数据完整性和电网保护非常重要[5]。网络计算应用带来的自动化导致电网容易受到网络攻击。就像传统的网络系统一样,系统上可用的许多插座或连接链接往往会增加其漏洞[1]。针对状态估计的虚假数据注入攻击 (FDIA) 被证明是攻击者通过向电力系统注入错误或错误仪表测量来破坏电力系统运行的一种方式。

大多数系统参数(如系统稳定性和控制)都取决于状态估计。状态估计参数是做出基于系统的物理系统稳定性和控制决策所必需的。FDIA可能会误导系统运营商根据注入的数据做出不准确的决策。最近,已经证明虚假数据注入(FDI)攻击可以绕过当今EMS / SCADA系统中的错误数据检测(BDD)而不会被发现[2] [8] [11]。

📚2 运行结果

Del = 180/pi*del;
E2 = [V Del]; % Bus Voltages and angles..
disp('-------- State Estimation ------------------');
disp('--------------------------');
disp('| Bus |    V   |  Angle  | ');
disp('| No  |   pu   |  Degree | ');
disp('--------------------------');
for m = 1:num
    fprintf('%4g', m); fprintf('  %8.4f', V(m)); fprintf('   %8.4f', Del(m)); fprintf('\n');
end
disp('---------------------------------------------');

【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)

【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现) 【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)

【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)  

主函数代码:

% Power System State Estimation using Weighted Least Square Method..

num = 30; % IEEE - 14 or IEEE - 30 bus system..(for IEEE-14 bus system replace 30 by 14)...
ybus = ybusppg(num); % Get YBus..
zdata = zdatas(num); % Get Measurement data..
bpq = bbusppg(num); % Get B data..
nbus = max(max(zdata(:,4)),max(zdata(:,5))); % Get number of buses..
type = zdata(:,2); % Type of measurement, Vi - 1, Pi - 2, Qi - 3, Pij - 4, Qij - 5, Iij - 6..
z = zdata(:,3); % Measuement values..
fbus = zdata(:,4); % From bus..
tbus = zdata(:,5); % To bus..
Ri = diag(zdata(:,6)); % Measurement Error..
V = ones(nbus,1); % Initialize the bus voltages..
del = zeros(nbus,1); % Initialize the bus angles..
E = [del(2:end); V];   % State Vector..
G = real(ybus);
B = imag(ybus);

vi = find(type == 1); % Index of voltage magnitude measurements..
ppi = find(type == 2); % Index of real power injection measurements..
qi = find(type == 3); % Index of reactive power injection measurements..
pf = find(type == 4); % Index of real powerflow measurements..
qf = find(type == 5); % Index of reactive powerflow measurements..

nvi = length(vi); % Number of Voltage measurements..
npi = length(ppi); % Number of Real Power Injection measurements..
nqi = length(qi); % Number of Reactive Power Injection measurements..
npf = length(pf); % Number of Real Power Flow measurements..
nqf = length(qf); % Number of Reactive Power Flow measurements..

iter = 1;
tol = 5;

while(tol > 1e-4)
    
    %Measurement Function, h
    h1 = V(fbus(vi),1);
    h2 = zeros(npi,1);
    h3 = zeros(nqi,1);
    h4 = zeros(npf,1);
    h5 = zeros(nqf,1);
    
    for i = 1:npi
        m = fbus(ppi(i));
        for k = 1:nbus
            h2(i) = h2(i) + V(m)*V(k)*(G(m,k)*cos(del(m)-del(k)) + B(m,k)*sin(del(m)-del(k)));
        end
    end
    
    for i = 1:nqi
        m = fbus(qi(i));
        for k = 1:nbus
            h3(i) = h3(i) + V(m)*V(k)*(G(m,k)*sin(del(m)-del(k)) - B(m,k)*cos(del(m)-del(k)));
        end
    end
    
    for i = 1:npf
        m = fbus(pf(i));
        n = tbus(pf(i));
        h4(i) = -V(m)^2*G(m,n) - V(m)*V(n)*(-G(m,n)*cos(del(m)-del(n)) - B(m,n)*sin(del(m)-del(n)));
    end
    
    for i = 1:nqf
        m = fbus(qf(i));
        n = tbus(qf(i));
        h5(i) = -V(m)^2*(-B(m,n)+bpq(m,n)) - V(m)*V(n)*(-G(m,n)*sin(del(m)-del(n)) + B(m,n)*cos(del(m)-del(n)));
    end
    
    h = [h1; h2; h3; h4; h5];
    
    % Residue..
    r = z - h;
    
    % Jacobian..
    % H11 - Derivative of V with respect to angles.. All Zeros
    H11 = zeros(nvi,nbus-1);

    % H12 - Derivative of V with respect to V.. 
    H12 = zeros(nvi,nbus);
    for k = 1:nvi
        for n = 1:nbus
            if n == k
                H12(k,n) = 1;
            end
        end
    end

    % H21 - Derivative of Real Power Injections with Angles..
    H21 = zeros(npi,nbus-1);
    for i = 1:npi
        m = fbus(ppi(i));
        for k = 1:(nbus-1)
            if k+1 == m
                for n = 1:nbus
                    H21(i,k) = H21(i,k) + V(m)* V(n)*(-G(m,n)*sin(del(m)-del(n)) + B(m,n)*cos(del(m)-del(n)));
                end
                H21(i,k) = H21(i,k) - V(m)^2*B(m,m);
            else
                H21(i,k) = V(m)* V(k+1)*(G(m,k+1)*sin(del(m)-del(k+1)) - B(m,k+1)*cos(del(m)-del(k+1)));
            end
        end
    end
    
    % H22 - Derivative of Real Power Injections with V..
    H22 = zeros(npi,nbus);
    for i = 1:npi
        m = fbus(ppi(i));
        for k = 1:(nbus)
            if k == m
                for n = 1:nbus
                    H22(i,k) = H22(i,k) + V(n)*(G(m,n)*cos(del(m)-del(n)) + B(m,n)*sin(del(m)-del(n)));
                end
                H22(i,k) = H22(i,k) + V(m)*G(m,m);
            else
                H22(i,k) = V(m)*(G(m,k)*cos(del(m)-del(k)) + B(m,k)*sin(del(m)-del(k)));
            end
        end
    end
    
    % H31 - Derivative of Reactive Power Injections with Angles..
    H31 = zeros(nqi,nbus-1);
    for i = 1:nqi
        m = fbus(qi(i));
        for k = 1:(nbus-1)
            if k+1 == m
                for n = 1:nbus
                    H31(i,k) = H31(i,k) + V(m)* V(n)*(G(m,n)*cos(del(m)-del(n)) + B(m,n)*sin(del(m)-del(n)));
                end
                H31(i,k) = H31(i,k) - V(m)^2*G(m,m);
            else
                H31(i,k) = V(m)* V(k+1)*(-G(m,k+1)*cos(del(m)-del(k+1)) - B(m,k+1)*sin(del(m)-del(k+1)));
            end
        end
    end
    
    % H32 - Derivative of Reactive Power Injections with V..
    H32 = zeros(nqi,nbus);
    for i = 1:nqi
        m = fbus(qi(i));
        for k = 1:(nbus)
            if k == m
                for n = 1:nbus
                    H32(i,k) = H32(i,k) + V(n)*(G(m,n)*sin(del(m)-del(n)) - B(m,n)*cos(del(m)-del(n)));
                end
                H32(i,k) = H32(i,k) - V(m)*B(m,m);
            else
                H32(i,k) = V(m)*(G(m,k)*sin(del(m)-del(k)) - B(m,k)*cos(del(m)-del(k)));
            end
        end
    end
    
    % H41 - Derivative of Real Power Flows with Angles..
    H41 = zeros(npf,nbus-1);
    for i = 1:npf
        m = fbus(pf(i));
        n = tbus(pf(i));
        for k = 1:(nbus-1)
            if k+1 == m
                H41(i,k) = V(m)* V(n)*(-G(m,n)*sin(del(m)-del(n)) + B(m,n)*cos(del(m)-del(n)));
            else if k+1 == n
                H41(i,k) = -V(m)* V(n)*(-G(m,n)*sin(del(m)-del(n)) + B(m,n)*cos(del(m)-del(n)));
                else
                    H41(i,k) = 0;
                end
            end
        end
    end
    
    % H42 - Derivative of Real Power Flows with V..
    H42 = zeros(npf,nbus);
    for i = 1:npf
        m = fbus(pf(i));
        n = tbus(pf(i));
        for k = 1:nbus
            if k == m
                H42(i,k) = -V(n)*(-G(m,n)*cos(del(m)-del(n)) - B(m,n)*sin(del(m)-del(n))) - 2*G(m,n)*V(m);
            else if k == n
                H42(i,k) = -V(m)*(-G(m,n)*cos(del(m)-del(n)) - B(m,n)*sin(del(m)-del(n)));
                else
                    H42(i,k) = 0;
                end
            end
        end
    end
    
    % H51 - Derivative of Reactive Power Flows with Angles..
    H51 = zeros(nqf,nbus-1);
    for i = 1:nqf
        m = fbus(qf(i));
        n = tbus(qf(i));
        for k = 1:(nbus-1)
            if k+1 == m
                H51(i,k) = -V(m)* V(n)*(-G(m,n)*cos(del(m)-del(n)) - B(m,n)*sin(del(m)-del(n)));
            else if k+1 == n
                H51(i,k) = V(m)* V(n)*(-G(m,n)*cos(del(m)-del(n)) - B(m,n)*sin(del(m)-del(n)));
                else
                    H51(i,k) = 0;
                end
            end
        end
    end
    
    % H52 - Derivative of Reactive Power Flows with V..
    H52 = zeros(nqf,nbus);
    for i = 1:nqf
        m = fbus(qf(i));
        n = tbus(qf(i));
        for k = 1:nbus
            if k == m
                H52(i,k) = -V(n)*(-G(m,n)*sin(del(m)-del(n)) + B(m,n)*cos(del(m)-del(n))) - 2*V(m)*(-B(m,n)+ bpq(m,n));
            else if k == n
                H52(i,k) = -V(m)*(-G(m,n)*sin(del(m)-del(n)) + B(m,n)*cos(del(m)-del(n)));
                else
                    H52(i,k) = 0;
                end
            end
        end
    end
    
    % Measurement Jacobian, H..
    H = [H11 H12; H21 H22; H31 H32; H41 H42; H51 H52];
    
    % Gain Matrix, Gm..
    Gm = H'*inv(Ri)*H;
    
    %Objective Function..
    J = sum(inv(Ri)*r.^2);  
    
    % State Vector..
    dE = inv(Gm)*(H'*inv(Ri)*r);
    E = E + dE;
    del(2:end) = E(1:nbus-1);
    V = E(nbus:end);
    iter = iter + 1;
    tol = max(abs(dE));
end

CvE = diag(inv(H'*inv(Ri)*H)); % Covariance matrix..

Del = 180/pi*del;
E2 = [V Del]; % Bus Voltages and angles..
disp('-------- State Estimation ------------------');
disp('--------------------------');
disp('| Bus |    V   |  Angle  | ');
disp('| No  |   pu   |  Degree | ');
disp('--------------------------');
for m = 1:num
    fprintf('%4g', m); fprintf('  %8.4f', V(m)); fprintf('   %8.4f', Del(m)); fprintf('\n');
end
disp('---------------------------------------------');

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]A. S. Alayande, N. Nwulu and A. E. Bakare, "Modelling and Countermeasures of False Data Injection Attacks Against State Estimation in Power Systems," 2018 International Conference on Computational Techniques, Electronics and Mechanical Systems (CTEMS), Belgaum, India, 2018, pp. 129-134, doi: 10.1109/CTEMS.2018.8769295.文章来源地址https://www.toymoban.com/news/detail-420794.html

🌈4 Matlab代码实现

到了这里,关于【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【鲁棒、状态估计】用于电力系统动态状态估计的鲁棒迭代扩展卡尔曼滤波器研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 IEEE14节点  ​ 2.2 IEEE30节点  ​  2.3 

    2024年02月07日
    浏览(39)
  • 【​电力电子在电力系统中的应用​】4 频率突变情况下的三相逆变电路工作状态

    【仅供参考 】 【2023.03西南交大电力电子在电力系统中的应用】 目录 0 仿真要求 1 仿真电路搭建 2 波形记录及分析         1.在MATLAB/Simulink中搭建三相逆变电路仿真模型;         2.给出逆变给定电压参考、调制波形;         3.仿真分析带载的交流电压波形、交流电

    2024年01月17日
    浏览(55)
  • Python深度数据挖掘之电力系统负荷预测

      本案例将根据已收集到的电力数据,深度挖掘各电力设备的电流、电压和功率等情况,分析各电力设备的实际用电量,进而为电力公司制定电能能源策略提供一定的参考依据。更多详细内容请参考《Python数据挖掘:入门进阶与实用案例分析》一书。   为了更好地监测用

    2024年02月08日
    浏览(42)
  • 【数据挖掘torch】 基于LSTM电力系统负荷预测分析(Python代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 1.1 地区负荷的中短期预测分析 1.2 行业负荷的中期预测分

    2024年02月14日
    浏览(58)
  • 【机组组合】基于数据驱动的模型预测控制电力系统机组组合优化【IEEE24节点】(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 UC_original  2.2 UC_compact 2.3 SCi结果  🎉

    2024年02月07日
    浏览(51)
  • 【多区域电力系统模型】三区域电力系统的LQR和模糊逻辑控制(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 多区域

    2024年02月08日
    浏览(55)
  • 【电力电子在电力系统中的应用】1 具有输出限幅的离散系统的PID控制器

    【仅供参考 】 【2023.03西南交大电力电子在电力系统中的应用】 目录 0 仿真要求 1 PID控制器的设计与封装 1.1 搭建仿真电路 1.2 对PID控制器部分封装为subsystem模块  1.3 创建Mask模块 2 PID控制器的参数选择 2.1 Kp参数的调节 2.2 Ki参数的调节 2.3 Kd参数的调节         1、针对极

    2024年01月16日
    浏览(44)
  • 浅谈安科瑞电力智能运维在高速铁路电力系统的应用分析

    摘  要: 高速铁路电力智能运维管理系统采用终端感知层、系统网络层、系统平台层的三层网络架构模式,通过集成网关,共享通信传输设备,利用铁路专用运维传输网络通道将各类监测数据上传至运维管理平台数据进行实时分析,建立了统一的智能运维建设标准、一体化共

    2024年02月04日
    浏览(41)
  • 电力系统知识预备及学习方向

    由于电源点与负荷中心多数处于不同地区,也无法大量储存,故其生产、输送、分配和消费都在同一时间内完成,并在同一地域内有机地组成一个整体,电能生产必须时刻保持与消费平衡。因此,电能的集中开发与分散使用,以及电能的连续供应与负荷的随机变化,就制约了

    2024年02月09日
    浏览(40)
  • 电力拖动自动控制系统

    J:机械转动惯量(kg/m2);wm:转子的机械角速度(rad/s); m :转子的机械转角;Te:电磁转矩(N.m);TL:负载转矩(N.m); D:阻转矩阻尼系数;K:扭转弹性转矩系数 忽略阻尼转矩和扭转弹性转矩,运动控制系统的简化运动方程式: l转矩控制是运动控制的根本问题 要控制

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包