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

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

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

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

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

目录

💥1 概述

📚2 运行结果

2.1 IEEE14节点

 ​

2.2 IEEE30节点

 ​ 

2.3 IEEE118节点

🎉3 参考文献

🌈4 Matlab代码、数据、文章讲解


💥1 概述

文献来源:

  

摘要:本文开发了一种基于广义最大似然法(称为GM-IEKF)的鲁棒迭代扩展卡尔曼滤波(EKF),用于估计电力系统在受到干扰时的状态动态。所提出的GM-IEKF动态状态估计器能够比传统的EKF和无迹卡尔曼滤波器(UKF)更快、更可靠地跟踪系统瞬变,这要归功于其批处理模式回归形式以及对创新和观测异常值的鲁棒性,即使在杠杆位置也是如此。创新异常值可能是由动态状态模型中的脉冲噪声引起的,而观测异常值可能是由于较大的偏差、网络攻击或PMU的通信链路暂时丢失引起的。通过最小化标准化残差的Huber凸成本函数,实现了高斯噪声下的良好鲁棒性和较高的统计效率。后者通过预测状态和创新向量的两个时间序列的鲁棒距离的函数进行加权,并通过投影统计量进行计算。使用总影响函数推导状态估计误差协方差矩阵,从而在下一个时间步长中产生鲁棒状态预测。在IEEE 39节点测试系统上进行的仿真结果表明,GM-IEKF在高斯和非高斯过程和观测噪声下具有良好的性能。

原文摘要:

Abstract:

This paper develops a robust iterated extended Kalman filter (EKF) based on the generalized maximum likelihood approach (termed GM-IEKF) for estimating power system state dynamics when subjected to disturbances. The proposed GM-IEKF dynamic state estimator is able to track system transients in a faster and more reliable way than the conventional EKF and the unscented Kalman filter (UKF) thanks to its batch-mode regression form and its robustness to innovation and observation outliers, even in position of leverage. Innovation outliers may be caused by impulsive noise in the dynamic state model while observation outliers may be due to large biases, cyber attacks, or temporary loss of communication links of PMUs. Good robustness and high statistical efficiency under Gaussian noise are achieved via the minimization of the Huber convex cost function of the standardized residuals. The latter is weighted via a function of robust distances of the two-time sequence of the predicted state and innovation vectors and calculated by means of the projection statistics. The state estimation error covariance matrix is derived using the total influence function, resulting in a robust state prediction in the next time step. Simulation results carried out on the IEEE 39-bus test system demonstrate the good performance of the GM-IEKF under Gaussian and non-Gaussian process and observation noise.

随着广域同步相量测量的广泛部署,人们提出了新技术 通过动态状态估计器 (DSE) 有效跟踪电力系统动态 [1]–[3]。通过使用估计的系统动态 状态,可以实现改进的实时控制方案,例如通过对 FACTS 设备和 广域电力系统稳定器,仅举几例,从而增强电力系统的稳定性。

为了跟踪受到较大干扰的电力系统动态,扩展卡尔曼滤波器(EKF)和无味滤波器 卡尔曼滤波器(UKF)最近被提出。例如,黄等人。 [3] 和方和韦贝 [4] 进行了调查 使用卡尔曼滤波技术采用PMU数据进行实时状态和参数估计的好处。 在他们的工作之后,Ghahremani和Kamwa[5]提出了一个基于EKF的修改。 DSE用于应对由于无刷励磁系统而无法计量现场电压的情况。这 后来随着去中心化DSE的开发,工作得到了扩展,同时放宽了对已知DSE的假设 机械扭矩 [6]。

为了规避 EKF 的一阶逼近误差,在 模型,迭代的 EKF (IEKF) [4] 和 UKF 被提议为 替代方法。具体来说,IEKF对系统非线性方程进行线性化迭代,以补偿 高阶项,而 UKF 通过确定性地提供 sigma 来利用无迹变换 点近似随机状态向量的均值和协方差矩阵,从而获得比 EKF [7], [8]。基于 UKF 的 DSE,使用 在 [9] 中提出了四阶生成器模型来估计 单机无限总线电源系统。同样,在[10]中为多机系统开发了集中式UKF,而分散式策略则没有 [11]中提倡要求传输本地信号,显着 提高计算效率。然而,[12] 已经证明,在存在观测异常值的情况下,EKF 或 UKF 的性能会大大降低,原因是 他们缺乏稳健性。为了缓解这个问题,[11] 中提倡基于规范化创新向量的测试来检测观测异常值,尽管该测试在 创新异常值。在[13]中,鲁哈尼和阿布尔开发了一个分布式 基于UKF的两阶段鲁棒DSE,使用最小绝对值(LAV)估计器,可以处理观测异常值 PMU 测量。然而,作者没有解决动态状态估计器对创新的脆弱性。 由状态预测模型中的近似值或脉冲系统过程噪声引起的异常值。

Gandhi和Mili[14]提出了一个用于线性动力学的鲁棒卡尔曼滤波器 型。在本文中,我们将这项工作扩展到了一般非线性动态状态估计问题,其中有几个 新功能。后者包括派生新的批处理模式回归形式,以增强数据冗余,即 基于投影统计的新型异常值检测方法,并应用于预测的两个时序和 创新向量,以及所提出的鲁棒广义最大似然的鲁棒状态协方差矩阵 迭代的 EKF (GM-IEKF) 方法。这些功能使我们的GM-IEKF能够更可靠、更可靠地跟踪电力系统动态 比传统的EKF更快,即使在存在观察和创新异常值或非高斯PMU噪声的情况下也是如此。 

📚2 运行结果

2.1 IEEE14节点

  

  

  

2.2 IEEE30节点

  

  

  

2.3 IEEE118节点

  

  

  

 部分代码:

%displayout(E,'a'); % Displaying output in tabular form
f = E(nbus+1:end);
e = E(1:nbus);
v=e+1i*f;
V=abs(v);
Del=round(angle(v)*180/pi*100)/100;
disp('-------- State Estimation ------------------');
disp('--------------------------');
disp('| Bus |    V   |  Angle  | ');
disp('| No  |   pu   |  Degree | ');
disp('--------------------------');
for m = 1:nbus
    fprintf('%4g', m); fprintf('  %8.4f', V(m)); fprintf('   %8.4f', Del(m)); fprintf('\n');
end
disp('---------------------------------------------');
%% calculate the estimated value
%Measurement Function, h
h1 = V(fbus (ei),1);  %voltage measurement
h2 = Del(fbus (fi),1);  %angle measurement
h3 = zeros(npi,1);  %real power injection
h4 = zeros(nqi,1);  %reactive power injection
h5 = zeros(npf,1);  %real power flow
h6 = zeros(nqf,1);  %reactive power flow
%Measurement function of power injection
for i = 1:npi
m = fbus(ppi(i));
for k = 1:nbus
% Real injection
h3(i)=h3(i)+(G(m,k)*(e(m)*e(k)+f(m)*f(k))+B(m,k)*(f(m)*e(k)-e(m)*f(k)));
% Reactive injection 
h4(i)=h4(i)+(G(m,k)*(f(m)*e(k)-e(m)*f(k))-B(m,k)*(e(m)*e(k)+f(m)*f(k)));
end
end
%Measurement function of power flow
for i = 1:npf
    m = fbus(pf(i));
    n = tbus(pf(i));
