diff --git a/run.m b/run.m index 28c56c3..a0f5f16 100644 --- a/run.m +++ b/run.m @@ -201,15 +201,13 @@ I1measurement=mIf1(Loadi); % wI1r=abs( real(mIf1(Loadi).*sigmaI1) ); % wI1i=abs( imag(mIf1(Loadi).*sigmaI1) ); %正序测量误差的第二种形式 -wV1r=abs(real(V1measurement)).*sigma; -wV1i=abs(imag(V1measurement)).*sigma; -wV1i(abs(wV1i)<1e-5)=1e10; + wI1r=abs(real(I1measurement)).*sigma; wI1i=abs(imag(I1measurement)).*sigma; - -wV1i=ones(length(wV1i),1); -wV1r=ones(length(wV1i),1); - +wV1r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 ); +wV1i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 ); +wV1r=wV1r(Loadi); +wV1i=wV1i(Loadi); % [ V1r,V1i,I1r,I1i ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 ); % f=sum(([real(I1measurement);imag(I1measurement)]-[I1r;I1i]).^2)+sum((real(rV1)-V1r).^2)+sum((imag(rV1)-V1i).^2); % fprintf('目标值 %f\n',full(f)); @@ -234,13 +232,12 @@ I2measurement=mIf2(Loadi); % wI2r=abs( real(mIf2(Loadi).*sigmaI2) ); % wI2i=abs( imag(mIf2(Loadi).*sigmaI2) ); %负序误差的第二种形式 -wV2r=abs(real(V2measurement)).*sigma; -wV2i=abs(imag(V2measurement)).*sigma; wI2r=abs(real(I2measurement)).*sigma; wI2i=abs(imag(I2measurement)).*sigma; - -wV2i=ones(length(wV1i),1); -wV2r=ones(length(wV1i),1); +wV2r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 ); +wV2i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 ); +wV2r=wV2r(Loadi); +wV2i=wV2i(Loadi); % [ V2r,V2i,I2r,I2i ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0 ); % f=sum(([real(I2measurement);imag(I2measurement)]-[I2r;I2i]).^2)+sum((real(rV2)-V2r).^2)+sum((imag(rV2)-V2i).^2); @@ -266,45 +263,31 @@ I0measurement=mIf0(Loadi); % wI0r=abs( real(mIf0(Loadi).*sigmaI0) ); % wI0i=abs( imag(mIf0(Loadi).*sigmaI0) ); %零序误差的第二种形式 -wV0r=abs(real(V0measurement)).*sigma; -wV0i=abs(imag(V0measurement)).*sigma; + wI0r=abs(real(I0measurement)).*sigma; -wI0r(abs(wI0r)<1e-5)=1e10; wI0i=abs(imag(I0measurement)).*sigma; - -wV0i=ones(length(wV1i),1); -wV0r=ones(length(wV1i),1); - +wV0r=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 ); +wV0i=sqrt(2*( (abs(mVoltpA).*sigma).^2+(abs(mVoltpB).*sigma).^2+(abs(mVoltpC).*sigma).^2 )/9 ); +wV0r=wV0r(Loadi); +wV0i=wV0i(Loadi); % matlabpool local 3 tic for II=1:3 if II==1 fprintf('正序\n'); -% wV1r(1:2)=1e10; -% wV1i(1:2)=1e10; -% wI1r(1:2)=1e10; -% wI1i(1:2)=1e10; tic [ V1r,V1i,I1r,I1i,isConverged1 ]=IPMLoop(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 ); toc end if II==2 fprintf('负序\n'); -% wV2r(1:2)=1e10; -% wV2i(1:2)=1e10; -% wI2r(1:2)=1e10; -% wI2i(1:2)=1e10; tic [ V2r,V2i,I2r,I2i,isConverged2 ]=IPMLoop(V2measurement,wV2r,wV2i,I2measurement,wI2r,wI2i,BalI2r,BalI2i,busNum,Loadi,fsY22,Balance,0 ); toc end if II==3 fprintf('零序\n'); -% wV0r(1:2)=1e10; -% wV0i(1:2)=1e10; -% wI0r(1:2)=1e10; -% wI0i(1:2)=1e10; tic [ V0r,V0i,I0r,I0i,isConverged0 ]=IPMLoop(V0measurement,wV0r,wV0i,I0measurement,wI0r,wI0i,BalI0r,BalI0i,busNum,Loadi,fsY00,Balance,0 ); toc