2012-05-27 19:54:38 +08:00
function XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddg,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,RestraintCount,Lx,Balance,PVi,PGi,Busnum,Loadi)
2012-05-22 11:33:21 +08:00
LxComa=FormLxComa(deltF,deltG,deltH,Init_L,Luu,Lul,Init_Z,Init_Y,Lz,Init_U,Init_W,Lw,Lx);
H=-deltdeltF+ddh;%+ddg*(Init_Z'+Init_W');
t1=diag(Init_L.\Init_Z-Init_U.\Init_W);
t2=-deltG*( t1 )*deltG';
aa=[
(H+t2),deltH;
2012-05-27 19:54:38 +08:00
deltH',zeros(size(Init_Y,2));
2012-05-22 11:33:21 +08:00
];
yy=[LxComa;-Ly];
2012-05-27 19:54:38 +08:00
%% ƽ <> <C6BD> <EFBFBD> ڵ<EFBFBD> <DAB5> <EFBFBD> ѹ<EFBFBD> <D1B9> <EFBFBD> <EFBFBD>
t=size(PVi,1)+size(PGi,1)+size(Loadi,1);
2012-05-22 11:33:21 +08:00
aa(t+Balance,:)=0;
aa(:,t+Balance)=0;
2012-05-27 19:54:38 +08:00
%aa(t+Balance,t+Balance)=1;
aa=aa+sparse(t+Balance,t+Balance,ones(length(Balance)),ContrlCount+2*Busnum,ContrlCount+2*Busnum);
deltG(t+Balance,:)=0;
%%
t=size(PVi,1)+size(PGi,1)+size(Loadi,1)+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)),ContrlCount,ContrlCount);
deltG(t+Balance,:)=0;
%%
2012-05-22 11:33:21 +08:00
dxdy=aa\yy;
dX=dxdy(1:ContrlCount);
2012-05-27 19:54:38 +08:00
dY=dxdy(ContrlCount+1:ContrlCount+2*Busnum);
2012-05-22 11:33:21 +08:00
dL=Lz+deltG'*dX;
dU=-Lw-deltG'*dX;
dZ=-diag(Init_L)\Lul-diag(Init_L)\diag(Init_Z)*dL;
dW=-diag(Init_U)\Luu-diag(Init_U)\diag(Init_W)*dU;
XX=[
dX;
dY;
dZ;
dW;
dL;
dU;
];
end