检查完了一遍代码,做了循环,但是还没收敛。

Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
dugg@lab-desk 2014-05-22 16:25:21 +08:00
parent 99aab5404c
commit 6c6b8f19fb
5 changed files with 38 additions and 37 deletions

View File

@ -1,10 +1,4 @@
function [deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX1(XX,ContrlCount,RestraintCount,Busnum)
% deltX=XX(1:14);
% deltY=XX(15:24);
% deltZ=XX(25:38);
% deltW=XX(39:52);
% deltL=XX(53:66);
% deltU=XX(67:80);
deltX=XX(1:ContrlCount);
k1=ContrlCount+2*Busnum;
deltY=XX(ContrlCount+1:k1);

View File

@ -3,7 +3,7 @@ tdeltZinx=find(deltZ<0);
tdeltWinx=find(deltW>0);
t1=-Init_Z(tdeltZinx)./deltZ(tdeltZinx);
t2=-Init_W(tdeltWinx)./deltW(tdeltWinx);
t3=[t1,t2];
t3=[t1;t2];
t4=min(t3);
AlphaD=0.9995*min([t4 1]);
end

View File

@ -12,14 +12,12 @@ yy=[LxComa;-Ly];
t=size(Loadi,1)*2;
aa(t+Balance,:)=0;
aa(:,t+Balance)=0;
%aa(t+Balance,t+Balance)=1;
aa=aa+sparse(t+Balance,t+Balance,ones(length(Balance),1),ContrlCount+2*Busnum,ContrlCount+2*Busnum);
deltG(t+Balance,:)=0;
%%
t=size(Loadi,1)*2+Busnum*1;
aa(t+Balance,:)=0;
aa(:,t+Balance)=0;
%aa(t+Balance,t+Balance)=1;
aa=aa+sparse(t+Balance,t+Balance,ones(length(Balance),1),ContrlCount+2*Busnum,ContrlCount+2*Busnum);
deltG(t+Balance,:)=0;
%%

View File

@ -1,8 +1,8 @@
function ddh=func_ddh(Volt,Init_Y,Busnum,Y,UAngel,r,c,Angle,Loadi,ContrlCount)
mat_AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle,Busnum,Busnum);
mat_INV_AngleIJ=mat_AngleIJ';
yP=Init_Y(1:length(Init_Y)/2);% 20111227
yQ=Init_Y(length(Init_Y)/2+1:length(Init_Y));% 20111227
yP=Init_Y(1:length(Init_Y)/2);
yQ=Init_Y(length(Init_Y)/2+1:end);
t1=-sparse(1:Busnum,1:Busnum,Y.*cos(mat_INV_AngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)*yP,Busnum,Busnum);
t2=sparse(1:Busnum,1:Busnum,sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)*yP,Busnum,Busnum)*Y.*cos(mat_AngleIJ);
t3=(t1+t2)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum);
@ -15,7 +15,7 @@ t1=diag( Y.*sin(mat_INV_AngleIJ)*diag(Volt)*yP);
t2=diag(yP)*Y.*sin(mat_AngleIJ)*diag(Volt);
t3=-diag(yP)*diag(Y.*sin(mat_AngleIJ)*Volt);
t4=-Y.*sin(mat_INV_AngleIJ)*diag( diag(Volt)*yP );
ddPdTdV=t1+t2+t3+t4;%
ddPdTdV=t1+t2+t3+t4;
t1=Y.*cos(mat_INV_AngleIJ)*diag(yP);
t2=diag(yP)*Y.*cos(mat_AngleIJ);
ddPdVdV=t1+t2;

59
run.m
View File

