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