修复了目标函数求导的错误。

Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
dugg@lab-desk 2014-12-04 11:19:08 +08:00
parent 5357f5edcf
commit 1c2b53d2b5
6 changed files with 18 additions and 18 deletions

View File

@ -14,12 +14,12 @@ upper(pIi+length(Ir))=1.2*Ii(pIi);
upper(nIi+length(Ir))=0.8*Ii(nIi); upper(nIi+length(Ir))=0.8*Ii(nIi);
% %
tooSmall=find(abs(Ir)<0.05); tooSmall=find(abs(Ir)<0.0005);
% upper(tooSmall)=0.99*abs(Ir(tooSmall)); % upper(tooSmall)=0.99*abs(Ir(tooSmall));
upper(tooSmall)=0.2; upper(tooSmall)=0.002;
tooSmall=find(abs(Ii)<0.05); tooSmall=find(abs(Ii)<0.0005);
% upper(tooSmall+length(Ir))=0.99*abs(Ii(tooSmall)); % upper(tooSmall+length(Ir))=0.99*abs(Ii(tooSmall));
upper(tooSmall+length(Ir))=0.2; upper(tooSmall+length(Ir))=0.002;
% upper([4,5,6])=[1;1;1]; % upper([4,5,6])=[1;1;1];
% upper([4,5,6])=0.2*Ii(nIi); % upper([4,5,6])=0.2*Ii(nIi);

View File

@ -13,12 +13,12 @@ lower(pIi+length(Ir))=0.8*Ii(pIi);
lower(nIi+length(Ir))=1.2*Ii(nIi); lower(nIi+length(Ir))=1.2*Ii(nIi);
% %
tooSmall=find(abs(Ir)<0.05); tooSmall=find(abs(Ir)<0.0005);
% lower(tooSmall)=-0.99*abs(Ir(tooSmall)); % lower(tooSmall)=-0.99*abs(Ir(tooSmall));
lower(tooSmall)=-0.2; lower(tooSmall)=-0.002;
tooSmall=find(abs(Ii)<0.05); tooSmall=find(abs(Ii)<0.0005);
% lower(tooSmall+length(Ir))=-.99*abs(Ii(tooSmall)); % lower(tooSmall+length(Ir))=-.99*abs(Ii(tooSmall));
lower(tooSmall+length(Ir))=-0.2; lower(tooSmall+length(Ir))=-0.002;
% lower=-ones(length(Ir)*2,1); % lower=-ones(length(Ir)*2,1);
% lower([4,5,6])=[-1;-1;-1]; % lower([4,5,6])=[-1;-1;-1];

View File

@ -43,7 +43,7 @@ while(abs(Gap)>0.00001)
% U_1W=diag(Init_W./Init_U); % U_1W=diag(Init_W./Init_U);
%% %%
deltdeltF=func_deltdeltF(busNum,fsY1,Loadi,wV1r,wV1i,wI1r,wI1i,V1measurement,V1r,V1i); deltdeltF=func_deltdeltF(busNum,fsY1,Loadi,wV1r,wV1i,wI1r,wI1i,V1measurement,V1r,V1i);
deltdeltF=0; % deltdeltF=0;
%% ddHy %% ddHy
% ddh=func_ddh(busNum,Loadi,Init_Z,Init_W); % ddh=func_ddh(busNum,Loadi,Init_Z,Init_W);
ddh=0; ddh=0;
@ -55,7 +55,7 @@ while(abs(Gap)>0.00001)
end end
%% deltF %% deltF
deltF=func_deltF(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,busNum,fsY1,Loadi,V1r,V1i,I1r,I1i); deltF=func_deltF(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,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);
Lul=Init_L.*Init_Z-Init_u*ones(RestraintCount,1); Lul=Init_L.*Init_Z-Init_u*ones(RestraintCount,1);

View File

@ -6,9 +6,9 @@
0 0
632 0 0 0 632 0 0 0
0 0
630 80 70 80 60 80 70 630 90 70 80 40 30 10
631 40 10 40 10 42 10 631 40 10 60 30 100 80
632 120 120 120 120 120 120 632 12 12 120 120 11 11
0 0

View File

