修复一个电压没有测量值时上下界的错误。
Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
parent
2237f178a9
commit
1fd274a00d
53
OPF.m
53
OPF.m
|
|
@ -7,14 +7,17 @@ sumCaseB_SE=0;
|
||||||
sumCaseC_SE=0;
|
sumCaseC_SE=0;
|
||||||
badDataResult=zeros(10,33);
|
badDataResult=zeros(10,33);
|
||||||
badDataLocation=zeros(34,10);
|
badDataLocation=zeros(34,10);
|
||||||
maxDVolt=0;
|
nodeMaxDVolt=zeros(33,1);
|
||||||
maxDVAngle=0;
|
nodeMaxDVAngle=zeros(33,1);
|
||||||
% for badDataNode=1:33
|
for badDataNode=1:1
|
||||||
for I=1:1
|
loopN=1;
|
||||||
|
maxDVolt=0;
|
||||||
|
maxDVAngle=0;
|
||||||
|
while 1
|
||||||
close
|
close
|
||||||
[kmax,Precision,UAngel,Volt,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Linei,Linej,Transfori,Transforj,GenU,GenL,GenC,PG,QG,PD,QD,CenterA,PGi,PVQU,PVQL,Liner,Linex,Lineb,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0]= ...
|
[kmax,Precision,UAngel,Volt,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Linei,Linej,Transfori,Transforj,GenU,GenL,GenC,PG,QG,PD,QD,CenterA,PGi,PVQU,PVQL,Liner,Linex,Lineb,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0]= ...
|
||||||
pf('E:\ËãÀý\feeder33\feeder33.txt');
|
pf('E:\ËãÀý\feeder33\feeder33.txt');
|
||||||
sigma=0.01;
|
sigma=0.001;
|
||||||
RealPD=PD;
|
RealPD=PD;
|
||||||
RealQD=QD;
|
RealQD=QD;
|
||||||
rVolt=Volt;
|
rVolt=Volt;
|
||||||
|
|
@ -33,23 +36,35 @@ maxDVAngle=0;
|
||||||
% mVolt=load('mVolt');
|
% mVolt=load('mVolt');
|
||||||
% mVolt=mVolt.mVolt;
|
% mVolt=mVolt.mVolt;
|
||||||
|
|
||||||
mVolt(31)=rVolt(31)*(1-sigma*6);
|
% mVolt(badDataNode)=rVolt(badDataNode)*(1-sigma*6);
|
||||||
%% »Case AµÄͼ
|
%% »Case AµÄͼ
|
||||||
% figure('Color',[1 1 1]);
|
% figure('Color',[1 1 1]);
|
||||||
[Busnum,Loadi,Volt,PD,QD,rVolt,UAngel,RealPD,RealQD,rUAngel,Vbi,PDbi,QDbi,plotGapA]=subOPF([],PD0,QD0,mVolt,sigma);%È«²¿ÓÐ
|
[Busnum,Loadi,Volt,PD,QD,rVolt,UAngel,RealPD,RealQD,rUAngel,Vbi,PDbi,QDbi,plotGapA,isConverge]=subOPF([1:33],PD0,QD0,mVolt,sigma);%ČŤ˛żÓĐ
|
||||||
% badDataResult(I,badDataNode)=sum(Vbi);
|
% badDataResult(I,badDataNode)=sum(Vbi);
|
||||||
% badDataLocation(1:33,I)=Vbi;
|
% badDataLocation(1:33,I)=Vbi;
|
||||||
% badDataLocation(34,I)=sum(abs((rVolt-Volt)./rVolt./length(rVolt)))+sum(abs( (UAngel(2:33)-rUAngel(2:33))./rUAngel(2:33)./length(rUAngel(2:33))));
|
% badDataLocation(34,I)=sum(abs((rVolt-Volt)./rVolt./length(rVolt)))+sum(abs( (UAngel(2:33)-rUAngel(2:33))./rUAngel(2:33)./length(rUAngel(2:33))));
|
||||||
|
break;
|
||||||
|
if isConverge==0
|
||||||
|
continue;
|
||||||
|
end
|
||||||
|
% źÓ×î´óĆŤ˛î
|
||||||
|
maxDVolt_=max(abs((rVolt-Volt)));
|
||||||
|
if maxDVolt_>maxDVolt
|
||||||
|
maxDVolt=maxDVolt_;
|
||||||
|
end
|
||||||
|
maxDVAngle_=max(abs((UAngel(2:33)-rUAngel(2:33))));
|
||||||
|
if maxDVAngle_>maxDVAngle
|
||||||
|
maxDVAngle=maxDVAngle_;
|
||||||
|
end
|
||||||
|
|
||||||
% ¼Ó×î´óÆ«²î
|
if loopN>=1
|
||||||
maxDVolt_=max(abs((rVolt-Volt)));
|
nodeMaxDVolt(badDataNode)=maxDVolt;
|
||||||
if maxDVolt_>maxDVolt
|
nodeMaxDVAngle(badDataNode)=maxDVAngle;
|
||||||
maxDVolt=maxDVolt_;
|
break;
|
||||||
end
|
end
|
||||||
maxDVAngle_=max(abs((UAngel(2:33)-rUAngel(2:33))));
|
|
||||||
if maxDVAngle_>maxDVAngle
|
loopN=loopN+1;
|
||||||
maxDVAngle=maxDVAngle_;
|
end
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
% end
|
% end
|
||||||
|
|
|
||||||
29
subOPF.m
29
subOPF.m
|
|
@ -1,9 +1,10 @@
|
||||||
function [Busnum,Loadi,Volt,PD,QD,rVolt,UAngel,RealPD,RealQD,rUAngel,Vbi,PDbi,QDbi,plotGap]=subOPF(noMeasurei,PD0,QD0,mVolt,sigma)
|
function [Busnum,Loadi,Volt,PD,QD,rVolt,UAngel,RealPD,RealQD,rUAngel,Vbi,PDbi,QDbi,plotGap,isConverge]=subOPF(noMeasurei,PD0,QD0,mVolt,sigma)
|
||||||
tic
|
tic
|
||||||
%% 存在问题
|
%% 存在问题
|
||||||
% 变压器变比的位置没有考虑,由于现在用的变比都是1,所以没有影响。 20130123
|
% 变压器变比的位置没有考虑,由于现在用的变比都是1,所以没有影响。 20130123
|
||||||
%%
|
%%
|
||||||
% thesis=ForThesis(1,62);
|
% thesis=ForThesis(1,62);
|
||||||
|
isConverge=1;%判断是否收敛
|
||||||
[kmax,Precision,UAngel,Volt,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Linei,Linej,Transfori,Transforj,GenU,GenL,GenC,PG,QG,PD,QD,CenterA,PGi,PVQU,PVQL,Liner,Linex,Lineb,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0]= ...
|
[kmax,Precision,UAngel,Volt,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Linei,Linej,Transfori,Transforj,GenU,GenL,GenC,PG,QG,PD,QD,CenterA,PGi,PVQU,PVQL,Liner,Linex,Lineb,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0]= ...
|
||||||
pf('E:\算例\feeder33\feeder33.txt');
|
pf('E:\算例\feeder33\feeder33.txt');
|
||||||
% pf('E:\算例\柳金Ⅰ926_21671693_2012-09-06\newFIle16.txt');
|
% pf('E:\算例\柳金Ⅰ926_21671693_2012-09-06\newFIle16.txt');
|
||||||
|
|
@ -45,7 +46,7 @@ Gap=(Init_L*Init_Z'-Init_U*Init_W');
|
||||||
KK=0;
|
KK=0;
|
||||||
plotGap=zeros(1,60);
|
plotGap=zeros(1,60);
|
||||||
ContrlCount=size(Loadi,1)*2+Busnum*2+Busnum+length(Loadi)*2;
|
ContrlCount=size(Loadi,1)*2+Busnum*2+Busnum+length(Loadi)*2;
|
||||||
kmax=100;
|
kmax=150;
|
||||||
Precision=Precision/1;
|
Precision=Precision/1;
|
||||||
%% 加误差
|
%% 加误差
|
||||||
%找DG
|
%找DG
|
||||||
|
|
@ -53,6 +54,11 @@ DGi=find(PD0<0);
|
||||||
%
|
%
|
||||||
mPD=PD0;
|
mPD=PD0;
|
||||||
mQD=QD0;
|
mQD=QD0;
|
||||||
|
|
||||||
|
%负荷曲线有误
|
||||||
|
% mVolt(3)=0.9*mVolt(3);%15%
|
||||||
|
% mQD(13)=0.3*mQD(13);
|
||||||
|
|
||||||
%% 加估计上下界,用真实值
|
%% 加估计上下界,用真实值
|
||||||
% lPD=abs(RealPD*3*sigma);
|
% lPD=abs(RealPD*3*sigma);
|
||||||
% uPD=abs(RealPD*3*sigma);
|
% uPD=abs(RealPD*3*sigma);
|
||||||
|
|
@ -86,8 +92,16 @@ lPD(noMeasurei)=0.15*mPD(noMeasurei);%15%
|
||||||
uPD(noMeasurei)=0.15*mPD(noMeasurei);
|
uPD(noMeasurei)=0.15*mPD(noMeasurei);
|
||||||
lQD(noMeasurei)=0.15*mQD(noMeasurei);
|
lQD(noMeasurei)=0.15*mQD(noMeasurei);
|
||||||
uQD(noMeasurei)=0.15*mQD(noMeasurei);
|
uQD(noMeasurei)=0.15*mQD(noMeasurei);
|
||||||
|
|
||||||
|
|
||||||
|
%电压伪量测错误
|
||||||
|
mVolt(noMeasurei)=0.95;
|
||||||
|
|
||||||
lVolt(noMeasurei)=0.7*mVolt(noMeasurei);%电压在0.93~1.07
|
lVolt(noMeasurei)=0.7*mVolt(noMeasurei);%电压在0.93~1.07
|
||||||
uVolt(noMeasurei)=0.7*mVolt(noMeasurei);
|
uVolt(noMeasurei)=0.7*mVolt(noMeasurei);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%错误数据
|
%错误数据
|
||||||
%mVolt(2)=5;
|
%mVolt(2)=5;
|
||||||
% bigM=0.000003;
|
% bigM=0.000003;
|
||||||
|
|
@ -124,7 +138,7 @@ while(abs(Gap)>Precision*10)
|
||||||
%% 形成方程矩阵
|
%% 形成方程矩阵
|
||||||
Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
|
Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
|
||||||
Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
|
Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
|
||||||
bigM=0.8;
|
bigM=1;
|
||||||
Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD,uQD,lQD,uVolt,lVolt);
|
Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD,uQD,lQD,uVolt,lVolt);
|
||||||
Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi);
|
Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi);
|
||||||
Ly=Mat_H;
|
Ly=Mat_H;
|
||||||
|
|
@ -177,7 +191,7 @@ while(abs(Gap)>Precision*10)
|
||||||
%% 形成方程矩阵
|
%% 形成方程矩阵
|
||||||
Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
|
Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
|
||||||
Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
|
Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
|
||||||
bigM=0.4;
|
bigM=1;
|
||||||
eps=Gap*0.1;
|
eps=Gap*0.1;
|
||||||
Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD,uQD,lQD,uVolt,lVolt);
|
Mat_G=FormG(Volt,PD,QD,Loadi,bigM,mVolt,rVolt,sigma,Vbi,PDbi,QDbi,mPD,mQD,uPD,lPD,uQD,lQD,uVolt,lVolt);
|
||||||
Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi);
|
Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi);
|
||||||
|
|
@ -204,5 +218,12 @@ dQ=QD+diag(Volt)*Y.*sin(AngleIJ)*Volt';%
|
||||||
dQ(Balance)=0;
|
dQ(Balance)=0;
|
||||||
mdP=max(dP);
|
mdP=max(dP);
|
||||||
mdQ=max(dQ);
|
mdQ=max(dQ);
|
||||||
|
%判断是否收敛
|
||||||
|
if min(abs(Vbi-.1))>5e-005
|
||||||
|
isConverge=0;
|
||||||
|
end
|
||||||
|
if KK>=kmax
|
||||||
|
isConverge=0;
|
||||||
|
end
|
||||||
toc
|
toc
|
||||||
end
|
end
|
||||||
Loading…
Reference in New Issue