不能用测量值当负荷曲线,不然上下界不准。

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-04-02 16:42:51 +08:00
parent 0ad8514b6a
commit b6a1f8058c
5 changed files with 27 additions and 18 deletions

View File

@ -1,11 +1,14 @@
function Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag) function Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag,rIf1)
Ir=real(I1measurement); Ir=real(rIf1(Loadi));
pIr=find(Ir>0); pIr=find(Ir>0);
nIr=find(Ir<0); nIr=find(Ir<0);
Ii=imag(I1measurement); Ii=imag(rIf1(Loadi));
pIi=find(Ii>0); pIi=find(Ii>0);
nIi=find(Ii<0); nIi=find(Ii<0);
% Loadi=[1,4,5,6,8,10];
% lower=-0.2*sparse(ones(length(Loadi)*2,1)); % lower=-0.2*sparse(ones(length(Loadi)*2,1));
% upper=ones(length(Loadi)*2,1); % upper=ones(length(Loadi)*2,1);
% upper(pIr)=1.4*Ir(pIr); % upper(pIr)=1.4*Ir(pIr);

View File

@ -1,11 +1,13 @@
function Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag) function Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag,rIf1)
Ir=real(I1measurement); Ir=real(rIf1(Loadi));
pIr=find(Ir>0); pIr=find(Ir>0);
nIr=find(Ir<0); nIr=find(Ir<0);
Ii=imag(I1measurement); Ii=imag(rIf1(Loadi));
pIi=find(Ii>0); pIi=find(Ii>0);
nIi=find(Ii<0); nIi=find(Ii<0);
% Loadi=[1,4,5,6,8,10];
lower=ones(length(Loadi)*2,1); lower=ones(length(Loadi)*2,1);
% lower(pIr)=0.6*Ir(pIr); % lower(pIr)=0.6*Ir(pIr);
% lower(nIr)=1.4*Ir(nIr); % lower(nIr)=1.4*Ir(nIr);

View File

@ -1,4 +1,4 @@
function [ V1r,V1i,I1r,I1i,isConverged ] = IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY1,Balance,Vref,dI_F,flag ) function [ V1r,V1i,I1r,I1i,isConverged ] = IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY1,Balance,Vref,dI_F,flag,rIf1 )
% %
V1r=Vref*ones(busNum,1); V1r=Vref*ones(busNum,1);
V1i=0*ones(busNum,1); V1i=0*ones(busNum,1);
@ -17,7 +17,7 @@ Init_L=1*sparse(ones(RestraintCount,1));
Init_U=1*sparse(ones(RestraintCount,1)); Init_U=1*sparse(ones(RestraintCount,1));
Init_Y=sparse(2*busNum,1);% Init_Y=sparse(2*busNum,1);%
Gap=(Init_L'*Init_Z-Init_U'*Init_W); Gap=(Init_L'*Init_Z-Init_U'*Init_W);
kmax=15; kmax=20;
while(abs(Gap)>0.00001) while(abs(Gap)>0.00001)
if KK>=kmax if KK>=kmax
break; break;
@ -49,8 +49,8 @@ while(abs(Gap)>0.00001)
Mat_G=FormGstate1(I1r,I1i); Mat_G=FormGstate1(I1r,I1i);
Mat_H=FormH(fsY1,Loadi,V1r,V1i,I1r,I1i,BalI1r,BalI1i,Balance); Mat_H=FormH(fsY1,Loadi,V1r,V1i,I1r,I1i,BalI1r,BalI1i,Balance);
Ly=Mat_H; Ly=Mat_H;
Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag); Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag,rIf1);
Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag); Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag,rIf1);
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W); Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
YY=FormYY(Lul,Lz,Ly,Luu,Lw,Lx); YY=FormYY(Lul,Lz,Ly,Luu,Lw,Lx);
%% %%

View File

@ -12,8 +12,8 @@ deltF=[
sparse(Loadi,1,2*( abs(V1measurement).^2- (V1r(Loadi).^2+ V1i(Loadi).^2) ).*(-2*V1r(Loadi))./wV1r./wV1r,busNum,1); sparse(Loadi,1,2*( abs(V1measurement).^2- (V1r(Loadi).^2+ V1i(Loadi).^2) ).*(-2*V1r(Loadi))./wV1r./wV1r,busNum,1);
sparse(Loadi,1,2*( abs(V1measurement).^2- (V1r(Loadi).^2+ V1i(Loadi).^2) ).*(-2*V1i(Loadi))./wV1i./wV1i,busNum,1); sparse(Loadi,1,2*( abs(V1measurement).^2- (V1r(Loadi).^2+ V1i(Loadi).^2) ).*(-2*V1i(Loadi))./wV1i./wV1i,busNum,1);
%-2*( [real(Imeasurement);imag(Imeasurement)]-[I1r;I1i]); %-2*( [real(Imeasurement);imag(Imeasurement)]-[I1r;I1i]);
sparse(1:length(Loadi),1,-2*(real(I1measurement)-I1r(Loadi))./wI1r./wI1r,length(Loadi),1); sparse(1:length(Loadi),1,-2*(real(I1measurement)-I1r)./wI1r./wI1r,length(Loadi),1);
sparse(1:length(Loadi),1,-2*(imag(I1measurement)-I1i(Loadi))./wI1i./wI1i,length(Loadi),1); sparse(1:length(Loadi),1,-2*(imag(I1measurement)-I1i)./wI1i./wI1i,length(Loadi),1);
]; ];
end end

16
run.m
View File

@ -123,6 +123,10 @@ conj(Tf2p*[If0(2);If1(2);If2(2)]).*(Tf2p*[Vf0(2);Vf1(2);Vf2(2)]);
IpABC=Tf2p*conj([If0';If1';If2']); IpABC=Tf2p*conj([If0';If1';If2']);
% %
VoltpABC=Tf2p*conj([ Vf0'; Vf1'; Vf2']); VoltpABC=Tf2p*conj([ Vf0'; Vf1'; Vf2']);
rVoltpABC=VoltpABC;
rVoltpA=VoltpA;
rVoltpB=VoltpB;
rVoltpC=VoltpC;
disp([' A B C']) disp([' A B C'])
full(abs(VoltpABC')) full(abs(VoltpABC'))
fprintf('\n'); fprintf('\n');
@ -324,9 +328,9 @@ wV0i=wV0i(Loadi);
% dI_F=conj(dI_F)'; % dI_F=conj(dI_F)';
% dI_F=dI_F(Loadi,:); % dI_F=dI_F(Loadi,:);
% %
deltmCurpA=conj((mphaseASpotLoadP+1j*mphaseASpotLoadQ)./mVoltpA)*0.2; deltmCurpA=conj((phaseASpotLoadP+1j*phaseASpotLoadQ)./rVoltpA)*0.2;
deltmCurpB=conj((mphaseBSpotLoadP+1j*mphaseBSpotLoadQ)./mVoltpB)*0.2; deltmCurpB=conj((phaseBSpotLoadP+1j*phaseBSpotLoadQ)./rVoltpB)*0.2;
deltmCurpC=conj((mphaseCSpotLoadP+1j*mphaseCSpotLoadQ)./mVoltpC)*0.2; deltmCurpC=conj((phaseCSpotLoadP+1j*phaseCSpotLoadQ)./rVoltpC)*0.2;
% %
deltF012=Tp2f*conj([deltmCurpA';deltmCurpB';deltmCurpC']); deltF012=Tp2f*conj([deltmCurpA';deltmCurpB';deltmCurpC']);
dI_F=conj(deltF012)'; dI_F=conj(deltF012)';
@ -356,19 +360,19 @@ for II=1:3
if II==1 if II==1
fprintf('\n'); fprintf('\n');
tic tic
[ V1r,V1i,I1r,I1i,isConverged1 ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1,dI_F,II ); [ V1r,V1i,I1r,I1i,isConverged1 ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1,dI_F,II,rIf1 );
toc toc
end end
if II==2 if II==2
fprintf('\n'); fprintf('\n');
tic tic
[ V2r,V2i,I2r,I2i,isConverged2 ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0,dI_F,II ); [ V2r,V2i,I2r,I2i,isConverged2 ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0,dI_F,II,rIf2 );
toc toc
end end
if II==3 if II==3
fprintf('\n'); fprintf('\n');
tic tic
[ V0r,V0i,I0r,I0i,isConverged0 ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0,dI_F,II ); [ V0r,V0i,I0r,I0i,isConverged0 ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0,dI_F,II,rIf0 );
toc toc
end end