stateestimateionyalmip-lu9-.../FormH.m

40 lines
1.4 KiB
Matlab

function Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi,notLoadi,PGi,PVi,PD0,QD0,dP,dQ)
%%
%QDcos=textread('D:\Project\×îС»¯³±Á÷\×îС³±Á÷ËãÀý\Ïɺ£919PDQDglys.txt');
%QD(QD~=0)=PD(QD~=0)./tan(QDcos);
%QD(QD_NON_ZERO_IND)=QD_NON_ZERO;
%%
%PD(Loadi)=QD(Loadi)./tan(acos(0.98));
AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle,Busnum,Busnum);
Loadi=find(QD0~=0 | PD0~=0);
PDi=find(PD0~=0);
QDi=find(QD0~=0);
notLoadi=setdiff(1:Busnum,Loadi);
PGOnly=setdiff(PGi,PDi);
QGOnly=setdiff(PVi,QDi);
PDOnly=setdiff(PDi,PGi);
QDOnly=setdiff(QDi,PVi);
PGPD=intersect(PDi,PGi);
QGQD=intersect(QDi,PVi);
noPGPDQGQD=setdiff(1:Busnum,union(union(PDi,PGi),union(QDi,PVi)));
%%
YCos=Y.*cos(AngleIJ);
YSin=Y.*sin(AngleIJ);
% dP1=PG(ismember(PGi,PGOnly))-diag(Volt(PGOnly))*YCos(PGOnly,:)*Volt(PGOnly);
% dQ1=QG(ismember(PVi,QGOnly))-diag(Volt(QGOnly))*YSin(QGOnly,:)*Volt(QGOnly);
% dP2=PD(ismember(PDi,PDOnly))-diag(Volt(PDOnly))*YCos(PDOnly,:)*Volt(PDOnly);
% dQ2=QD(ismember(QDi,QDOnly))-diag(Volt(QOnly))*YSin(QDOnly,:)*Volt(QDOnly);
% dP3=PG(ismember(PGi,PGOnly))-diag(Volt(PGOnly))*YCos(PGOnly,:)*Volt(PGOnly);
% dQ=QG-QD-diag(Volt)*Y.*sin(AngleIJ)*Volt;
%%
for I=1:Busnum
dP(I)=PG(I).value-PD(I).value-Volt(I)*YCos(I,:)*Volt;
dQ(I)=QG(I).value-QD(I).value-Volt(I)*YSin(I,:)*Volt;
end
%%
% dP=[PG(:).value]'-[PD(:).value]'-diag(Volt)*YCos*Volt;
% dQ=[QG(:).value]'-[QD(:).value]'-diag(Volt)*YSin*Volt;
Mat_H=[dP;dQ;];
end