% Real injection
h5(i) =(e(m)^2 + f(m)^2)*g(m,n)-(g(m,n)*(e(m)*e(n)+f(m)*f(n))+b(m,n)*(f(m)*e(n)-e(m)*f(n)));
% Reactive injection 
h6(i) =-g(m,n)*(f(m)*e(n)-e(m)*f(n))+b(m,n)*(e(m)*e(n)+f(m)*f(n))-(e(m)^2 + f(m)^2)*(b(m,n)+bsh(m,n));
end
%% note that the angle measurement should be converted to radians for measurement comparison
h = [h1; h2; h3; h4; h5; h6];
%% % the estimated voltage and the true voltage magnitude in p.u.
figure(1) 
K=1:1:nbus;
[Vtrue Angletrue]=IEEE_true_value(nbus); % true voltage magnitude
plot(K,V,'r:*',K,Vtrue,'b--o','linewidth',1.5)
title('Volatge Magnitude Comparision Result ')
xlabel('Bus number')
xlim([1 nbus])
ylabel('Voltage in p.u')
legend('Estimated Value','True Value')
grid on
% % the estimated voltage angle and the true voltage angle in degree
figure(2)
j=1:1:nbus;
plot(j,Del,'r:*',j,Angletrue,'b--o','linewidth',1.5)
title('Voltage Angle Comparision Result')
xlabel('Bus number')
xlim([1 nbus])
ylabel('Voltage angle in degree')
legend('Estimated Value','True Value')
grid on
%% % the estimated and true measurement in degree
figure(3)
i=1:1:length(z);
estimated_measurement=plot(i,Z,'b*',i,h,'r--o');
set(estimated_measurement(1),'linewidth',1.5);
set(estimated_measurement(2),'linewidth',1.5);
title('Measurement Estimation Comparision Result')
xlabel('Measurement number')
xlim([1 length(z)])
ylabel('Measurement value')
legend('True Value','Estimated Value')
%% % the estimated and true measurement in degree
figure(3)
i=1:1:length(z);
estimated_measurement=plot(i,Z,'b*',i,h,'r--o');
set(estimated_measurement(1),'linewidth',1.5);
set(estimated_measurement(2),'linewidth',1.5);
title('Measurement Estimation Comparision Result')
xlabel('Measurement number')
xlim([1 length(z)])
ylabel('Measurement value')
legend('True Value','Estimated Value')
for i=1:nbus
voltage_error(i)=norm((Vtrue(i)-V(i)),inf)./abs(Vtrue(i));
angle_error(i)=norm((Angletrue(i)-Del(i)),inf)./abs(Angletrue(i));
end
Max_voltage_estimation_error=max(voltage_error)
Max_angle_estimation_error=max(angle_error)
Mean_voltage_estimation_error=mean(abs(Vtrue-V))
Mean_angle_estimation_error=mean(abs(Angletrue-Del))

🎉3 参考文献

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

[1]J. Zhao, M. Netto and L. Mili, "A Robust Iterated Extended Kalman Filter for Power System Dynamic State Estimation," in IEEE Transactions on Power Systems, vol. 32, no. 4, pp. 3205-3216, July 2017, doi: 10.1109/TPWRS.2016.2628344.

🌈4 Matlab代码、数据、文章讲解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/26148.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

矿井水除氟——高矿化度矿井水氟化物深度降解的技术方案

高矿化度矿井水是指含有高浓度溶解性矿物质的废水,通常指的是含有高浓度钠、钙、镁、铁、铝、钾等离子的废水。这些离子通常来自于废水所处的环境、工业或生产过程中使用的原材料和化学品。高矿化度的废水通常具有高盐度、高电导率、高硬度等特征,对环境…

Measurement Studio 2019 f3 Crack

Measurement Studio是Microsoft Visual Studio的扩展软件,提供了用于创建测试和测量应用程序的.NET工具。 了解Measurement Studio的功能 Measurement Studio是​唯一​一​款.NET​工具​套​件,专为在Microsoft Visual Studio中构建工程应用&#xff0…

【redis基础】事务|管道|发布订阅

大家好~这里是redis系列文章之《【redis基础】事务|管道|发布订阅》上一篇文章:redis持久化【RDBAOF】持久化双雄_努力努力再努力mlx的博客-CSDN博客 目录 事务 概念 作用 数据库事务vs redis事务 常用指令 情况1:正常执行 情况2:放弃…

18- 弹幕系统设计

1、弹幕系统设计 场景分析:客户端针对某一视频创建了弹幕,发送后端进行处理,后端需要对所有正在观看该视频的用户推送该弹幕。 1.1、实现方式 使用短连接进行通信或使用长连接进行通信。 1.1.1、短连接实现方案 所有观看视频的客户端不断…

设计模式之~命令模式

定义: 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 为什么需要命令模式? 在我们的软件开发系统中…

长沙市直机关工委常务副书记梁敏一行莅临麒麟信安调研

5月25日,长沙市直机关工委专职副书记梁敏,市工信局党组成员、副局长、机关党委书记唐宁等一行莅临麒麟信安开展“党建引领数字经济发展工作”调研,麒麟信安党委书记王忠锋热情接待。 长沙市直机关工委专职副书记梁敏来到麒麟信安展厅&#…

