function [dP, dQ, YdotSinVmf1, YdotCosVmf1, diag_Vmf1_YdotSin, diag_Vmf1_YdotCos]=Unbalance(Balance,busNum, ... PQi,PG,QG,QGi,PD,QD,Vmf1,Vaf1,Y,Yangle,r,c,Vf2,If2,Vf0,If0,fsY1,Vf1) %real(diag(Vmf1.*exp(1j*Vaf1))*(fsY1*(Vmf1.*exp(1j*Vaf1)))); % Y=abs(fsY1); % [r,c,Yangle]=find(fsY1); % Yangle=angle(Yangle); % Vmf1=abs(Vf1); % Vaf1=angle(Vf1); t1=sparse(r,c,Vaf1(r)-Vaf1(c) -Yangle,busNum,busNum) ; YdotSin=Y.* ( spfun(@sin,t1) ); YdotCos=Y.* ( spfun (@cos, t1 ) ); orderedPDPG=sparse(PQi,1,PD-PG,busNum,1); %节点功率按顺序排列 orderedQDQG=sparse(PQi,1,QD-QG,busNum,1); %节点功率按顺序排列 diag_Vmf1_YdotCos=diag(Vmf1)*YdotCos; diag_Vmf1_YdotSin=diag(Vmf1)*YdotSin; YdotCosVmf1=YdotCos*Vmf1; YdotSinVmf1=YdotSin*Vmf1; diag_Vmf1_YdotCosVmf1=diag_Vmf1_YdotCos*Vmf1; diag_Vmf1_YdotSinVmf1=diag_Vmf1_YdotSin*Vmf1; dP=diag_Vmf1_YdotCosVmf1+orderedPDPG+real(Vf2.*conj(If2)+Vf0.*conj(If0)); dQ=diag_Vmf1_YdotSinVmf1+orderedQDQG+imag(Vf2.*conj(If2)+Vf0.*conj(If0)); %orderedPDPG+real(Vf2.*conj(If2)+Vf0.*conj(If0))+real(diag(Vf1)*conj(fsY1*Vf1)); %dP=diag_Vmf1_YdotCosVmf1+orderedPDPG; %dQ=diag_Vmf1_YdotSinVmf1+orderedQDQG; dP(Balance)=0; dQ(QGi)=0; end