修复了目标函数一次导数的一个bug。
Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
parent
d81d1fd26e
commit
c1efa7e6a8
|
|
@ -1,5 +1,21 @@
|
|||
function Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement)
|
||||
|
||||
upper=0.2.*sparse(ones(length(Loadi)*2,1));
|
||||
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));
|
||||
upper=ones(length(Loadi)*2,1);
|
||||
upper(pIr)=1.8*Ir(pIr);
|
||||
upper(nIr)=0.2*Ir(nIr);
|
||||
upper(pIi+length(Ir))=1.8*Ii(pIi);
|
||||
upper(nIi+length(Ir))=0.2*Ii(nIi);
|
||||
|
||||
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,5 +1,18 @@
|
|||
function Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement)
|
||||
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.2*Ir(pIr);
|
||||
lower(nIr)=1.8*Ir(nIr);
|
||||
lower(pIi+length(Ir))=0.2*Ii(pIi);
|
||||
lower(nIi+length(Ir))=1.8*Ii(nIi);
|
||||
|
||||
lower=-0.2*sparse(ones(length(Loadi)*2,1));
|
||||
lower=-ones(length(Ir)*2,1);
|
||||
% lower([4,5,6])=[-1;-1;-1];
|
||||
Lz=Mat_G-Init_L-lower;
|
||||
end
|
||||
|
|
@ -84,7 +84,7 @@ while(abs(Gap)>0.000001)
|
|||
fprintf('Gap %f\n',full(Gap));
|
||||
KK=KK+1;
|
||||
end
|
||||
f=sum(([real(I1measurement);imag(I1measurement)]-[-I1r;-I1i]).^2)+sum((real(V1measurement)-V1r(Loadi)).^2)+sum((imag(V1measurement)-V1i(Loadi)).^2);
|
||||
f=sum(([real(I1measurement);imag(I1measurement)]-[I1r;I1i]).^2)+sum((real(V1measurement)-V1r(Loadi)).^2)+sum((imag(V1measurement)-V1i(Loadi)).^2);
|
||||
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ deltF=[
|
|||
sparse(Loadi,1,-2*(real(V1measurement)-V1r(Loadi))./wV1r./wV1r,busNum,1);
|
||||
sparse(Loadi,1,-2*(imag(V1measurement)-V1i(Loadi))./wV1i./wV1i,busNum,1);
|
||||
%-2*( [real(Imeasurement);imag(Imeasurement)]-[I1r;I1i]);
|
||||
sparse(1:length(Loadi),1,-2*(real(I1measurement)-V1r(Loadi))./wI1r./wI1r,length(Loadi),1);
|
||||
sparse(1:length(Loadi),1,-2*(imag(I1measurement)-V1i(Loadi))./wI1i./wI1i,length(Loadi),1);
|
||||
sparse(1:length(Loadi),1,-2*(real(I1measurement)-I1r(Loadi))./wI1r./wI1r,length(Loadi),1);
|
||||
sparse(1:length(Loadi),1,-2*(imag(I1measurement)-I1i(Loadi))./wI1i./wI1i,length(Loadi),1);
|
||||
];
|
||||
|
||||
end
|
||||
10
run.m
10
run.m
|
|
@ -216,7 +216,7 @@ CurpC=conj((iterPhaseCSpotLoadP+1j*iterPhaseCSpotLoadQ)./VoltpC);
|
|||
f012=Tp2f*conj([CurpA';CurpB';CurpC']);
|
||||
%把三序电流分离出来
|
||||
If0=conj(f012(1,:)');
|
||||
If1=conj(f012(2,:)');
|
||||
If1=conj(f012(2,:)');%负荷电流
|
||||
If2=conj(f012(3,:)');
|
||||
%试着算一下正序电流
|
||||
% fsY11*V1;
|
||||
|
|
@ -224,7 +224,7 @@ If2=conj(f012(3,:)');
|
|||
%% 设定量测误差
|
||||
sigma=0.03;
|
||||
mIf0=-If0;
|
||||
mIf1=-If1;
|
||||
mIf1=-If1;%mIf1是注入电流,相当于发电机电流
|
||||
% mIf1(3)=-mIf1(2);
|
||||
mIf2=-If2;
|
||||
% fsY11(:,Balance)=0;
|
||||
|
|
@ -249,9 +249,9 @@ V1measurement=rV1(Loadi).*(1+sigmaV1);
|
|||
wV1r=abs(real( rV1(Loadi).*sigmaV1 ));
|
||||
wV1i=abs(imag( rV1(Loadi).*sigmaV1 ));
|
||||
sigmaI1=normrnd(0,sigma,length(Loadi),1);
|
||||
I1measurement=-mIf1(Loadi).*(1+sigmaI1);
|
||||
wI1r=abs( real(-mIf1(Loadi).*sigmaI1) );
|
||||
wI1i=abs( imag(-mIf1(Loadi).*sigmaI1) );
|
||||
I1measurement=mIf1(Loadi).*(1+sigmaI1);%测量值是等效发电机电流
|
||||
wI1r=abs( real(mIf1(Loadi).*sigmaI1) );
|
||||
wI1i=abs( imag(mIf1(Loadi).*sigmaI1) );
|
||||
|
||||
[ V1r,V1i,I1r,I1i ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 );
|
||||
% f=sum(([real(Imeasurement);imag(Imeasurement)]-[-I1r;-I1i]).^2)+sum((real(Vmeasurement)-V1r(Loadi)).^2)+sum((imag(Vmeasurement)-V1i(Loadi)).^2);
|
||||
|
|
|
|||
Loading…
Reference in New Issue