25 lines
876 B
Matlab
25 lines
876 B
Matlab
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); % 简化第三次
|
|
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
|
|
%% 平衡节点相角不变
|
|
dPdTyta(Balance,:)=0;
|
|
dPdTyta(:,Balance)=0;
|
|
dPdTyta=dPdTyta+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
|
|
dQdTyta(:,Balance)=0;
|
|
dPdV(Balance,:)=0;
|
|
%% PV节点电压不变
|
|
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 |