parent
537b5e4699
commit
d3146da2b9
45
run.m
45
run.m
|
|
@ -2,15 +2,21 @@ clear
|
||||||
clc
|
clc
|
||||||
% yalmip('clear')
|
% yalmip('clear')
|
||||||
addpath('.\Powerflow')
|
addpath('.\Powerflow')
|
||||||
[~, ~, ~, ~,Volt,Vangle,Y,Yangle,r,c,newwordParameter,PG,QG,PD,QD,Balance]=pf('ieee4-DN.dat', '0');
|
[~, ~, ~, ~,Volt,Vangle,Y,Yangle,r,c,newwordParameter,PG,QG,PD,QD,Balance]=pf('E:\算例\feeder33\feeder33ieee.txt', '0');
|
||||||
% 'E:\算例\feeder33\feeder33ieee.txt'
|
% 'E:\算例\feeder33\feeder33ieee.txt'
|
||||||
%% 开始生成量测量
|
%% 开始生成量测量
|
||||||
sigma=0.03;% ±ê×¼²î
|
sigma=0.01;% 标准差
|
||||||
|
loop=1;
|
||||||
|
VoltAAE=0;
|
||||||
|
VAngleAAE=0;
|
||||||
|
while 1
|
||||||
%% 电压
|
%% 电压
|
||||||
%电压幅值
|
%电压幅值
|
||||||
rVolt=Volt; %幅值
|
rVolt=Volt; %幅值
|
||||||
BalanceVolt=Volt(Balance);
|
BalanceVolt=Volt(Balance);
|
||||||
mVolt=rVolt.*(normrnd(0,sigma,length(Volt),1)+1);%µçѹÁ¿²âÁ¿
|
% mVolt=rVolt.*(normrnd(0,sigma,length(Volt),1)+1);%电压量测量
|
||||||
|
%均匀分布
|
||||||
|
mVolt=rVolt.*(unifrnd(-3*sigma,3*sigma,length(rVolt),1)+1);
|
||||||
rVAngel=Vangle;
|
rVAngel=Vangle;
|
||||||
%% 电流
|
%% 电流
|
||||||
%注入电流
|
%注入电流
|
||||||
|
|
@ -57,10 +63,22 @@ rPG=PG;
|
||||||
PGi=find(PG~=0);
|
PGi=find(PG~=0);
|
||||||
rQG=QG;
|
rQG=QG;
|
||||||
QGi=find(QG~=0);
|
QGi=find(QG~=0);
|
||||||
mPD=rPD.*(normrnd(0,sigma,length(rPD),1)+1);
|
|
||||||
mQD=rQD.*(normrnd(0,sigma,length(rQD),1)+1);
|
|
||||||
mPG=rPG.*(normrnd(0,sigma,length(rPG),1)+1);
|
% 正态分布
|
||||||
mQG=rQG.*(normrnd(0,sigma,length(rQG),1)+1);
|
% mPD=rPD.*(normrnd(0,sigma,length(rPD),1)+1);
|
||||||
|
% mQD=rQD.*(normrnd(0,sigma,length(rQD),1)+1);
|
||||||
|
% mPG=rPG.*(normrnd(0,sigma,length(rPG),1)+1);
|
||||||
|
% mQG=rQG.*(normrnd(0,sigma,length(rQG),1)+1);
|
||||||
|
% 均匀分布
|
||||||
|
|
||||||
|
mPD=rPD.*(unifrnd(-3*sigma,3*sigma,length(rPD),1)+1);
|
||||||
|
mQD=rQD.*(unifrnd(-3*sigma,3*sigma,length(rQD),1)+1);
|
||||||
|
mPG=rPG.*(unifrnd(-3*sigma,3*sigma,length(rPG),1)+1);
|
||||||
|
mQG=rQG.*(unifrnd(-3*sigma,3*sigma,length(rQD),1)+1);
|
||||||
|
% PD0(Loadi)=RealPD(Loadi).*(1+unifrnd(-3*sigma,3*sigma,length(Loadi),1));
|
||||||
|
% QD0(Loadi)=RealQD(Loadi).*(1+unifrnd(-3*sigma,3*sigma,length(Loadi),1));
|
||||||
|
% mVolt=rVolt.*(1+unifrnd(-3*sigma,3*sigma,1,length(rVolt)));
|
||||||
%% 0注入节点
|
%% 0注入节点
|
||||||
zerosInjectionIndex=1:length(Volt);
|
zerosInjectionIndex=1:length(Volt);
|
||||||
zerosInjectionIndex=zerosInjectionIndex( ~(PD~=0|QD~=0|PG~=0|QG~=0) );
|
zerosInjectionIndex=zerosInjectionIndex( ~(PD~=0|QD~=0|PG~=0|QG~=0) );
|
||||||
|
|
@ -73,7 +91,7 @@ onlyQG=setdiff(QGi,PDQDi);
|
||||||
%% 计算方差
|
%% 计算方差
|
||||||
% measureSigma=abs(([rVolt;rBranchP;rBranchQ;rTransP;rTransQ].*sigma));
|
% measureSigma=abs(([rVolt;rBranchP;rBranchQ;rTransP;rTransQ].*sigma));
|
||||||
measureSigma=abs(([rVolt;rPD(PDi);rQD(QDi);].*sigma));
|
measureSigma=abs(([rVolt;rPD(PDi);rQD(QDi);].*sigma));
|
||||||
measureSigma(measureSigma<1e-6)=mean(measureSigma(measureSigma>1e-6));
|
% measureSigma(measureSigma<1e-6)=mean(measureSigma(measureSigma>1e-6));
|
||||||
W=sparse(diag(1./measureSigma.^2)) ;
|
W=sparse(diag(1./measureSigma.^2)) ;
|
||||||
% W=eye(length(W));
|
% W=eye(length(W));
|
||||||
% W=sparse(1:length(W),1:length(W),400,length(W),length(W));
|
% W=sparse(1:length(W),1:length(W),400,length(W),length(W));
|
||||||
|
|
@ -116,7 +134,7 @@ ojbFunDecrease=1000;% Ŀ
|
||||||
% 以下都是Jacobi矩阵
|
% 以下都是Jacobi矩阵
|
||||||
% while max(abs(g))>1e-5;
|
% while max(abs(g))>1e-5;
|
||||||
% while maxD>1e-5
|
% while maxD>1e-5
|
||||||
while max(abs(optimalCondition))>eps
|
while max(abs(maxD))>eps
|
||||||
% 电压
|
% 电压
|
||||||
dV_dV=sparse(1:length(mVolt),1:length(mVolt),1,length(mVolt),length(mVolt));%电压量测量的微分
|
dV_dV=sparse(1:length(mVolt),1:length(mVolt),1,length(mVolt),length(mVolt));%电压量测量的微分
|
||||||
dV_dTyta=sparse(length(mVolt),length(mVolt));
|
dV_dTyta=sparse(length(mVolt),length(mVolt));
|
||||||
|
|
@ -377,6 +395,15 @@ while max(abs(optimalCondition))>eps
|
||||||
optimalCondition(Balance)=0;
|
optimalCondition(Balance)=0;
|
||||||
optimalCondition(Balance+length(mVolt))=0;
|
optimalCondition(Balance+length(mVolt))=0;
|
||||||
end
|
end
|
||||||
|
VoltAAE=VoltAAE+sum(abs((SEVolt-rVolt)./rVolt));
|
||||||
|
VAngleAAE=VAngleAAE+sum(abs((SEVAngle(2:end)-rVAngel(2:end))./rVAngel(2:end)));
|
||||||
|
if loop>=500
|
||||||
|
break
|
||||||
|
end
|
||||||
|
loop=loop+1;
|
||||||
|
end
|
||||||
|
VoltAAE=VoltAAE/(loop*length(SEVolt))*100;
|
||||||
|
VAngleAAE=VAngleAAE/(loop*length(SEVAngle(2:end)))*100;
|
||||||
%% 输出结果
|
%% 输出结果
|
||||||
fprintf('迭代%d次\n',Iteration);
|
fprintf('迭代%d次\n',Iteration);
|
||||||
fval=full((z-h)'*W*(z-h));
|
fval=full((z-h)'*W*(z-h));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue