把电压放目标函数中,电流移除目标函数。

Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
dugg@lab-desk 2014-10-19 14:50:04 +08:00
parent ec67f3a775
commit 058671a01b
6 changed files with 27 additions and 14 deletions

View File

@ -1,5 +1,5 @@
function Lw=FormLw(Loadi,Mat_G,Init_U) function Lw=FormLw(Loadi,Mat_G,Init_U)
upper=5*sparse(ones(length(Loadi)*1,1)); upper=0.1*sparse(ones(length(Loadi)*1,1));
Lw=Mat_G+Init_U-upper; Lw=Mat_G+Init_U-upper;
end end

View File

@ -1,4 +1,4 @@
function [ V1r,V1i,I1r,I1i ] = IPMLoop(measurement,BalI1r,BalI1i,busNum,Loadi,fsY1,Balance,Vref ) function [ V1r,V1i,I1r,I1i ] = IPMLoop(Vmeasurement,Imeasurement,BalI1r,BalI1i,busNum,Loadi,fsY1,Balance,Vref )
% %
V1r=1*ones(busNum,1); V1r=1*ones(busNum,1);
V1i=0*ones(busNum,1); V1i=0*ones(busNum,1);
@ -41,7 +41,7 @@ while(abs(Gap)>0.000001)
%% ddg %% ddg
ddg=func_ddg(busNum,Loadi,Init_Z,Init_W); ddg=func_ddg(busNum,Loadi,Init_Z,Init_W);
%% deltF %% deltF
deltF=func_deltF(measurement,busNum,fsY1,Loadi,V1r,V1i,I1r,I1i); deltF=func_deltF(Vmeasurement,Imeasurement,busNum,fsY1,Loadi,V1r,V1i,I1r,I1i);
% deltF=0; % deltF=0;
%% %%
Luu=Init_U.*Init_W+Init_u*ones(RestraintCount,1); Luu=Init_U.*Init_W+Init_u*ones(RestraintCount,1);
@ -62,7 +62,7 @@ while(abs(Gap)>0.000001)
fprintf('Gap %f\n',full(Gap)); fprintf('Gap %f\n',full(Gap));
KK=KK+1; KK=KK+1;
end end
f=sum(([real(measurement);imag(measurement)]-[-I1r;-I1i]).^2); f=sum(([real(Imeasurement);imag(Imeasurement)]-[-I1r;-I1i]).^2)+sum((real(Vmeasurement)-V1r(Loadi)).^2)+sum((real(Vmeasurement)-V1i(Loadi)).^2);
end end

View File

@ -1,10 +1,12 @@
650 4.16 650 4.16
0 0
601 650 632 2000 601 650 632 2000
602 632 631 2000 602 632 631 1800
602 631 630 1700
0 0
632 30 0 0 632 30 0 0
0 0
630 80 70 60 50 40 30
631 40 10 11 50 30 30 631 40 10 11 50 30 30
632 120 120 120 110 90 90 632 120 120 120 110 90 90
0 0

View File

@ -1,4 +1,4 @@
function deltF=func_deltF(measurement,busNum,fsY11,Loadi,V1r,V1i,I1r,I1i) function deltF=func_deltF(Vmeasurement,Imeasurement,busNum,fsY11,Loadi,V1r,V1i,I1r,I1i)
%t1=PG(setdiff(PVi,Balance)); %t1=PG(setdiff(PVi,Balance));
% t2=Volt'*Volt; % t2=Volt'*Volt;
% t3=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat); % t3=real(GB).*cos(AngleIJMat)+imag(GB).*sin(AngleIJMat);
@ -8,8 +8,10 @@ function deltF=func_deltF(measurement,busNum,fsY11,Loadi,V1r,V1i,I1r,I1i)
% PPG=([PQ(1),PBal])';% % PPG=([PQ(1),PBal])';%
%% %%
deltF=[ deltF=[
zeros(busNum*2,1); %zeros(busNum*2,1);
-2*( [real(measurement);imag(measurement)]-[I1r;I1i]); sparse(Loadi,1,-2*(real(Vmeasurement)-V1r(Loadi)),busNum,1);
sparse(Loadi,1,-2*(imag(Vmeasurement)-V1i(Loadi)),busNum,1);
-0*( [real(Imeasurement);imag(Imeasurement)]-[I1r;I1i]);
]; ];
end end

View File

@ -1,7 +1,10 @@
function deltdeltF=func_deltdeltF(busNum,fsY11,Loadi) function deltdeltF=func_deltdeltF(busNum,fsY11,Loadi)
deltdeltF=[ deltdeltF=[
zeros(busNum*2,busNum*2+length(Loadi)*2); %zeros(busNum*2,busNum*2+length(Loadi)*2);
zeros(length(Loadi)*2,busNum*2),2*eye(length(Loadi)*2); sparse(Loadi,Loadi,2,busNum,busNum*2+length(Loadi)*2);
sparse(Loadi,busNum+Loadi,2,busNum,busNum*2+length(Loadi)*2);
zeros(length(Loadi)*2,busNum*2),0*eye(length(Loadi)*2);
%sparse(Loadi,busNum*2+Loadi,2,busNum,busNum*2+length(Loadi)*2);
]; ];
end end

14
run.m
View File

@ -235,10 +235,16 @@ mIf2=-If2;
fprintf('\n'); fprintf('\n');
BalI1r=real(-sum(mIf1)); BalI1r=real(-sum(mIf1));
BalI1i=imag(-sum(mIf1)); BalI1i=imag(-sum(mIf1));
% inv(fsY11)*(mIf1); %µçѹ
measurement=-mIf1(Loadi); mfsY11=fsY11;
[ V1r,V1i,I1r,I1i ]=IPMLoop(measurement,BalI1r,BalI1i,busNum,Loadi,fsY11,Balance,1 ); mfsY11(:,Balance)=0;
f=sum(([real(measurement);imag(measurement)]-[-I1r;-I1i]).^2); mfsY11(Balance,:)=0;
mfsY11=mfsY11+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
mV1=inv(mfsY11)*(mIf1)+1;
Vmeasurement=mV1(Loadi);
Imeasurement=-mIf1(Loadi);
[ V1r,V1i,I1r,I1i ]=IPMLoop(Vmeasurement,Imeasurement,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);
fprintf(' %f\n',full(f)); fprintf(' %f\n',full(f));
%% %%
fprintf('\n'); fprintf('\n');