【智能电网】智能电网中针对DOS和FDIA的弹性分布式EMA(Matlab代码实现)

 

欢迎来到本博客❤️❤️

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

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

本文目录如下:

目录

1 概述

2 运行结果​编辑

3 参考文献

4 Matlab代码实现


1 概述

​智能电网是一种典型的信息物理融合系统,也是关系国民经济发展和国家安全的重大关键基础设施,其安全稳定运行至关重要。近年来,国内外智能电网由于外部攻击而导致的重大安全事件时有发生,智能电网面临的信息物理安全威胁日益严峻。假数据注入攻击作为一种新型恶意网络攻击,能够篡改智能电表中的“互动”用电信息并对智能电网的安全运行产生严重影响。

2 运行结果

 

 主函数部分代码:

clear;clc;
n = 8;
​
% weight matrix
W = [
     2/8, 3/8, 3/8, 0/8, 0/8, 0/8, 0/8, 0/8;
     1/8, 4/8, 0/8, 1/8, 1/8, 1/8, 0/8, 0/8;
     2/8, 0/8, 2/8, 0/8, 0/8, 0/8, 2/8, 2/8;
     0/8, 4/8, 0/8, 4/8, 0/8, 0/8, 0/8, 0/8;
     0/8, 4/8, 0/8, 0/8, 4/8, 0/8, 0/8, 0/8;
     0/8, 4/8, 0/8, 0/8, 0/8, 4/8, 0/8, 0/8;
     0/8, 0/8, 4/8, 0/8, 0/8, 0/8, 4/8, 0/8;
     0/8, 0/8, 4/8, 0/8, 0/8, 0/8, 0/8, 4/8;
    ];
 
a = [0.0024, 0.0545, 0.0877, 0.0056, 0.0547, 0.1041, 0.0870, 0.0072];
b = [5.56, 18.43, 13.17, 4.32, 15.46, 10.03, 8.45, 6.60];
p_min = [60, 50, 100, 25, 40, 30, 80, 28];
p_max = [339.69, 100.34, 159.13, 479.10, 80.56, 123.98, 109.55, 290.4];
​
% Initialize
lambda_state = zeros(1, n);
P_state = zeros(1, n);
delta_state = zeros(1, n);
for i = 1 : 1 : n
    if i == 1 || i == 4 || i == 8
        lambda_state(i) = 2 * a(i) + b(i);
    else
        lambda_state(i) = -2 * a(i) + b(i);
    end
end
​
% save data for output result
for i = 1 : 1 : n
    Lambda{i} = lambda_state(i);
    P_axis{i} = 0;
    Delta{i} = 0;
end
k_axis = 0;
delta_p = 0;
social_welfare = 0;
​
eta = 0.001;
k_max = 350;
​
for k = 1 : 1 : k_max
​
    % lambda iteration
    for i = 1 : 1 : n
        sigma = 0;
        for j = 1 : 1 : n
            sigma = sigma + W(i, j) * lambda_state(j);
        end
        lambda_state(i) = sigma + eta * delta_state(i);
​
        Lambda{i}(end + 1) = lambda_state(i);
    end

3 参考文献

[1]杨新宇, 智能电网中针对“互动”用电信息的假数据注入攻击危害分析及防御策略研究. 陕西省,西安交通大学,2018-03-20.

部分理论引用网络文献,若有侵权联系博主删除。

4 Matlab代码实现

你可能感兴趣的:(电力系统,matlab,开发语言)