更改了计算迭代步骤。优化收敛精度。
Signed-off-by: facat <facat@ipso.laptop>
This commit is contained in:
parent
ee14c207aa
commit
a1a812faa5
|
|
@ -15,11 +15,11 @@ pLoadABC=sparse(length(phaseASpotLoadP)*3,1);
|
||||||
pLoadABC(1:3:end)=phaseASpotLoadP+1j*phaseASpotLoadQ;
|
pLoadABC(1:3:end)=phaseASpotLoadP+1j*phaseASpotLoadQ;
|
||||||
pLoadABC(2:3:end)=phaseBSpotLoadP+1j*phaseBSpotLoadQ;
|
pLoadABC(2:3:end)=phaseBSpotLoadP+1j*phaseBSpotLoadQ;
|
||||||
pLoadABC(3:3:end)=phaseCSpotLoadP+1j*phaseCSpotLoadQ;
|
pLoadABC(3:3:end)=phaseCSpotLoadP+1j*phaseCSpotLoadQ;
|
||||||
output_args=Sp3+pLoadABC;
|
ck=Sp3+pLoadABC;
|
||||||
ck=output_args;
|
|
||||||
ck(3*(Balance-1)+1:3*(Balance-1)+3)=0;
|
ck(3*(Balance-1)+1:3*(Balance-1)+3)=0;
|
||||||
if any(abs(ck)>1e-5)
|
if any(abs(ck)>1e-5)
|
||||||
fprintf('反推回的功率不匹配。潮流方程约束不满足。\n');
|
fprintf('反推回的功率不匹配。潮流方程约束不满足。\n');
|
||||||
end
|
end
|
||||||
|
output_args=ck;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
26
run.m
26
run.m
|
|
@ -2,7 +2,7 @@ clc
|
||||||
clear
|
clear
|
||||||
lineZ=readLineZ('.\feeder13\lineParameter.txt');
|
lineZ=readLineZ('.\feeder13\lineParameter.txt');
|
||||||
[ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ...
|
[ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ...
|
||||||
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY]=dataRead(lineZ,'.\feeder13\data1.txt');
|
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY]=dataRead(lineZ,'.\feeder13\data2.txt');
|
||||||
a=exp(1j*2*pi/3);
|
a=exp(1j*2*pi/3);
|
||||||
Tp2f=1/3*[1 1 1;
|
Tp2f=1/3*[1 1 1;
|
||||||
1 a a^2;
|
1 a a^2;
|
||||||
|
|
@ -23,7 +23,7 @@ busNum=length(phaseASpotLoadP);
|
||||||
%给序电压赋初值
|
%给序电压赋初值
|
||||||
Vmf1=sparse(ones(busNum,1));
|
Vmf1=sparse(ones(busNum,1));
|
||||||
Vaf1=sparse(zeros(busNum,1));
|
Vaf1=sparse(zeros(busNum,1));
|
||||||
Vf1=Vmf1.*exp(1j*Vaf1);
|
% Vf1=Vmf1.*exp(1j*Vaf1);
|
||||||
%Vaf1=sparse(zeros(busNum,1));
|
%Vaf1=sparse(zeros(busNum,1));
|
||||||
%先求解正序的
|
%先求解正序的
|
||||||
PQi=nodeNum;
|
PQi=nodeNum;
|
||||||
|
|
@ -53,6 +53,13 @@ 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);
|
||||||
while(k<=kmax && maxD> EPS)
|
while(k<=kmax && maxD> EPS)
|
||||||
k=k+1;
|
k=k+1;
|
||||||
|
[dP, dQ, YdotSinVolt, YdotCosVolt, diag_Volt_YdotSin, diag_Volt_YdotCos]=Unbalance(Balance,busNum, ...
|
||||||
|
PQi,PG,QG,QGi,PD,QD,Vmf1,Vaf1,fsY1amp,fsY1ang,r,c,Vf2,If2,Vf0,If0);%不平衡量
|
||||||
|
maxD=max(abs([dP;dQ;]));
|
||||||
|
jaco=Jacobi(Balance,busNum,QGi,Vmf1,YdotSinVolt,YdotCosVolt,diag_Volt_YdotSin,diag_Volt_YdotCos);%雅克比矩阵
|
||||||
|
[dV, dVangle]=Solv(busNum,jaco,dP,dQ);%解出修正量
|
||||||
|
[Vmf1, Vaf1]=Modify(Vmf1,Vaf1,dV,dVangle,1);
|
||||||
|
fprintf('第 %d 次迭代, 最大不平衡量为 %f\n\n',k,full(maxD));
|
||||||
%转换为三相电压
|
%转换为三相电压
|
||||||
VoltpABC=Tf2p*conj([ Vf0'; (Vmf1.*exp(1j*Vaf1))'; Vf2']);
|
VoltpABC=Tf2p*conj([ Vf0'; (Vmf1.*exp(1j*Vaf1))'; Vf2']);
|
||||||
VoltpA=conj(VoltpABC(1,:)');
|
VoltpA=conj(VoltpABC(1,:)');
|
||||||
|
|
@ -69,15 +76,6 @@ while(k<=kmax && maxD> EPS)
|
||||||
If2(Balance)=0;
|
If2(Balance)=0;
|
||||||
Vf0=fsY0\If0;
|
Vf0=fsY0\If0;
|
||||||
Vf2=fsY2\If2;
|
Vf2=fsY2\If2;
|
||||||
% Vf2=Vf2+refV2;
|
|
||||||
% Vf0=Vf0+refV0;
|
|
||||||
[dP, dQ, YdotSinVolt, YdotCosVolt, diag_Volt_YdotSin, diag_Volt_YdotCos]=Unbalance(Balance,busNum, ...
|
|
||||||
PQi,PG,QG,QGi,PD,QD,Vmf1,Vaf1,fsY1amp,fsY1ang,r,c,Vf2,If2,Vf0,If0);%不平衡量
|
|
||||||
maxD=max(abs([dP;dQ;]));
|
|
||||||
jaco=Jacobi(Balance,busNum,QGi,Vmf1,YdotSinVolt,YdotCosVolt,diag_Volt_YdotSin,diag_Volt_YdotCos);%雅克比矩阵
|
|
||||||
[dV, dVangle]=Solv(busNum,jaco,dP,dQ);%解出修正量
|
|
||||||
[Vmf1, Vaf1]=Modify(Vmf1,Vaf1,dV,dVangle,1);
|
|
||||||
fprintf('第 %d 次迭代, 最大不平衡量为 %f\n\n',k,full(maxD));
|
|
||||||
end
|
end
|
||||||
Vf1=Vmf1.*exp(1j*Vaf1);
|
Vf1=Vmf1.*exp(1j*Vaf1);
|
||||||
%%
|
%%
|
||||||
|
|
@ -90,8 +88,10 @@ disp([' A B C']
|
||||||
full(abs(VoltpABC'))
|
full(abs(VoltpABC'))
|
||||||
fprintf('节点号对应\n');
|
fprintf('节点号对应\n');
|
||||||
disp([setIJ,nodeNum ])
|
disp([setIJ,nodeNum ])
|
||||||
checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
|
%%检查反推回去的功率是否满足
|
||||||
|
ub=checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
|
||||||
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
|
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
|
||||||
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
|
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
|
||||||
%%检查反推回去的功率是否满足
|
fprintf('最大不平衡量为%f\n',full(max(abs(ub))))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue