From 8163082770305a600326d4e2017bb20e340621de Mon Sep 17 00:00:00 2001 From: facat Date: Wed, 23 Apr 2014 00:39:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=95=E5=85=A5=E7=AC=A6=E5=8F=B7=E5=88=86?= =?UTF-8?q?=E8=A7=A3=EF=BC=8C=E5=8A=A0=E5=BF=AB=E8=AE=A1=E7=AE=97=E9=80=9F?= =?UTF-8?q?=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 --- dataRead.m | 7 ++++--- run.m | 15 ++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/dataRead.m b/dataRead.m index 2a4809e..2d3ac79 100644 --- a/dataRead.m +++ b/dataRead.m @@ -2,9 +2,10 @@ function [ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ... phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY] = dataRead(lineZ,dataFile ) data=dlmread(dataFile); baseHighU=data(1,2); -fsY0=0; -fsY1=0; -fsY2=0; +fsY0=sparse(0); +fsY1=sparse(0); +fsY2=sparse(0); + zeroEntries=find(data(:,1)==0); lines=data(zeroEntries(1)+1:zeroEntries(2)-1,:); [setIJ,nodeNum]=numberNode(lines); diff --git a/run.m b/run.m index f50c68d..aa53c83 100644 --- a/run.m +++ b/run.m @@ -12,11 +12,6 @@ Tf2p=inv(Tp2f); fsY1amp=abs(fsY1); [r,c,fsY1ang]=find(fsY1); fsY1ang=angle(fsY1ang); -%%参考电压 -refV0=1; -refV1=0; -refV2=0; -%refV1=1; Pabc=phaseASpotLoadP+phaseBSpotLoadP+phaseCSpotLoadP; Qabc=phaseASpotLoadQ+phaseBSpotLoadQ+phaseCSpotLoadQ; busNum=length(phaseASpotLoadP); @@ -51,6 +46,9 @@ fsY2=fsY2+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum); fsY0(Balance,:)=0; fsY0(:,Balance)=0; fsY0=fsY0+sparse(Balance,Balance,ones(length(Balance),1),busNum,busNum); +%%LU分解 +[fsY0L,fsY0U,fsY0P,fsY0Q,fsY0R]=lu(fsY0); +[fsY2L,fsY2U,fsY2P,fsY2Q,fsY2R]=lu(fsY2); tic while(k<=kmax && maxD> EPS) k=k+1; @@ -75,8 +73,11 @@ while(k<=kmax && maxD> EPS) If2=conj(f012(3,:)'); If0(Balance)=0; If2(Balance)=0; - Vf0=fsY0\If0; - Vf2=fsY2\If2; + %Vf0=fsY0\If0; + %[fsY0L,fsY0U,fsY0P,fsY0Q,fsY0R] + Vf0=fsY0Q*(fsY0U\(fsY0L\(fsY0P*(fsY0R\If0)))); + %Vf2=fsY2\If2; + Vf2=fsY2Q*(fsY2U\(fsY2L\(fsY2P*(fsY2R\If2)))); end fprintf('Fortiscue法计算时间 %f\n',toc); Vf1=Vmf1.*exp(1j*Vaf1);