【鲁棒电力系统状态估计】基于投影统计的电力系统状态估计的鲁棒GM估计器(Matlab代码实现)

2023-09-18 09:03:47

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

稳健的电力系统状态估计器对于监测和控制应用至关重要。根据我们的经验,我们发现使用投影统计的鲁棒广义最大似然(GM)估计器是文献中最好的方法之一。它对多个交互和符合不良数据、不良杠杆点、不良零注入以及某些类型的网络攻击具有鲁棒性。此外,它的计算效率很高,使其适用于在线应用程序。除了GM估计器良好的击穿点外,它在高斯或其他厚尾非高斯测量噪声下具有很高的统计效率。使用SCADA测量的GM估计器的原始版本是由Mili和他的同事在1996年提出的[1]。通过在 [R2] 中使用吉文斯旋转,其数值稳定性得到了增强。在[R3]中,GM估计器被扩展为同时估计变压器抽头位置和系统状态。不良的零点注入也得到了解决。在[R4]中,提出了GM估计器来处理创新和观测异常值以及动态状态估计中的测量损失。测试系统包括 IEEE 14 总线、30 总线和 118 总线系统。仅包括 SCADA 测量值。

由于结果图比较多,本文仅展现IEEE118节点运行结果图。

📚2 运行结果

部分代码:

zdata = zconv(nbus); % Get Conventional Measurement data..
[bsh g b] = line_mat_func(nbus); % Get conductance and susceptance matrix 
type = zdata(:,2); 
% Type of measurement,
% type =1 voltage magnitude p.u
% type =2 Voltage phase angle in degree
% type =3 Real power injections
% type =4 Reactive power injection
% type =5 Real power flow 
% type =6 Reactive power flow 
z = zdata(:,3); % Measurement values
Z=z;% for ploting figures
fbus = zdata(:,4); % From bus
tbus = zdata(:,5); % To bus
Ri = diag(zdata(:,6)); % Measurement Error Covariance matrix
e = ones(nbus,1); % Initialize the real part of bus voltages
f = zeros(nbus,1);% Initialize the imaginary part of bus voltages
E = [f;e];  % State Vector comprising of imaginary and real part of voltage
G = real(ybus);
B = imag(ybus);
ei = find(type == 1); % Index of voltage magnitude measurements..
fi = find(type == 2); % Index of voltage angle measurements..
ppi = find(type == 3); % Index of real power injection measurements..
qi = find(type == 4); % Index of reactive power injection measurements..
pf = find(type == 5); % Index of real power flow measurements..
qf = find(type == 6); % Index of reactive power flow measurements..
Vm=z(ei);
Thm=z(fi);
z(ei)=Vm.*cosd(Thm); % converting voltage from polar to Cartesian
z(fi)=Vm.*sind(Thm);
nei = length(ei); % Number of Voltage measurements(real)
nfi = length(fi); % Number of Voltage measurements(imaginary)
npi = length(ppi); % Number of Real Power Injection measurements..
nqi = length(qi); % Number of Reactive Power Injection measurements..
npf = length(pf); % Number of Real Power Flow measurements..
nqf = length(qf); % Number of Reactive Power Flow measurements..
nm=nei+nfi+npi+nqi+npf+nqf; % total number of measurements
% robust parameters
tol=1;
maxiter=30;% maximal iteration for iteratively reweighted least squares (IRLS) algorithm
c=1.5; % for Huber-estimator
bm=mad_factor(nm); % correction factor to achieve unbiasness under Gaussian measurement noise
%%%%%%% GM-estimator%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% flat initialization
    iter=1;
    s=1;
%% For the GM-estimator to be able to handle two conforming outliers located on the same bus
%% the local redundancy must be large enough
%% add outliers %%  

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[R1] L. Mili, M. Cheniae, N. Vichare, and P. Rousseeuw, ``Robust state estimation based on projection statistics," IEEE Trans. Power Syst, vol. 11, no. 2, pp. 1118--1127, 1996.
[R2] R. C. Pires, A. S. Costa, L. Mili, "Iteratively reweighted least-squares state estimation through givens rotation," IEEE Trans. Power Syst., Vol. 14, no. 4, pp. 1499--1507, 1999.
[R3] R. C. Pires, L. Mili, F. A. Becon Lemos, ``Constrained robust estimation of power system state variables and transformer tap positions under erroneous zero-injections," IEEE Trans. Power Syst., vol. 29, no. 3, pp. 1144--1152, May 2014.
[R4] J. B. Zhao, M. Netto, L. Mili, "A robust iterated extended Kalman filter for power system dynamic state estimation", IEEE Trans. Power Syst., DOI:10.1109/TPWRS.2016.2628344, in press.

