基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计

简介: 基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计

1 主要内容

该程序对应文章《Power System Dynamic State Estimation Using Extended and Unscented Kalman Filters》,电力系统状态的准确估计对于提高电力系统的可靠性、弹性、安全性和稳定性具有重要意义,虽然近年来测量设备和传输技术的发展大大降低了测量和传输误差,但这些测量仍然不能完全没有测量噪声。因此,需要对噪声测量值进行过滤,从而获得准确的电力系统运行动态。本程序采用两种方法,分别是扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF),对电力系统进行动态状态估计,以39节点系统为算例验证了方法的有效性。

2 部分代码

clear;
clc;
%% Power Flow calculation
% Y=Ybus_new(case9_new_Sauer); % 9 bus system data obtained from MATPOWER
% result=runpf(case9_new_Sauer); % run ac power flow, in this case default NR is used
%result= runpf(case5_Overbye); 
%Y=Ybus_new(case5_Overbye); 
% Y=Ybus_new(case14); 
% result=runpf(case14);
% 
Y=Ybus_new(case39);
result=runpf(case39);
Vmag=result.bus(:, 8); % Pu voltage magnitude of each buses 
Vph=result.bus(:, 9); % angle in degree
V=Vmag.*exp(1j*Vph*pi/180); 
P_jQ=conj(V).*(Y*V); % Net Power at each node
S=conj(P_jQ);
S=S/100; 
Sg=result.gen(:, 2)+1j*result.gen(:, 3); 
Sg=Sg/100;
%% machine data for 9 bus system
% Xd=[0.06080; 0.11980; 0.18130];
% R=[0;0;0];
% H=[23.64; 6.4; 3.010];
% M=H/(pi*60); 
%D=[0.0125;0.0034;0.0016];
% 
%% Data of 9 bus system from Peter Sauer.
% Xd=[0.06080; 0.11980; 0.18130];
% R=[0;0;0];
% H=[23.64; 6.4; 3.01];
% %H=[13.64; 6.4; 3.01]; 
% D=[0.0255; 0.00663; 0.00265]; 
% %D=[9.6; 2.5; 1]; % If we use this value need to devide the D term by 2*pi*60 
% f0=60; 
% w_syn=2*pi*f0; 
% M=2*H/w_syn; 
% gen_bus=result.gen(:, 1); 
%% machine data for 14 bus system 
% % Machine data 
% H=[5.1498; 6.54; 6.54; 5.06; 5.06];
% Xd=[0.2995; 0.185; 0.185; 0.232; 0.232];
% R=zeros(length(Xd), 1); 
%  
% f0=60; 
% w_syn=2*pi*f0; 
% D=[2; 2; 2; 2; 2]/w_syn;
% 
% M=2*H/w_syn; 
% 
% gen_bus=result.gen(:, 1); 
%% Overbye data for 5 bus system 
% Xd=[0.05; 0.025]; 
% R=[0; 0]; 
% H=[]; 
% D=[]; 
% f0=60; 
% w_syn=2*pi*f0; 
% M=2*H/w_syn; 
% gen_bus=result.gen(:, 1); 
%% Case 39 bus data 
Xd=[0.006; 0.0697; 0.0531; 0.0436; 0.132; 0.05; 0.049; 0.057; 0.057; 0.031]; 
H=[500; 30.3; 35.8;28.6; 26; 34.8; 26.4; 24.3; 34.5; 42]; 
R=zeros(length(Xd), 1); 
f0=60; 
w_syn=2*pi*f0; 
D=[0; 0;0 ;0; 0; 0; 0; 0; 0; 0]; 
D=D/w_syn;
M=2*H/w_syn; 
gen_bus=result.gen(:, 1); 
%% case 145
%% calculate Y22
Y22=diag(1./(1j*Xd)); 
%% Calculation of Y11
SL=result.bus(:, 3)+1j*result.bus(:, 4); 
SL=SL/100; 
YL=conj(SL)./(abs(V).^2); % 
Y11=Y+diag(YL);
Y11(gen_bus, gen_bus)=Y11(gen_bus, gen_bus)+Y22;


3 程序结果

原文结果:

4 程序获取

关注私信免费获取!

相关文章
|
存储 算法 机器人
卡尔曼滤波 KF | 扩展卡尔曼滤波 EKF (思路流程和计算公式)
本文分析卡尔曼滤波和扩展卡尔曼滤波,包括:思路流程、计算公式、简单案例等。滤波算法,在很多场景都有应用,感觉理解其思路和计算过程比较重要。
1262 0
|
6月前
|
机器学习/深度学习 传感器
稳态和时变卡尔曼滤波器KALMAN FILTER的设计和仿真植物动力学模型案例研究
稳态和时变卡尔曼滤波器KALMAN FILTER的设计和仿真植物动力学模型案例研究
|
传感器 算法 定位技术
【信号处理】扩展卡尔曼滤波EKF(Matlab代码实现)
【信号处理】扩展卡尔曼滤波EKF(Matlab代码实现)
310 0
【信号处理】扩展卡尔曼滤波EKF(Matlab代码实现)
|
机器学习/深度学习 传感器 算法
用于图像恢复的即插即用 ADMM:定点收敛和应用(Matlab代码实现)
用于图像恢复的即插即用 ADMM:定点收敛和应用(Matlab代码实现)
|
机器学习/深度学习 传感器 算法
【滤波跟踪】基于延迟卡尔曼滤波器实现无人机的状态估计附Matlab代码
【滤波跟踪】基于延迟卡尔曼滤波器实现无人机的状态估计附Matlab代码
|
机器学习/深度学习 安全
基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计(Matlab代码实现)
基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计(Matlab代码实现)
139 0
|
传感器 算法 SoC
【状态估计】基于UKF法、AUKF法的电力系统三相状态估计研究(Matlab代码实现)
【状态估计】基于UKF法、AUKF法的电力系统三相状态估计研究(Matlab代码实现)
101 0
|
算法 安全 SoC
【状态估计】基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)
【状态估计】基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)
102 0
|
数据采集 监控 算法
【分布鲁棒、状态估计】分布式鲁棒优化电力系统状态估计研究[几种算法进行比较](Matlab代码实现)
【分布鲁棒、状态估计】分布式鲁棒优化电力系统状态估计研究[几种算法进行比较](Matlab代码实现)
|
资源调度 算法 计算机视觉
【状态估计】粒子滤波器、Σ点滤波器和扩展/线性卡尔曼滤波器研究(Matlab代码实现)
【状态估计】粒子滤波器、Σ点滤波器和扩展/线性卡尔曼滤波器研究(Matlab代码实现)