更改了计算迭代步骤。优化收敛精度。
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(2:3:end)=phaseBSpotLoadP+1j*phaseBSpotLoadQ;
|
||||
pLoadABC(3:3:end)=phaseCSpotLoadP+1j*phaseCSpotLoadQ;
|
||||
output_args=Sp3+pLoadABC;
|
||||
ck=output_args;
|
||||
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
|
||||
|
||||
|
|
|
|||
26
run.m
26
run.m
|
|
@ -2,7 +2,7 @@ clc
|
|||
clear
|
||||
lineZ=readLineZ('.\feeder13\lineParameter.txt');
|
||||
[ 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);
|
||||
Tp2f=1/3*[1 1 1;
|
||||
1 a a^2;
|
||||
|
|
@ -23,7 +23,7 @@ busNum=length(phaseASpotLoadP);
|
|||
%给序电压赋初值
|
||||
Vmf1=sparse(ones(busNum,1));
|
||||
Vaf1=sparse(zeros(busNum,1));
|
||||
Vf1=Vmf1.*exp(1j*Vaf1);
|
||||
% Vf1=Vmf1.*exp(1j*Vaf1);
|
||||
%Vaf1=sparse(zeros(busNum,1));
|
||||
%先求解正序的
|
||||
PQi=nodeNum;
|
||||
|
|
@ -53,6 +53,13 @@ fsY0(:,Balance)=0;
|
|||
fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum);
|
||||
while(k<=kmax && maxD> EPS)
|
||||
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']);
|
||||
VoltpA=conj(VoltpABC(1,:)');
|
||||
|
|
@ -69,15 +76,6 @@ while(k<=kmax && maxD> EPS)
|
|||
If2(Balance)=0;
|
||||
Vf0=fsY0\If0;
|
||||
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
|
||||
Vf1=Vmf1.*exp(1j*Vaf1);
|
||||
%%
|
||||
|
|
@ -90,8 +88,10 @@ disp([' A B C']
|
|||
full(abs(VoltpABC'))
|
||||
fprintf('节点号对应\n');
|
||||
disp([setIJ,nodeNum ])
|
||||
checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
|
||||
%%检查反推回去的功率是否满足
|
||||
ub=checkSSatisfied(Balance,phaseABCY,VoltpABC, ...
|
||||
phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP, ...
|
||||
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ );
|
||||
%%检查反推回去的功率是否满足
|
||||
fprintf('最大不平衡量为%f\n',full(max(abs(ub))))
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue