针对KF状态估计的电力系统虚假数据注入攻击研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
如今现代电力系统正在向智能化方向发展,大量的智能设备,如智能仪表和传感器,促进了电力系统在发电、变电、输电和配电模式方面的转变,使得智能电网成为一个典型的网络物理系统,即将物理电力传输系统和计算机网络相结合。在智能电网中,监督控制和数据采集系统(SCADA)实时收集外场设备通过网络发送来的数据,进行分析后向控制中心汇报收集到的信息,控制中心根据这些信息对电网的发电配电进行调整。
在享受智能电网带来便利的同时,由于使用了大量智能设备以及通过网络来收发数据,使得智能电网更容易遭到攻击者的攻击。最为显著的是通过有预谋地篡改智能设备的数据来达到攻击电力系统的目的,称之为虚假数据注入攻击(FDIA)。为了保障电力服务的平稳运行,智能电网的检测至关重要。
FDIA 的攻击目标主要包括测量单元、通信网络和控制设备。由于控制设备往往保护级别较高,而难以入侵,因此,FDIA 通常以前两种方式实施。在实施 FDIA 过程中,攻击者首要任务是入侵系统网络。例如,为了破坏测量单元(例如,远程终端单元和向量测量单元)的数据,攻击者往往利用加密和认证机制固有的漏洞来进行入侵并修改原始数据。在文献[17]中,研究人员揭示了通过欺骗向量测量单元全球定位系统的时间同步攻击。由于全球定位系统信号并无加密或授权机制,攻击者可以产生伪冒的全球定位系统信号,而接收器无法从原始数据中辨别出来。
攻击者在侵入系统网络后,可以获得测量修改权限。根据潮流规律,某一测量值的变化会引起相邻测量值的变化。当伪造一个数据(例如节点或传输线路的测量值)时,为了绕过坏数据检测,攻击者会考虑潮流定律,找到测量数据相应改变的最小空间。而将需要协同攻击的最小空间定义为该数据在执行 FDIA 时满足潮流规律和最优资源利用规律的最小相关空间[18]。
状态估计方法分为静态估计和动态估计。传统的电力系统状态估计方法采用的是加权最小二乘估计器等静态估计方法。这是建立在电力系统具有足够冗余且处于稳态状态的假设之上的[8]。然而,由于用电需求和发电量是实时变化的,因此真实的电力系统并不是在稳定状态下运行[19]。同时静态估计方法仅考虑当前时刻数据,没有关联先前的状态,因此其估计结果精度不佳。为了解决这些问题,动态状态估计器如卡尔曼滤波器被引入电力系统状态估计[20]。接下来讨论了不同的基于状态估计的 FDIA 检测方案,其分类如图 3.2 所示。(本文选择KF)
📚2 运行结果
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 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]徐俐. 智能电网虚假数据注入攻击及检测技术研究[D].广州大学,2022.DOI:10.27040/d.cnki.ggzdu.2022.001248.
🌈4 Matlab代码实现
相关文章:
针对KF状态估计的电力系统虚假数据注入攻击研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
2023-05-25 LeetCode每日一题(差值数组不同的字符串)
2023-05-25每日一题 一、题目编号 差值数组不同的字符串 二、题目链接 点击跳转到题目位置 三、题目描述 给你一个字符串数组 words ,每一个字符串长度都相同,令所有字符串的长度都为 n 。 每个字符串 words[i] 可以被转化为一个长度为 n - 1 的 …...
MI小米验厂知识点
【MI小米验厂知识点】 小米科技有限责任公司成立于2010年3月3日,是专注于智能硬件和电子产品研发、智能手机、智能电动汽车、互联网电视及智能家居生态链建设的全球化移动互联网企业、创新型科技企业。小米公司创造了用互联网模式开发手机操作系统、发烧友参与开发改…...
损失函数——交叉熵损失(Cross-entropy loss)
交叉熵损失(Cross-entropy loss)是深度学习中常用的一种损失函数,通常用于分类问题。它衡量了模型预测结果与实际结果之间的差距,是优化模型参数的关键指标之一。以下是交叉熵损失的详细介绍。 假设我们有一个分类问题࿰…...
电商ERP接口erp进销存接口
电商API详情接口在ERP中的重要性 电商行业的发展已经改变了人们的消费方式。作为一种连续不断涌现并不断发展的新型销售方式,电商具有开创新市场、大众化消费、商业模式的多样化、效率的提高等优势,对传统零售业产生了极大的冲击。而ERP作为企业资源规划…...
leetcode 922. 按奇偶排序数组 II
题目描述解题思路执行结果 leetcode 922. 按奇偶排序数组 II. 题目描述 按奇偶排序数组 II 给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。 对数组进行排序,以便当 nums[i] 为奇数时,i 也是 奇数 &#…...
Unity四叉树地图
当使用Unity构建大规模的游戏地图或场景时,使用四叉树数据结构可以提高性能和效率。四叉树是一种基于分割的数据结构,将空间划分为四个相等的子区域,并以递归方式构建树结构。在游戏开发中,四叉树常用于空间分区、碰撞检测和可视化…...
【unity插件】OpenFracture插件实现物体破裂和切割
插件地址 https://github.com/Mustenaka/OpenFracture 使用注意事项 1.如果要导入自定义网格,则必须在导入设置中将“启用读/写”设置为 true。否则,您将收到错误。 2.网格必须是非相交和封闭的。否则,重新三角测量将失败。 上面描绘的是凳子的线框模型。注意横杆如何与…...
Spring Security实现登录
前言 Spring Security是Spring框架下的一个用于身份验证和授权的框架,它可以帮忙管理web应用中的用户认证、授权以及安全性问题。本文将介绍如何使用Spring Security实现用户登录功能,本文主要包括以下内容: 环境准备Spring Security核心概…...
小狐狸ChatGPT付费创作系统1.9.7独立版 + H5端 + 小程序前端增加AI绘画+GPT4接口
小狐狸ChatGPT 1.9.7独立版经播播资源测试了版本比较,本版核心增加了GPT4.0接口功能,小程序端内置了AI绘画功能。体验下来问答速度感觉体验更好。小程序端有更新请对应开发工具更新上传,本版无开源端。播播资源提供的安装教程详见下方&#x…...
双目测距联合YOLOv8 项目总结
代码贴:双目测距--5 双目相机 联合 YOLOv8_爱钓鱼的歪猴的博客-CSDN博客 0、图片筛选 可以用matlab,对双目图像做个一个筛选,也就是做双目标定。 熟悉matlab的小伙伴完全可以用matlab做双目标定,我是没咋接触过不知道怎么导出标定结果&#…...
Windows提权:利用MSSQL数据库,Oracle数据库
目录 MSSQL提权:使用xp_cmdshell进行提权 MSSQL:使用sp_OACreate进行提权 MSSQL:使用沙盒提权 Oracle提权:工具一把梭哈 总结 MSSQL在Windows server类的操作系统上,默认具有system权限。 MSSQL提权:使…...
linux常见的二十多个指令
目录 一、指令的概念 二、28个常见的指令 ⭐2.1 ls指令 ⭐2.2 pwd指令 ⭐2.3 cd指令 ⭐2.4tree指令 ⭐2.5 mkdir指令 ⭐2.6 touch指令 ⭐2.7 rmdir指令 ⭐2.8 rm指令 ⭐2.9 clear指令 ⭐2.10 man指令 ⭐2.11 cp指令 ⭐2.12 mv指令 ⭐2.13 cat指令(适…...
内蒙古自治区住房和城乡建设分析及解决方案
安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘 要:为深入贯彻落实《国务院办公厅关于印发新能源汽车产业发展规划(2021—2035年)的通知》(国办发 ﹝2020﹞39号)、《国家发展改革委等部门关于进一步提升…...
JavaEE进阶5/25(属性注入)
目录 1.更简单的存取Spring对象 2.获取Bean对象(对象装配)DI 3. Resource注入 4.Resource注入和Autowired注入的区别 1.更简单的存取Spring对象 2.获取Bean对象(对象装配)DI 对象装配(对象注入)有三种方…...
【Java学习记录-4】相关名词和概念记录(持续更新)
目录 1 注解2 包3 权限修饰符4 状态修饰符1. final2. static 5. 多态6.抽象类7.接口 1 注解 Override是一个注解,可以帮助我们检查重写方法的方法声明的正确性 注意: 私有方法不能被重写(父类私有成员子类是不能继承的)子类方法…...
《程序员面试金典(第6版)》面试题 16.25. LRU 缓存(自定义双向链表,list库函数,哈希映射)
题目描述 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。 题目传送门:…...
kong网关启用jwt认证插件
认证流程: 1、创建一个用户 2、生成jwt的所需要的key和密钥 3、在https://jwt.io/的生成jwt token 4、启用jwt插件 5、发送请求的时候携带jwt的token信息 官方指导:https://docs.konghq.com/hub/kong-inc/jwt/configuration/examples/ 一、创建一个新的…...
day12 - 图像修复
在图像处理的过程中,经常会遇到图像存在多余的线条或者噪声的情况,对于这种情况我们会先对图像进行预处理,去除掉对图形内容有影响的噪声,在进行后续的处理。 本节实验我们介绍使用图像膨胀来处理图形的多余线条,进行…...
1720_Linux学习中的问题处理
全部学习汇总:GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. (github.com) 这个有点学习的方法论的意思,画个滋味导图顺便整理一下。 遇到问题的时候,解决的方法大致有3中,而针对学习的建议有一部分是…...
Arduino嵌入式工具库解析:按键消抖、字符串格式化与I²C通信
1. 项目概述utils_asukiaaa是一个面向 Arduino 平台的轻量级工具函数库,聚焦于三类高频嵌入式开发场景:机械按键消抖与状态机管理、字符串格式化处理、IC 总线设备通信封装。该库采用 C 命名空间组织(utils_asukiaaa::button/utils_asukiaaa:…...
陈文自媒体:暗水印功能上线,2类玩家要发财了!
作者陈文,公众号:陈文日记,90后草根创业者,5年自媒体经验,聚焦体育自媒体和小红书商单,关注我,越分享收获越多。 2026年4月了,抖音最牛逼的暗水印上线了,很多千川的老铁麻…...
从噪声数据中提取系统矩阵(对应论文式3)
控制顶刊IEEE TAC热点论文复现,前V章案例复现,内容包括数据驱动状态反馈控制和LQR控制,可应用于具有噪声的数据和非线性系统,附参考论文及详细代码注释对应到文中公式,易于掌握理解,需要代码最近在复现TAC上…...
seo推广外包需要多少投入_seo推广外包如何避免被算法惩罚
SEO推广外包需要多少投入_SEO推广外包如何避免被算法惩罚 在当今数字化经济时代,SEO(搜索引擎优化)推广已经成为企业提升网站流量和品牌知名度的重要手段。随着搜索引擎算法的不断更新,企业在进行SEO推广外包时,不仅需…...
直接可用4轴插补算法库,STM32的DDA插补联动与梯形加减速算法代码
可以直接使用的4轴插补算法库,不是丢给你一堆gr1b或者写字机或者3d打印的开源代码,本运控库上项目级别的,需要添加在自己的项目中,不支持gm码,只有运动控制核心代码,可以添加在自己项目中的,stm…...
OBS多平台同步推流插件深度解析:技术架构与实战应用
OBS多平台同步推流插件深度解析:技术架构与实战应用 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 在当今内容创作者和虚拟主播日益增长的需求下,多平台直播已成…...
基于S7-200控制的自动洗车系统 本设计包括设计报告,PLC组态仿真,I/O接口,带注释程序...
基于S7-200控制的自动洗车系统 本设计包括设计报告,PLC组态仿真,I/O接口,带注释程序pdf版,接线图,控制电路图,主电路图,PLC接线图,顺序功能图 总体设计 系统有自动和手动模式,选择手…...
西门子S7-200SMART PLC与组态王7.0通信在压铸机控制中的应用:附带完整程序与多媒体资料
西门子S7-200SMART PLC和组态王7.0通信 控制压铸机 附带PLC程序组态王程序组态王运行视频组态王运行图片 最近在折腾压铸机自动化改造项目,用西门子S7-200 SMART PLC配合组态王7.0做上位监控。这个组合在中小型设备上还挺常见,但实际调试时通信配置这块…...
用OpenPCDet跑通Nuscenes-mini:小显存福音与多模态数据处理的实战笔记
用OpenPCDet跑通Nuscenes-mini:小显存福音与多模态数据处理的实战笔记 在3D目标检测领域,Nuscenes数据集因其丰富的多模态数据(LiDAR、摄像头、雷达)和复杂的城市场景而备受研究者青睐。但对于大多数个人开发者和学生来说&#x…...
终极指南:如何自定义Android RecyclerView ItemAnimator动画扩展
终极指南:如何自定义Android RecyclerView ItemAnimator动画扩展 【免费下载链接】android-advancedrecyclerview RecyclerView extension library which provides advanced features. (ex. Googles Inbox app like swiping, Play Music app like drag and drop sor…...