@ -2,8 +2,8 @@ function deltdeltF=func_deltdeltF(busNum,fsY11,Loadi,wV1r,wV1i,wI1r,wI1i,V1measu
deltdeltF=[ deltdeltF=[
%zeros(busNum*2,busNum*2+length(Loadi)*2); %zeros(busNum*2,busNum*2+length(Loadi)*2);
sparse(Loadi,Loadi,-4*( -2*wV1r.*wV1r+ abs(V1measurement).^2-(V1r(Loadi).^2+ V1i(Loadi).^2) )./[wV1r.*wV1r],busNum,busNum),sparse(Loadi,Loadi+busNum,-4*wV1r.*( -2*wV1i)./[wV1r.*wV1r],busNum,busNum+length(Loadi)*2); sparse(Loadi,Loadi,-4*( -2*V1r(Loadi).*V1r(Loadi)+ abs(V1measurement).^2-(V1r(Loadi).^2+ V1i(Loadi).^2) )./[wV1r.*wV1r],busNum,busNum),sparse(Loadi,Loadi+busNum,-4*V1r(Loadi).*( -2*V1i(Loadi))./[wV1r.*wV1r],busNum,busNum+length(Loadi)*2);
sparse(Loadi,Loadi,-4*wV1i.*( -2*wV1r)./[wV1i.*wV1i],busNum,busNum),sparse(Loadi,Loadi+busNum,-4*( -2*wV1i.*wV1i+ abs(V1measurement).^2-(V1r(Loadi).^2+ V1i(Loadi).^2) )./[wV1r.*wV1r],busNum,busNum+length(Loadi)*2); sparse(Loadi,Loadi,-4*V1i(Loadi).*( -2*V1r(Loadi))./[wV1i.*wV1i],busNum,busNum),sparse(Loadi,Loadi+busNum,-4*( -2*V1i(Loadi).*V1i(Loadi)+ abs(V1measurement).^2-(V1r(Loadi).^2+ V1i(Loadi).^2) )./[wV1r.*wV1r],busNum,busNum+length(Loadi)*2);
zeros(length(Loadi)*2,busNum*2),2*eye(length(Loadi)*2)*diag(1./[wI1r.^2;wI1i.^2]); zeros(length(Loadi)*2,busNum*2),2*eye(length(Loadi)*2)*diag(1./[wI1r.^2;wI1i.^2]);
%sparse(Loadi,busNum*2+Loadi,2,busNum,busNum*2+length(Loadi)*2); %sparse(Loadi,busNum*2+Loadi,2,busNum,busNum*2+length(Loadi)*2);
]; ];

6
run.m
View File

@ -150,9 +150,9 @@ mVoltpA=VoltpA.*(1+normrnd(0,sigma,length(VoltpA),1));
mVoltpB=VoltpB.*(1+normrnd(0,sigma,length(VoltpB),1)); mVoltpB=VoltpB.*(1+normrnd(0,sigma,length(VoltpB),1));
mVoltpC=VoltpC.*(1+normrnd(0,sigma,length(VoltpC),1)); mVoltpC=VoltpC.*(1+normrnd(0,sigma,length(VoltpC),1));
% %
% mVoltpA=abs(VoltpA).*(1+normrnd(0,sigma,length(VoltpA),1)); mVoltpA=abs(VoltpA).*(1+normrnd(0,sigma,length(VoltpA),1));
% mVoltpB=abs(VoltpB).*(1+normrnd(0,sigma,length(VoltpB),1)).*exp(1j*-120/180*pi); mVoltpB=abs(VoltpB).*(1+normrnd(0,sigma,length(VoltpB),1)).*exp(1j*-120/180*pi);
% mVoltpC=abs(VoltpC).*(1+normrnd(0,sigma,length(VoltpC),1)).*exp(1j*+120/180*pi); mVoltpC=abs(VoltpC).*(1+normrnd(0,sigma,length(VoltpC),1)).*exp(1j*+120/180*pi);
% %
% mVoltpA=sparse(ones(busNum,1)); % mVoltpA=sparse(ones(busNum,1));
% mVoltpB=sparse(ones(busNum,1)).*exp(1j*-120/180*pi); % mVoltpB=sparse(ones(busNum,1)).*exp(1j*-120/180*pi);