🌈4 Matlab代码实现

更多推荐

手把手教你5种方法实现Java判断字符串是否为数字

方法一:用JAVA自带的函数publicstaticbooleanisNumeric(Stringstr){for(inti=str.length();--i>=0;){if(!Character.isDigit(str.charAt(i))){returnfalse;}}returntrue;}方法一通过遍历字符串的

js中哪些地方会用到window?

前言Window对象是JavaScript中的顶层对象,它代表了浏览器中打开的窗口或者标签页。浏览器中打开的每一个窗口/标签页都会有一个对应的Window对象。在浏览器中,全局作用域的this就是指向Window对象。正文在JavaScript中,window对象表示浏览器窗口(通常也称为浏览器窗口或浏览器窗口)。以下

Linux 中的make/makefile

一:背景make是一个命令工具,是一个解释makefifile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,VisualC++的nmake,Linux下GNU的make。可见,makefifile都成为了一种在工程方面的编译方法。一个工程中的源文件不计数,其按类型、功能、模块分别

Redis常用应用场景

Redis是一款开源的基于内存的键值存储系统,它提供了多种数据结构和丰富的功能,适用于各种不同的应用场景。以下是Redis常用的应用场景:1.缓存:Redis最常见的用途就是作为缓存。由于Redis存储在内存中,读取速度非常快,可以显著减轻数据库的负载。将频繁读取的数据存储在Redis中,可以大幅提高应用的响应速度。2

SpringBoot-RabbitMQ

RabbitMQ是一个开源的消息中间件,它实现了AMQP(AdvancedMessageQueuingProtocol)协议,并提供了可靠的消息传递机制。SpringBoot中使用RabbitMQ实现异步消息的发送和接收。使用SpringBoot提供的AmqpTemplate和@RabbitListener注解进行消息

数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病...

全文链接:http://tecdat.cn/?p=23061这个数据集(查看文末了解数据免费获取方式)可以追溯到1988年,由四个数据库组成。克利夫兰、匈牙利、瑞士和长滩。"目标"字段是指病人是否有心脏病。它的数值为整数,0=无病,1=有病(点击文末“阅读原文”获取完整代码数据)。数据集信息:目标:主要目的是预测给定的

难得有个冷静的程序员发言了:纯编码开发实施的项目,失败的案例也有很多

难得有个冷静的程序员发言了:纯编码开发实施的项目,失败的案例也有很多。假如用低代码实施,能达到不失败或提高成功率,对软件开发项目交付,会是重大的价值。我的观点:两者都可能失败,不同的是,传统编程开发的项目,失败都是发生在项目的中后期,前期靠PPT保证,在实施过程中,做着做着就发现做不下去了(需求风险,成本风险,技术风险

硬件故障诊断:快速定位问题

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

Golang数组和slice

Golang数组和Slice(切片)Go语言中数组长度固定不可变动,slice则可以增长缩短(使用较多)一、数组类型Go语言中数组长度固定,索引从0开始计数。需要注意数组的长度一开始必须是固定的,且不同长度的数组其表示不同的数据类型,相同的数组可以进行‘==’比较。数组作为函数参数是使用的是形参的方式,函数内不可改变其

Tokenview X-ray功能:深入探索EVM系列浏览器的全新视角

Tokenview作为一家领先的多链区块浏览器,为了进一步优化区块链用户的使用体验,我们推出了X-ray(余额透视)功能。该功能将帮助您深入了解EVM系列浏览器上每个地址的交易过程,以一种直观、简洁的方式呈现地址的进出账情况,让您轻松掌握资产流转。X-ray功能特性1多级合约调用的直观展示在区块链世界中,资产流转是一个

第七章(1):深度神经网络的基本结构、训练方法和在机器学习中的重要性

第七章(1):深度神经网络的基本结构、训练方法和在机器学习中的重要性作者:安静到无声个人主页作者简介:人工智能和硬件设计博士生、CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇。Thanks♪(・ω・)ノ如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!o( ̄▽ ̄)d欢迎大家来到

热文推荐