threephasese-huber/Jacobi.m

25 lines
876 B
Mathematica
Raw Normal View History

function [jaco]=Jacobi(Balance,busNum,QGi,Volt,YdotSinVolt,YdotCosVolt,diag_Volt_YdotSin,diag_Volt_YdotCos)
diag_YdotSinVolt_=diag(YdotSinVolt);
diag_YdotCosVolt_=diag(YdotCosVolt);
dPdTyta=diag_Volt_YdotSin*diag(Volt)-diag_YdotSinVolt_*diag(Volt); % <EFBFBD>򻯵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dQdTyta=-diag_Volt_YdotCos*diag(Volt)+diag_YdotCosVolt_*diag(Volt);%dQ/dThyta
dPdV=diag_YdotCosVolt_+diag_Volt_YdotCos;%dP/dV
dQdV=diag_YdotSinVolt_+diag_Volt_YdotSin;%dQ/dV
%% ƽ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><EFBFBD><EFBFBD>
dPdTyta(Balance,:)=0;
dPdTyta(:,Balance)=0;
dPdTyta=dPdTyta+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
dQdTyta(:,Balance)=0;
dPdV(Balance,:)=0;
%% PV<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dQdV(QGi,:)=0;
dQdV(:,QGi)=0;
dQdV=dQdV+sparse(QGi,QGi,ones(length(QGi),1),busNum,busNum);
dQdTyta(QGi,:)=0;
dPdV(:,QGi)=0;
% jaco=[
% dPdV,dPdTyta;
% dQdV,dQdTyta;
% ];
jaco=cat(1,cat(2,dPdV,dPdTyta),cat(2,dQdV,dQdTyta));
end