SpringMVC第九阶段:Restful风格实现的CRUD

Restful风格实现的CRUD图书 把前面的传统请求方式的图书的CRUD换成刚刚讲的Restful风格的图书模块的CRUD。只需要修改页面端的请求方式和地址,以及服务器端Controller的接收。 1、列表功能实现 Controller中的修改: RequestMapping(value "/book",me…

数据表示(二进制、进制转换、补码计算)

目录 1.进制2.进制转换2.1 R进制转十进制2.2 十进制转R进制2.3 m进制转n进制方法1:十进制中转方法2:直接转化 3.进制计算3.1 机器数3.2 编码方式(原码、反码、补码、移码)3.3 表示范围定点整数定点小数 3.4 定点表示法 4.浮点数4.…

Python之网络编程

一、操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。 注&a…

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划 1143.最长公共子序列解法一:动态规划 1035.不相交的线解法一:动态规划 53. 最大子序和 动态规划解法一:动态规划解法二&am…

机智云的离线语音识别模组,让家电变得更加智能和便捷

随着人们对智能化生活的需求不断增加,离线语音模组越来越受到欢迎。它可以为家庭、工作和娱乐提供更加智能和便捷的服务,例如通过语音指令控制家居设备、查询天气信息、播放音乐等。 “小智同学,打开灯光” “调到最亮” “正转一档” 人工智…

websocket在分布式场景的应用方案

websocket简介 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它可以在客户端和服务器之间建立持久连接,使得服务器可以主动向客户端推送数据,而不需要客户端不断地向服务器发送请求。 WebSocket 协议的优点包括: 实时性&#x…

MySql MVCC 详解

注意以下操作都是以InnoDB引擎为操作基准。 一,前置知识准备 1,MVCC简介 MVCC 是多版本并发控制(Multiversion Concurrency Control)的缩写。它是一种数据库事务管理技术,用于解决并发访问数据库的问题。MVCC 通过创…

OpenMMLab-AI实战营第二期——2.人体关键点检测与MMPose

文章目录 1. 人体姿态估计的介绍和应用2-1. 2D姿态估计概述2.1 任务描述2.2 基于回归2.3 基于热力图2.3.1 从数据标注生成热力图(高斯函数)2.3.2 使用热力图训练模型2.3.3 从热力图还原关键点 2.4 自顶向下2.5 自底向上2.6 单阶段方法 2-2. 2D姿态估计详…

STM32单片机(三)第二节:GPIO输出练习(LED闪烁、LED流水灯、蜂鸣器)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

IIC总线协议的死锁问题

目录 1. IIC的特性 2. IIC死锁问题分析 3. 常见的IIC死锁问题解决方法 1. IIC的特性 IIC协议是一个允许一主多从通信的协议,只能用于短距离通信,并且只需要两根信号线来交换信息。 IIC的两根信号是SCL和SDA,SCL是时钟信号线,S…

javascript基础六:说说你对闭包的理解?闭包使用场景?

一、是什么 一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure) 也就是说,闭包让你可以在一个…

CDN加速在网站建设中的应用

近年来,随着互联网技术的不断发展,互联网行业迎来了井喷式发展,各类网站如雨后春笋般不断涌现,网站数量迅速增长,但与此同时也导致网站响应速度慢、访问不流畅等问题。因此,如何优化网站的性能、提高网站的…

【算法】简单讲解如何使用两个栈实现一个队列

文章目录 什么是栈和队列?设计思路代码实现 什么是栈和队列? 栈和队列其实大家基本都知道是什么,或者说,最基本的,他们的特性我们是知道的。 栈是一种FILO先进后出的数据结构,队列是一种FIFO先进先出的数据…

IP-Guard客户端上插入加密盘时提示格式化,能否禁止该弹窗?

客户端上插入加密盘时提示格式化,能否禁止该弹窗? 1、当Shell Hardware Detection服务启动时,操作系统检测硬件的速度要快于客户端,而此时操作系统是不能识别加密后的移动盘的,因此认为加密盘异常,提示需要格式化,策略-客户端配置,选择禁止windows7播放功能。配置后不…