threephasese-huber/CalPGQG.m

26 lines
793 B
Matlab

function [ output_args ] = CalPGQG(Balance,phaseABCY,VoltpABC,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP,phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ )
%计算PG和QG
busNum=size(phaseABCY,1)/3;
VoltpA=VoltpABC(1,:);
VoltpB=VoltpABC(2,:);
VoltpC=VoltpABC(3,:);
Vp3=sparse(busNum*3,1);
Vp3(1:3:end)=VoltpA;
Vp3(2:3:end)=VoltpB;
Vp3(3:3:end)=VoltpC;
Ip3=phaseABCY*Vp3;
Sp3=Vp3.*conj(Ip3);
%VoltpABC.*conj(IpABC);
pLoadABC=sparse(length(phaseASpotLoadP)*3,1);
pLoadABC(1:3:end)=phaseASpotLoadP+1j*phaseASpotLoadQ;
pLoadABC(2:3:end)=phaseBSpotLoadP+1j*phaseBSpotLoadQ;
pLoadABC(3:3:end)=phaseCSpotLoadP+1j*phaseCSpotLoadQ;
ck=Sp3+pLoadABC;
% ck(3*(Balance-1)+1:3*(Balance-1)+3)=0;
% if any(abs(ck)>1e-5)
% fprintf('反推回的功率不匹配。潮流方程约束不满足。\n');
% end
output_args=ck;
end