parent
69ba28f2a9
commit
28c5270e87
|
|
@ -1,4 +1,4 @@
|
|||
function Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement)
|
||||
function Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag)
|
||||
|
||||
Ir=real(I1measurement);
|
||||
pIr=find(Ir>0);
|
||||
|
|
@ -7,23 +7,23 @@ Ii=imag(I1measurement);
|
|||
pIi=find(Ii>0);
|
||||
nIi=find(Ii<0);
|
||||
% lower=-0.2*sparse(ones(length(Loadi)*2,1));
|
||||
% upper=ones(length(Loadi)*2,1);
|
||||
% upper(pIr)=1.4*Ir(pIr);
|
||||
% upper(nIr)=0.6*Ir(nIr);
|
||||
% upper(pIi+length(Ir))=1.4*Ii(pIi);
|
||||
% upper(nIi+length(Ir))=0.6*Ii(nIi);
|
||||
upper=ones(length(Loadi)*2,1);
|
||||
upper(pIr)=1.4*Ir(pIr);
|
||||
upper(nIr)=0.6*Ir(nIr);
|
||||
upper(pIi+length(Ir))=1.4*Ii(pIi);
|
||||
upper(nIi+length(Ir))=0.6*Ii(nIi);
|
||||
upper(pIr)=abs(real(dI_F(pIr,flag)))+Ir(pIr);
|
||||
upper(nIr)=abs(real(dI_F(nIr,flag)))+Ir(nIr);
|
||||
upper(pIi+length(Ir))=abs(imag(dI_F(pIi,flag)))+Ii(pIi);
|
||||
upper(nIi+length(Ir))=abs(imag(dI_F(nIi,flag)))+Ii(nIi);
|
||||
|
||||
|
||||
%太小的数都要放宽一些
|
||||
tooSmall=find(abs(Ir)<0.0005);
|
||||
% upper(tooSmall)=0.99*abs(Ir(tooSmall));
|
||||
upper(tooSmall)=0.2;
|
||||
tooSmall=find(abs(Ii)<0.0005);
|
||||
% upper(tooSmall+length(Ir))=0.99*abs(Ii(tooSmall));
|
||||
upper(tooSmall+length(Ir))=0.2;
|
||||
% tooSmall=find(abs(Ir)<0.0005);
|
||||
% upper(tooSmall)=0.2;
|
||||
% tooSmall=find(abs(Ii)<0.0005);
|
||||
% upper(tooSmall+length(Ir))=0.2;
|
||||
|
||||
% upper([4,5,6])=[1;1;1];
|
||||
% upper([4,5,6])=0.2*Ii(nIi);
|
||||
|
||||
% upper=ones(length(Ir)*2,1);
|
||||
Lw=Mat_G+Init_U-upper;
|
||||
end
|
||||
|
|
@ -1,26 +1,27 @@
|
|||
function Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement)
|
||||
function Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag)
|
||||
Ir=real(I1measurement);
|
||||
pIr=find(Ir>0);
|
||||
nIr=find(Ir<0);
|
||||
Ii=imag(I1measurement);
|
||||
pIi=find(Ii>0);
|
||||
nIi=find(Ii<0);
|
||||
% lower=-0.2*sparse(ones(length(Loadi)*2,1));
|
||||
|
||||
lower=ones(length(Loadi)*2,1);
|
||||
lower(pIr)=0.6*Ir(pIr);
|
||||
lower(nIr)=1.4*Ir(nIr);
|
||||
lower(pIi+length(Ir))=0.6*Ii(pIi);
|
||||
lower(nIi+length(Ir))=1.4*Ii(nIi);
|
||||
% lower(pIr)=0.6*Ir(pIr);
|
||||
% lower(nIr)=1.4*Ir(nIr);
|
||||
% lower(pIi+length(Ir))=0.6*Ii(pIi);
|
||||
% lower(nIi+length(Ir))=1.4*Ii(nIi);
|
||||
|
||||
lower(pIr)=-abs(real(dI_F(pIr,flag)))+Ir(pIr);
|
||||
lower(nIr)=-abs(real(dI_F(nIr,flag)))+Ir(nIr);
|
||||
lower(pIi+length(Ir))=-abs(imag(dI_F(pIi,flag)))+Ii(pIi);
|
||||
lower(nIi+length(Ir))=-abs(imag(dI_F(nIi,flag)))+Ii(nIi);
|
||||
|
||||
%太小的数都要放宽一些
|
||||
tooSmall=find(abs(Ir)<0.0005);
|
||||
% lower(tooSmall)=-0.99*abs(Ir(tooSmall));
|
||||
lower(tooSmall)=-0.2;
|
||||
tooSmall=find(abs(Ii)<0.0005);
|
||||
% lower(tooSmall+length(Ir))=-.99*abs(Ii(tooSmall));
|
||||
lower(tooSmall+length(Ir))=-0.2;
|
||||
% tooSmall=find(abs(Ir)<0.0005);
|
||||
% lower(tooSmall)=-0.2;
|
||||
% tooSmall=find(abs(Ii)<0.0005);
|
||||
% lower(tooSmall+length(Ir))=-0.2;
|
||||
|
||||
% lower=-ones(length(Ir)*2,1);
|
||||
% lower([4,5,6])=[-1;-1;-1];
|
||||
Lz=Mat_G-Init_L-lower;
|
||||
end
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
function [ V1r,V1i,I1r,I1i,isConverged ] = IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY1,Balance,Vref )
|
||||
function [ V1r,V1i,I1r,I1i,isConverged ] = IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY1,Balance,Vref,dI_F,flag )
|
||||
%把每个序的循环写在这个函数中。其实也就是内点法循环。
|
||||
V1r=Vref*ones(busNum,1);
|
||||
V1i=0*ones(busNum,1);
|
||||
|
|
@ -50,8 +50,8 @@ while(abs(Gap)>0.00001)
|
|||
Mat_G=FormGstate1(I1r,I1i);
|
||||
Mat_H=FormH(fsY1,Loadi,V1r,V1i,I1r,I1i,BalI1r,BalI1i,Balance);
|
||||
Ly=Mat_H;
|
||||
Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement);
|
||||
Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement);
|
||||
Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag);
|
||||
Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag);
|
||||
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
|
||||
YY=FormYY(Lul,Lz,Ly,Luu,Lw,Lx);
|
||||
%% 开始解方程
|
||||
|
|
|
|||
51
run.m
51
run.m
|
|
@ -271,25 +271,70 @@ wV0i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*s
|
|||
wV0r=wV0r(Loadi);
|
||||
wV0i=wV0i(Loadi);
|
||||
% matlabpool local 3
|
||||
|
||||
%% 计算一下电流增量
|
||||
%A相的
|
||||
dIrdP_Ar=real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
|
||||
dIrdQ_Ar=imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
|
||||
% dIrdP_Ar=dIrdP_Ar(Loadi);
|
||||
% dIrdQ_Ar=dIrdQ_Ar(Loadi);
|
||||
dI_pAr=dIrdP_Ar.*mphaseASpotLoadP*0.2+mphaseASpotLoadQ.*dIrdQ_Ar*0.2;
|
||||
dIidP_Ai=-imag(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
|
||||
dIidQ_Ai=-real(mVoltpA)./(real(mVoltpA).^2+imag(mVoltpA).^2);
|
||||
% dIidP_Ai=dIidP_Ai(Loadi);
|
||||
% dIidQ_Ai=dIidQ_Ai(Loadi);
|
||||
dI_pAi=dIidP_Ai.*mphaseASpotLoadP*0.2+dIidQ_Ai.*mphaseASpotLoadQ*0.2;
|
||||
|
||||
%B相的
|
||||
dIrdP_Br=real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
|
||||
dIrdQ_Br=imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
|
||||
% dIrdP_Br=dIrdP_Br(Loadi);
|
||||
% dIrdQ_Br=dIrdQ_Br(Loadi);
|
||||
dI_pBr=dIrdP_Br.*mphaseBSpotLoadP*0.2+dIrdQ_Br.*mphaseBSpotLoadQ*0.2;
|
||||
dIidP_Bi=-imag(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
|
||||
dIidQ_Bi=-real(mVoltpB)./(real(mVoltpB).^2+imag(mVoltpB).^2);
|
||||
% dIidP_Bi=dIidP_Bi(Loadi);
|
||||
% dIidQ_Bi=dIidQ_Bi(Loadi);
|
||||
dI_pBi=dIidP_Bi.*mphaseBSpotLoadP*0.2+dIidQ_Bi.*mphaseBSpotLoadQ*0.2;
|
||||
|
||||
%C相的
|
||||
dIrdP_Cr=real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
|
||||
dIrdQ_Cr=imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
|
||||
% dIrdP_Cr=dIrdP_Cr(Loadi);
|
||||
% dIrdQ_Cr=dIrdQ_Cr(Loadi);
|
||||
dI_pCr=dIrdP_Cr.*mphaseCSpotLoadP*0.2+dIrdQ_Cr.*mphaseBSpotLoadQ*0.2;
|
||||
dIidP_Ci=-imag(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
|
||||
dIidQ_Ci=-real(mVoltpC)./(real(mVoltpC).^2+imag(mVoltpC).^2);
|
||||
% dIidP_Ci=dIidP_Ci(Loadi);
|
||||
% dIidQ_Ci=dIidQ_Ci(Loadi);
|
||||
dI_pCi=dIidP_Ci.*mphaseCSpotLoadP*0.2+dIidQ_Ci.*mphaseCSpotLoadQ*0.2;
|
||||
% 合成三序的
|
||||
%三序电流增量
|
||||
dI_F=Tp2f*[dI_pAr'+1j*dI_pAi';
|
||||
dI_pBr'+1j*dI_pBi';
|
||||
dI_pCr'+1j*dI_pCi';
|
||||
];
|
||||
dI_F=conj(dI_F)';
|
||||
dI_F=dI_F(Loadi,:);
|
||||
tic
|
||||
for II=1:3
|
||||
|
||||
if II==1
|
||||
fprintf('ÕýÐò\n');
|
||||
tic
|
||||
[ V1r,V1i,I1r,I1i,isConverged1 ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 );
|
||||
[ V1r,V1i,I1r,I1i,isConverged1 ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1,dI_F,II );
|
||||
toc
|
||||
end
|
||||
if II==2
|
||||
fprintf('¸ºÐò\n');
|
||||
tic
|
||||
[ V2r,V2i,I2r,I2i,isConverged2 ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0 );
|
||||
[ V2r,V2i,I2r,I2i,isConverged2 ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0,dI_F,II );
|
||||
toc
|
||||
end
|
||||
if II==3
|
||||
fprintf('ÁãÐò\n');
|
||||
tic
|
||||
[ V0r,V0i,I0r,I0i,isConverged0 ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0 );
|
||||
[ V0r,V0i,I0r,I0i,isConverged0 ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0,dI_F,II );
|
||||
toc
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue