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);
|
Ir=real(I1measurement);
|
||||||
pIr=find(Ir>0);
|
pIr=find(Ir>0);
|
||||||
|
|
@ -7,23 +7,23 @@ Ii=imag(I1measurement);
|
||||||
pIi=find(Ii>0);
|
pIi=find(Ii>0);
|
||||||
nIi=find(Ii<0);
|
nIi=find(Ii<0);
|
||||||
% 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(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=ones(length(Loadi)*2,1);
|
||||||
upper(pIr)=1.4*Ir(pIr);
|
upper(pIr)=abs(real(dI_F(pIr,flag)))+Ir(pIr);
|
||||||
upper(nIr)=0.6*Ir(nIr);
|
upper(nIr)=abs(real(dI_F(nIr,flag)))+Ir(nIr);
|
||||||
upper(pIi+length(Ir))=1.4*Ii(pIi);
|
upper(pIi+length(Ir))=abs(imag(dI_F(pIi,flag)))+Ii(pIi);
|
||||||
upper(nIi+length(Ir))=0.6*Ii(nIi);
|
upper(nIi+length(Ir))=abs(imag(dI_F(nIi,flag)))+Ii(nIi);
|
||||||
|
|
||||||
|
|
||||||
%太小的数都要放宽一些
|
%太小的数都要放宽一些
|
||||||
tooSmall=find(abs(Ir)<0.0005);
|
% tooSmall=find(abs(Ir)<0.0005);
|
||||||
% upper(tooSmall)=0.99*abs(Ir(tooSmall));
|
% upper(tooSmall)=0.2;
|
||||||
upper(tooSmall)=0.2;
|
% tooSmall=find(abs(Ii)<0.0005);
|
||||||
tooSmall=find(abs(Ii)<0.0005);
|
% upper(tooSmall+length(Ir))=0.2;
|
||||||
% upper(tooSmall+length(Ir))=0.99*abs(Ii(tooSmall));
|
|
||||||
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;
|
Lw=Mat_G+Init_U-upper;
|
||||||
end
|
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);
|
Ir=real(I1measurement);
|
||||||
pIr=find(Ir>0);
|
pIr=find(Ir>0);
|
||||||
nIr=find(Ir<0);
|
nIr=find(Ir<0);
|
||||||
Ii=imag(I1measurement);
|
Ii=imag(I1measurement);
|
||||||
pIi=find(Ii>0);
|
pIi=find(Ii>0);
|
||||||
nIi=find(Ii<0);
|
nIi=find(Ii<0);
|
||||||
% lower=-0.2*sparse(ones(length(Loadi)*2,1));
|
|
||||||
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);
|
||||||
lower(pIi+length(Ir))=0.6*Ii(pIi);
|
% lower(pIi+length(Ir))=0.6*Ii(pIi);
|
||||||
lower(nIi+length(Ir))=1.4*Ii(nIi);
|
% 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);
|
% tooSmall=find(abs(Ir)<0.0005);
|
||||||
% lower(tooSmall)=-0.99*abs(Ir(tooSmall));
|
% lower(tooSmall)=-0.2;
|
||||||
lower(tooSmall)=-0.2;
|
% tooSmall=find(abs(Ii)<0.0005);
|
||||||
tooSmall=find(abs(Ii)<0.0005);
|
% lower(tooSmall+length(Ir))=-0.2;
|
||||||
% lower(tooSmall+length(Ir))=-.99*abs(Ii(tooSmall));
|
|
||||||
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;
|
Lz=Mat_G-Init_L-lower;
|
||||||
end
|
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);
|
V1r=Vref*ones(busNum,1);
|
||||||
V1i=0*ones(busNum,1);
|
V1i=0*ones(busNum,1);
|
||||||
|
|
@ -50,8 +50,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);
|
Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement,dI_F,flag);
|
||||||
Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement);
|
Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement,dI_F,flag);
|
||||||
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);
|
||||||
%% 开始解方程
|
%% 开始解方程
|
||||||
|
|
|
||||||
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);
|
wV0r=wV0r(Loadi);
|
||||||
wV0i=wV0i(Loadi);
|
wV0i=wV0i(Loadi);
|
||||||
% matlabpool local 3
|
% 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
|
tic
|
||||||
for II=1:3
|
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 );
|
[ V1r,V1i,I1r,I1i,isConverged1 ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1,dI_F,II );
|
||||||
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 );
|
[ V2r,V2i,I2r,I2i,isConverged2 ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0,dI_F,II );
|
||||||
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 );
|
[ V0r,V0i,I0r,I0i,isConverged0 ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0,dI_F,II );
|
||||||
toc
|
toc
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue