资源简介
电力系统状态估计(电力网系统辨识)-最小二乘+不良数据辨识-matlab
最小二乘是对电力系统进行状态估计的最基本方法,而考虑到电力网数据可能存在不良数据,需要使用相关方法进行不良数据辨识;检测到不良数据点位置后,系统还会剔除不良数据再次进行辨识
两份导入数据中,iSE30Bus1为有误差数据,iSE30Bus2为无误差数据
输出结果会导入至oStateEstimation中
代码片段和文件信息
%% Power Grid State Estimation (Test 1)
clc; % Clear windows
format
%% 使用变量说明
% GATE 对不良数据检测与辨识的调用开关
% JM min (J) 残差平方和
% uij,k 用于循环的变量
% RE residual error(残差矢量)
% VA variance(方差)
% FN 标准化残差
% BDT Bad Data‘s Type (坏数据类型)
% BDP Bad Data‘s Position (坏数据位置)
% F 状态估计方程计算出的值
%% Read power flow data from document “iSE30Bus.txt“
fp=fopen(‘iSE30Bus1.txt‘‘r‘); % 1号为有量测误差数据,2号为无误差数据
fscanf(fp‘%s‘1); % read one sting
node=fscanf(fp‘%d‘1); % read number of nodes
nzl=fscanf(fp‘%d‘1); % read number of branches
kPQ=fscanf(fp‘%d‘1); % read number of known PQ
kBus=fscanf(fp‘%d‘1); % read number of known Bus
kV=fscanf(fp‘%d‘1); % read number of known Vamp
fscanf(fp‘%s‘1); % read a string
ReV=fscanf(fp‘%f‘1); % read number of Real Vamp
ImV=fscanf(fp‘%f‘1); % read number of Imag Vamp
fscanf(fp‘%s‘1); % read a string
zl=zeros(nzl4); % 确定节点导纳矩阵的规格,并保存i j R X的数据
for i=1:nzl
for j=1:4
zl(ij)=fscanf(fp‘%f‘1);
end % read branch parameters
end
fscanf(fp‘%s‘1); % read one string
N=zeros(kPQ3); % save:确定所有节点的功率值,保存i P Q
for i=1:kPQ
for j=1:3
N(ij)=fscanf(fp‘%f‘1); % read generator parameters
end
end
PQ=zeros(2*kPQ1); % 将节点功率转换为列向量的形式
for i=1:kPQ
PQ(2*i-1)=N(i2);
PQ(2*i)=N(i3);
end
fscanf(fp‘%s‘1); % read one string
Bus=zeros(kBus4); % save known Bus: i j Pij Qij
for i=1:kBus
for j=1:4
Bus(ij)=fscanf(fp‘%f‘1);
end
end
fscanf(fp‘%s‘1); % read one string
Vam=zeros(kV2); % save known Vamp: i Vamp
for i=1:kV
for j=1:2
Vam(ij)=fscanf(fp‘%f‘1);
end
end
fclose(fp);
%% 形成节点导纳矩阵 G+jB
G=zeros(nodenode);
B=zeros(nodenode);
for k=1:nzl
i=zl(k1);
j=zl(k2);
h=zl(k3)*zl(k3)+zl(k4)*zl(k4);
f=zl(k3)/h; % branch conductance
g=-zl(k4)/h; % branch susceptance
G(ii)=G(ii)+f;
G(jj)=G(jj)+f;
B(ii)=B(ii)+g;
B(jj)=B(jj)+g;
G(ij)=G(ij)-f;
G(ji)=G(ji)-f;
B(ij)=B(ij)-g;
B(ji)=B(ji)-g;
end
% G % show
% B % show
%% State Estimation
GATE=0;
zcs=0;
for u=1:2*kPQ+2*kBus+kV-2*node+2
if GATE==1
break;
JM=RE‘*RE; % 不良数据检测与辨识
JM
if JM<0.00003 % 不良数据检测
break;
else
VA=JM/(2*kPQ+2*kBus+kV-1); % VA:残差的方差
VA1=1/sqrt(VA);
FN=RE*VA1; % FN:经过标准化处理的残差向量
FN1=zeros(2*kPQ+2*kBus+kV2)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15428 2019-02-02 18:39 SEF.m
文件 3121 2018-05-05 23:19 iSE30Bus1.txt
文件 3101 2018-05-01 17:54 iSE30Bus2.txt
----------- --------- ---------- ----- ----
21650 3
- 上一篇:投影寻踪-遗传算法MATLAB程序
- 下一篇:mdp马尔科夫过程的MATLAB代码
相关资源
- 电力系统机组组合优化问题
- 电力系统14节点模型
- 最小二乘法曲线拟合matlab代码
- 电力系统牛拉法潮流计算MATLAB程序
- 最小二乘法相位解缠算法
- 最小二乘法进行系统辨识
- 最小二乘法辨识一阶系统-lsq.m
- 基于MATLAB的PSS仿真模型的电力系统振
- 最小二乘法汇总及matlab仿真
- 最小二乘状态估计
- 电力系统故障仿真
- NIPALS非线性迭代式偏最小二乘法matl
- 自适应控制——带遗忘因子的递推最
- 风力发电模型在MATLAB中的模型建立
- MATLAB最小二乘法线性拟合
- 应用最小二乘一次完成法和递推最小
- 最小二乘蒙特卡洛程序
- 最小二乘支持向量机程序代码
- 最小二乘法实现曲线拟合及Matlab实现
- 最小二乘类的参数辨识matlab程序
- 移动最小二乘法计算程序
- Bursa_Wolf,布尔莎坐标转换,matlab,平
- 最小二乘支持向量机MATLAB程序,可分
- 最小二乘拟合Gauss曲线Matlab
- Matlab最小二乘法曲线拟合(源码+注释
- MATLAB实现电力系统牛顿拉弗逊法潮流
- 最小二乘拟合matlab程序
- 最小二乘辨识算法(matlab程序)
- 最小二乘法与 最大似然法的参数辨识
- 系统辨识最小二乘法辨识代码
评论
共有 条评论