62 lines
1.9 KiB
Matlab
62 lines
1.9 KiB
Matlab
function XX=SolveIt(deltH,ContrlCount,Balance,Busnum,Loadi,deltF,PD0,PD,QD0,QD,mVolt,Volt,Mat_H,wVolt,wPD,wQD)
|
|
% LxComa=FormLxComa(Lx);%Lx=deltF-deltH*Init_Y';
|
|
% Lx=LxComa;
|
|
% H=-deltdeltF+ddh;
|
|
% aa=[
|
|
% H,deltH;
|
|
% deltH',zeros(size(Init_Y,2));
|
|
% ];
|
|
aa=[
|
|
deltF'*diag([wPD ;wQD ;wVolt])*deltF deltH'
|
|
deltH ones(size(deltH,1),size(deltH',2))
|
|
|
|
];
|
|
% yy=[Lx;-Ly];
|
|
% t3=2*wPD.*(PD-PD0);
|
|
% t4=2*wQD.*(QD-QD0);
|
|
% t5=2*wVolt.*(Volt-mVolt);
|
|
deltZ=[(PD0-PD);
|
|
(QD0-QD);
|
|
(mVolt-Volt);
|
|
];
|
|
yy=[
|
|
deltF'*diag([wPD; wQD; wVolt])*deltZ;
|
|
-Mat_H ;
|
|
];
|
|
%% ƽºâ½Úµãµçѹ²»±ä
|
|
t=size(Loadi,1)*2;
|
|
aa(t+(Balance-1)*3+1,:)=0;
|
|
aa(t+(Balance-1)*3+2,:)=0;
|
|
aa(t+(Balance-1)*3+3,:)=0;
|
|
aa(:,t+(Balance-1)*3+1)=0;
|
|
aa(:,t+(Balance-1)*3+2)=0;
|
|
aa(:,t+(Balance-1)*3+3)=0;
|
|
%aa(t+Balance,t+Balance)=1;
|
|
aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
|
aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
|
aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
|
%%
|
|
t=size(Loadi,1)*2+Busnum*3;
|
|
aa(t+(Balance-1)*3+1,:)=0;
|
|
aa(t+(Balance-1)*3+2,:)=0;
|
|
aa(t+(Balance-1)*3+3,:)=0;
|
|
aa(:,t+(Balance-1)*3+1)=0;
|
|
aa(:,t+(Balance-1)*3+2)=0;
|
|
aa(:,t+(Balance-1)*3+3)=0;
|
|
%aa(t+Balance,t+Balance)=1;
|
|
aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
|
aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
|
aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
|
%%
|
|
dxdy=aa\yy;
|
|
%% KLU
|
|
%spy(aa)
|
|
%dxdy = klu(aa,'\',full(yy));
|
|
%%
|
|
dX=dxdy(1:ContrlCount);
|
|
dY=dxdy(ContrlCount+1:end);
|
|
XX=[
|
|
dX;
|
|
dY;
|
|
];
|
|
end |