@ -181,6 +181,7 @@ SEphaseCSpotLoadP=zeros(length(phaseCSpotLoadP),1);
SEphaseASpotLoadQ=zeros(length(phaseASpotLoadQ),1);
SEphaseBSpotLoadQ=zeros(length(phaseBSpotLoadQ),1);
SEphaseCSpotLoadQ=zeros(length(phaseCSpotLoadQ),1);
%
SEVmf1=sparse(ones(busNum,1));
SEVaf1=sparse(zeros(busNum,1));
SEPD=sparse(length(Loadi),1);
@ -188,7 +189,7 @@ SEQD=sparse(length(Loadi),1);
KK=0;
plotGap=zeros(1,60);
%³õʼ»¯
% SEPD SEQD SEVmf1 SEVaf1
% SEPD SEQD SEVmf1 SEVaf1
RestraintCount=length(SEVmf1)+length(Loadi)*2;
ContrlCount=length(SEVmf1)*2+length(Loadi)*2;
CenterA=0.1;
@ -198,27 +199,35 @@ Init_L=1*sparse(ones(RestraintCount,1));
Init_U=1*sparse(ones(RestraintCount,1));
Init_Y=sparse(2*busNum,1);%µÈÊ½Ô¼Êø³Ë×Ó
Gap=(Init_L'*Init_Z-Init_U'*Init_W);
Init_u=Gap/2/RestraintCount*CenterA;
deltH=func_deltH(busNum,SEVmf1,fsY1amp,SEVaf1,r,c,fsY1ang,Loadi);
deltG=func_deltG(busNum,Loadi);
L_1Z=diag(Init_Z./Init_L);
U_1W=diag(Init_W./Init_U);
deltdeltF=func_deltdeltF(SEPD,ContrlCount);
ddh=func_ddh(SEVmf1,Init_Y,busNum,fsY1amp,SEVaf1,r,c,fsY1ang,Loadi,ContrlCount);
ddg=func_ddg();
deltF=func_deltF(SEPD,ContrlCount);
Luu=Init_U.*Init_W+Init_u*ones(RestraintCount,1);
Lul=Init_L.*Init_Z-Init_u*ones(RestraintCount,1);
Mat_G=FormG(SEVaf1,SEPD,SEQD);
Mat_H=FormH(busNum,SEVmf1,PG,SEPD,QG,SEQD,fsY1amp,SEVaf1,r,c,fsY1ang);
Ly=Mat_H;
Lz=FormLz(Mat_G,Init_L,busNum,Loadi);
Lw=FormLw(Mat_G,Init_U,busNum,Loadi);
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
YY=FormYY(Lul,Lz,Ly,Luu,Lw,Lx);
%%
fprintf(' %d Gap %f\n',KK+1,plotGap(KK+1));
XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddg,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,Lx,Balance,busNum,Loadi);
[deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,busNum);
[Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,PG,QG,SEVmf1,SEVaf1,ContrlCount,Balance,busNum,PD,QD,Loadi);
Gap=(Init_L'*Init_Z-Init_U'*Init_W);
PG=sparse(busNum,1);
PG(Balance)=0.1105;
QD=sparse(busNum,1);
QG(Balance)=0.0984;
while Gap>1e-5 && KK<60
KK=KK+1;
Init_u=Gap/2/RestraintCount*CenterA;
deltH=func_deltH(busNum,SEVmf1,fsY1amp,SEVaf1,r,c,fsY1ang,Loadi);
deltG=func_deltG(busNum,Loadi);
L_1Z=diag(Init_Z./Init_L);
U_1W=diag(Init_W./Init_U);
deltdeltF=func_deltdeltF(SEPD,ContrlCount);
ddh=func_ddh(SEVmf1,Init_Y,busNum,fsY1amp,SEVaf1,r,c,fsY1ang,Loadi,ContrlCount);
ddg=func_ddg();
deltF=func_deltF(SEPD,ContrlCount);
Luu=Init_U.*Init_W+Init_u*ones(RestraintCount,1);
Lul=Init_L.*Init_Z-Init_u*ones(RestraintCount,1);
Mat_G=FormG(SEVaf1,SEPD,SEQD);
Mat_H=FormH(busNum,SEVmf1,PG,SEPD,QG,SEQD,fsY1amp,SEVaf1,r,c,fsY1ang);
Ly=Mat_H;
Lz=FormLz(Mat_G,Init_L,busNum,Loadi);
Lw=FormLw(Mat_G,Init_U,busNum,Loadi);
Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W);
YY=FormYY(Lul,Lz,Ly,Luu,Lw,Lx);
%%
plotGap(KK)=Gap;
fprintf(' %d Gap %f\n',KK,plotGap(KK));
XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddg,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,Lx,Balance,busNum,Loadi);
[deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,busNum);
[Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,PG,QG,SEVmf1,SEVaf1,ContrlCount,Balance,busNum,PD,QD,Loadi);
Gap=(Init_L'*Init_Z-Init_U'*Init_W);
end