修复一个电压没有测量值时上下界的错误。

Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
dugg@lab-desk 2015-02-06 21:40:14 +08:00
parent 2237f178a9
commit 1fd274a00d
2 changed files with 59 additions and 23 deletions

53
OPF.m
View File

@ -7,14 +7,17 @@ sumCaseB_SE=0;
sumCaseC_SE=0;
badDataResult=zeros(10,33);
badDataLocation=zeros(34,10);
maxDVolt=0;
maxDVAngle=0;
% for badDataNode=1:33
for I=1:1
nodeMaxDVolt=zeros(33,1);
nodeMaxDVAngle=zeros(33,1);
for badDataNode=1:1
loopN=1;
maxDVolt=0;
maxDVAngle=0;
while 1
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]= ...
pf('E:\ËãÀý\feeder33\feeder33.txt');
sigma=0.01;
sigma=0.001;
RealPD=PD;
RealQD=QD;
rVolt=Volt;
@ -33,23 +36,35 @@ maxDVAngle=0;
% mVolt=load('mVolt');
% mVolt=mVolt.mVolt;
mVolt(31)=rVolt(31)*(1-sigma*6);
% mVolt(badDataNode)=rVolt(badDataNode)*(1-sigma*6);
%% »­Case AµÄͼ
% figure('Color',[1 1 1]);
[Busnum,Loadi,Volt,PD,QD,rVolt,UAngel,RealPD,RealQD,rUAngel,Vbi,PDbi,QDbi,plotGapA]=subOPF([],PD0,QD0,mVolt,sigma);%È«²¿ÓÐ
% badDataResult(I,badDataNode)=sum(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))));
[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);
% 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))));
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
nodeMaxDVolt(badDataNode)=maxDVolt;
nodeMaxDVAngle(badDataNode)=maxDVAngle;
break;
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
loopN=loopN+1;
end
end
% end

View File

@ -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
%%
% 1 20130123
%%
% 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]= ...
pf('E:\\feeder33\feeder33.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;
plotGap=zeros(1,60);
ContrlCount=size(Loadi,1)*2+Busnum*2+Busnum+length(Loadi)*2;
kmax=100;
kmax=150;
Precision=Precision/1;
%%
%DG
@ -53,6 +54,11 @@ DGi=find(PD0<0);
%
mPD=PD0;
mQD=QD0;
%线
% mVolt(3)=0.9*mVolt(3);%15%
% mQD(13)=0.3*mQD(13);
%% ,
% lPD=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);
lQD(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
uVolt(noMeasurei)=0.7*mVolt(noMeasurei);
%
%mVolt(2)=5;
% bigM=0.000003;
@ -124,7 +138,7 @@ while(abs(Gap)>Precision*10)
%%
Luu=Init_U'.*Init_W'+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_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi);
Ly=Mat_H;
@ -177,7 +191,7 @@ while(abs(Gap)>Precision*10)
%%
Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1);
Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1);
bigM=0.4;
bigM=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_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;
mdP=max(dP);
mdQ=max(dQ);
%
if min(abs(Vbi-.1))>5e-005
isConverge=0;
end
if KK>=kmax
isConverge=0;
end
toc
end