parent
af9b973115
commit
1ffa3c0bf3
67
run.m
67
run.m
|
|
@ -41,9 +41,11 @@ If2=sparse(busNum,1);
|
||||||
Vf0=sparse(busNum,1);
|
Vf0=sparse(busNum,1);
|
||||||
If0=sparse(busNum,1);
|
If0=sparse(busNum,1);
|
||||||
%准备序矩阵
|
%准备序矩阵
|
||||||
|
%平衡节点置0置1
|
||||||
fsY2(Balance,:)=0;
|
fsY2(Balance,:)=0;
|
||||||
fsY2(:,Balance)=0;
|
fsY2(:,Balance)=0;
|
||||||
fsY2=fsY2+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
|
fsY2=fsY2+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
|
||||||
|
%平衡节点置0置1
|
||||||
fsY0(Balance,:)=0;
|
fsY0(Balance,:)=0;
|
||||||
fsY0(:,Balance)=0;
|
fsY0(:,Balance)=0;
|
||||||
fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
|
fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
|
||||||
|
|
@ -69,6 +71,57 @@ while(k<=kmax && maxD> EPS)
|
||||||
iterPhaseASpotLoadQ=phaseASpotLoadQ+imag(SA);
|
iterPhaseASpotLoadQ=phaseASpotLoadQ+imag(SA);
|
||||||
iterPhaseBSpotLoadQ=phaseBSpotLoadQ+imag(SB);
|
iterPhaseBSpotLoadQ=phaseBSpotLoadQ+imag(SB);
|
||||||
iterPhaseCSpotLoadQ=phaseCSpotLoadQ+imag(SC);
|
iterPhaseCSpotLoadQ=phaseCSpotLoadQ+imag(SC);
|
||||||
|
%全部转换为负荷电流
|
||||||
|
CurpA=conj((iterPhaseASpotLoadP+1j*iterPhaseASpotLoadQ)./VoltpA);
|
||||||
|
CurpB=conj((iterPhaseBSpotLoadP+1j*iterPhaseBSpotLoadQ)./VoltpB);
|
||||||
|
CurpC=conj((iterPhaseCSpotLoadP+1j*iterPhaseCSpotLoadQ)./VoltpC);
|
||||||
|
%转换为序电流
|
||||||
|
f012=Tp2f*conj([CurpA';CurpB';CurpC']);
|
||||||
|
%把三序电流分离出来
|
||||||
|
If0=conj(f012(1,:)');
|
||||||
|
If1=conj(f012(2,:)');
|
||||||
|
If2=conj(f012(3,:)');
|
||||||
|
%得到三序电压
|
||||||
|
V012=Tp2f*conj([VoltpA';VoltpB';VoltpC']);
|
||||||
|
%分离出三序电压
|
||||||
|
V0=conj(V012(1,:)');
|
||||||
|
V1=conj(V012(2,:)');
|
||||||
|
V2=conj(V012(3,:)');
|
||||||
|
%试着算一下正序电流
|
||||||
|
fsY11*V1;
|
||||||
|
%形成负荷序电流的测量值
|
||||||
|
mIf0=If0;
|
||||||
|
mIf1=If1;
|
||||||
|
mIf1(1)=0.02;
|
||||||
|
mIf1(3)=0.03;
|
||||||
|
Loadi=[ 1 2 3];
|
||||||
|
mIf2=If2;
|
||||||
|
%计算
|
||||||
|
fsY11=fsY11+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);%这里要置0,置1,否则是奇异的
|
||||||
|
%%做最小二乘法
|
||||||
|
%先做正序的
|
||||||
|
Z=[%这里要加-号,因为用的Z是注入电流
|
||||||
|
-real(mIf1(Loadi));
|
||||||
|
-imag(mIf1(Loadi));
|
||||||
|
];
|
||||||
|
H=fsY11(Loadi,:);
|
||||||
|
H=[
|
||||||
|
-real(H),imag(H);
|
||||||
|
-imag(H),-real(H);
|
||||||
|
];
|
||||||
|
% J=fsY11(Loadi,:);
|
||||||
|
% J=[
|
||||||
|
% conj(-real(J))',-conj(imag(J))';
|
||||||
|
% conj(imag(J))',-conj(real(J))';
|
||||||
|
% ];
|
||||||
|
J=conj(H');
|
||||||
|
%J*Z+J*H*X=0 ->J*H*X=-J*Z
|
||||||
|
X=-inv(J*H)*J*Z;
|
||||||
|
% X=inv(conj(H)'*H)*conj(H)'*Z;
|
||||||
|
Xr=X(1:length(X)/2);
|
||||||
|
Xi=X(length(X)/2+1:end);
|
||||||
|
Xri=Xr+1j*Xi;
|
||||||
|
fsY11*Xri;
|
||||||
[dP, dQ, YdotSinVolt, YdotCosVolt, diag_Volt_YdotSin, diag_Volt_YdotCos]=Unbalance(Balance,busNum, ...
|
[dP, dQ, YdotSinVolt, YdotCosVolt, diag_Volt_YdotSin, diag_Volt_YdotCos]=Unbalance(Balance,busNum, ...
|
||||||
PQi,PG,QG,QGi,iterPD,iterQD,Vmf1,Vaf1,fsY1amp,fsY1ang,r,c,Vf2,If2,Vf0,If0);%不平衡量
|
PQi,PG,QG,QGi,iterPD,iterQD,Vmf1,Vaf1,fsY1amp,fsY1ang,r,c,Vf2,If2,Vf0,If0);%不平衡量
|
||||||
maxD=max(abs([dP;dQ;]));
|
maxD=max(abs([dP;dQ;]));
|
||||||
|
|
@ -79,15 +132,9 @@ while(k<=kmax && maxD> EPS)
|
||||||
%转换为三相电压
|
%转换为三相电压
|
||||||
VoltpABC=Tp2f\conj([ Vf0'; (Vmf1.*exp(1j*Vaf1))'; Vf2']);%用Tp2f\ 代替Tf2p*
|
VoltpABC=Tp2f\conj([ Vf0'; (Vmf1.*exp(1j*Vaf1))'; Vf2']);%用Tp2f\ 代替Tf2p*
|
||||||
VoltpA=conj(VoltpABC(1,:)');
|
VoltpA=conj(VoltpABC(1,:)');
|
||||||
CurpA=-conj((iterPhaseASpotLoadP+1j*iterPhaseASpotLoadQ)./VoltpA);
|
|
||||||
VoltpB=conj(VoltpABC(2,:)');
|
|
||||||
CurpB=-conj((iterPhaseBSpotLoadP+1j*iterPhaseBSpotLoadQ)./VoltpB);
|
|
||||||
VoltpC=conj(VoltpABC(3,:)');
|
|
||||||
CurpC=-conj((iterPhaseCSpotLoadP+1j*iterPhaseCSpotLoadQ)./VoltpC);
|
|
||||||
f012=Tp2f*conj([CurpA';CurpB';CurpC']);
|
|
||||||
If0=conj(f012(1,:)');
|
|
||||||
If1=conj(f012(2,:)');
|
|
||||||
If2=conj(f012(3,:)');
|
|
||||||
If0(Balance)=0;
|
If0(Balance)=0;
|
||||||
If2(Balance)=0;
|
If2(Balance)=0;
|
||||||
%Vf0=fsY0\If0;
|
%Vf0=fsY0\If0;
|
||||||
|
|
@ -116,8 +163,8 @@ ub=checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
|
||||||
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
|
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
|
||||||
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
|
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
|
||||||
fprintf('最大不平衡量为%f\n\n',full(max(abs(ub))))
|
fprintf('最大不平衡量为%f\n\n',full(max(abs(ub))))
|
||||||
fprintf('开始牛顿法迭代\n');
|
|
||||||
%% 用牛顿法求解begin
|
%% 用牛顿法求解begin
|
||||||
|
% fprintf('开始牛顿法迭代\n');
|
||||||
% [r,c,GB]=find(phaseABCY);
|
% [r,c,GB]=find(phaseABCY);
|
||||||
% Y=abs(phaseABCY);
|
% Y=abs(phaseABCY);
|
||||||
% Yangle=angle(GB);
|
% Yangle=angle(GB);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue