From a1a812faa59307c650ff45ecb55d2ec1df3253ac Mon Sep 17 00:00:00 2001 From: facat Date: Mon, 21 Apr 2014 22:29:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=BA=86=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E8=BF=AD=E4=BB=A3=E6=AD=A5=E9=AA=A4=E3=80=82=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=94=B6=E6=95=9B=E7=B2=BE=E5=BA=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: facat --- checkSSatisfied.m | 4 ++-- run.m | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/checkSSatisfied.m b/checkSSatisfied.m index 7769ef9..d92f537 100644 --- a/checkSSatisfied.m +++ b/checkSSatisfied.m @@ -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 diff --git a/run.m b/run.m index c6a0464..c510371 100644 --- a/run.m +++ b/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)))) +