> 文章列表 > 智能电网中针对DOS和FDIA的弹性分布式EMA(Matlab代码实现)

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

智能电网中针对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 : nif i == 1 || i == 4 || i == 8lambda_state(i) = 2 * a(i) + b(i);elselambda_state(i) = -2 * a(i) + b(i);end
end
​
% save data for output result
for i = 1 : 1 : nLambda{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 iterationfor i = 1 : 1 : nsigma = 0;for j = 1 : 1 : nsigma = sigma + W(i, j) * lambda_state(j);endlambda_state(i) = sigma + eta * delta_state(i);
​Lambda{i}(end + 1) = lambda_state(i);end
​% power updatefor i = 1 : 1 : ntmp = 0;if i == 1 || i == 4 || i == 8tmp = (lambda_state(i) - b(i)) / (2 * a(i));elsetmp = (b(i) - lambda_state(i)) / (2 * a(i));endif tmp < p_min(i)P_state(i) = p_min(i);elseif tmp > p_max(i)P_state(i) = p_max(i);elseP_state(i) = tmp;endP_axis{i}(end + 1) = P_state(i);end
​% delta iterationfor i = 1 : 1 : nsigma = 0;for j = 1 : 1 : nsigma = sigma + W(i, j) * delta_state(j);endif i == 1 || i == 4 || i == 8delta_state(i) = sigma + P_axis{i}(end - 1) - P_axis{i}(end);elsedelta_state(i) = sigma + P_axis{i}(end) - P_axis{i}(end - 1);endDelta{i}(end + 1) = delta_state(i);endk_axis(end + 1) = k;
end
​
figure(1);
for i = 1 : 1 : nplot(k_axis, Lambda{i}, 'lineWidth', 1);grid on;hold on;
end
xlabel('Iteration k');
ylabel('\\lambda_{i}');
​
figure(2);
for i = 1 : 1 : nif i == 1 || i == 4 || i == 8plot(k_axis, P_axis{i}, 'lineWidth', 1);hold on;elseplot(k_axis, -P_axis{i}, 'lineWidth', 1, 'linestyle', '--');hold on;grid on;end
end
​

🎉3 参考文献

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

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