From 4a1132476c77c5953c5093c063070d8034dddc5f Mon Sep 17 00:00:00 2001 From: facat Date: Sat, 17 Aug 2013 17:30:22 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=9B=B4=E6=96=B0.gitignore=202.=E4=B8=8D?= =?UTF-8?q?=E5=9C=A8=E4=B8=93=E5=8F=98=E8=80=83=E8=99=91R=E6=88=96?= =?UTF-8?q?=E8=80=85X=E4=B8=BA0=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: facat --- .gitignore | 3 +- TransPower.m | 3 +- TransReactivePower.m | 3 +- plotAndComparison.asv | 6 -- run.asv | 190 --------------------------------- run.m | 238 ++++++++++++++++++++++++++---------------- 6 files changed, 151 insertions(+), 292 deletions(-) delete mode 100644 plotAndComparison.asv delete mode 100644 run.asv diff --git a/.gitignore b/.gitignore index e0bad96..9bdf9ce 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ /公式/*.aux /公式/*.log /公式/*.pdf -/公式/*.synctex.gz(busy) \ No newline at end of file +/公式/*.synctex.gz(busy) +*.asv \ No newline at end of file diff --git a/TransPower.m b/TransPower.m index e0b924c..58a5793 100644 --- a/TransPower.m +++ b/TransPower.m @@ -6,7 +6,6 @@ transJ=newwordParameter.trans.transJ; cmpSEV=Volt.*exp(1j*VAngel); %ѹ % cmpY=sparse(r,c,Y.*(1j*YAngel),length(Volt),length(Volt)); cmpSETransI=(cmpSEV(transI)-cmpSEV(transJ)).*cmpY(sub2ind(size(cmpY),transI,transJ)); -SETransP=real((cmpSEV(transI)-cmpSEV(transJ)).*conj(cmpSETransI)); -output_args=full(SETransP); +output_args=real(cmpSEV(transI).*conj(cmpSETransI)); end diff --git a/TransReactivePower.m b/TransReactivePower.m index bbffe3c..706d53b 100644 --- a/TransReactivePower.m +++ b/TransReactivePower.m @@ -6,7 +6,6 @@ transJ=newwordParameter.trans.transJ; cmpSEV=Volt.*exp(1j*VAngel); %ѹ % cmpY=sparse(r,c,Y.*(1j*YAngel),length(Volt),length(Volt)); cmpSETransI=(cmpSEV(transI)-cmpSEV(transJ)).*cmpY(sub2ind(size(cmpY),transI,transJ)); -SETransQ=imag((cmpSEV(transI)-cmpSEV(transJ)).*conj(cmpSETransI)); -output_args=full(SETransQ); +output_args=imag(cmpSEV(transI).*conj(cmpSETransI)); end diff --git a/plotAndComparison.asv b/plotAndComparison.asv deleted file mode 100644 index 7990bee..0000000 --- a/plotAndComparison.asv +++ /dev/null @@ -1,6 +0,0 @@ -function [ output_args ] = plotAndComparison( rVolt,rVAngel,SEVolt,SEVAngel ) -x=1:length(rVolt); -plot(x,rVolt) - -end - diff --git a/run.asv b/run.asv deleted file mode 100644 index c132cff..0000000 --- a/run.asv +++ /dev/null @@ -1,190 +0,0 @@ -clear -clc -% yalmip('clear') -addpath('.\Powerflow') -[~, ~, ~, ~,Volt,Vangle,Y,Yangle,r,c,newwordParameter,PG,QG,PD,QD,Balance]=pf('ieee14.dat', '0'); -%% -% ѹ ڵ ֧· ڵ㹦 ֧· -%% -%% ״̬ -% ѹ -%% -%% ʼ -sigma=0.05;% ׼ -%% ѹ -%ѹֵ -rVolt=Volt; %ֵ -BalanceVolt=Volt(Balance); -mVolt=rVolt.*(normrnd(0,sigma,length(Volt),1)+1);%ѹ -rVAngel=Vangle; -%% -%ע -cmpY=Y.*exp(1j*sparse(r,c,Yangle,length(Y),length(Y)));%ɾ -cmpV=Volt.*exp(1j*Vangle); %ѹ -cmpI=cmpY*cmpV;% ע -rI=abs(cmpI); %עҪǵֵ -mI=rI.*(normrnd(0,sigma,length(rI),1)+1);% -%% ֧· -% ֧· -lineI=newwordParameter.line.lineI; -lineJ=newwordParameter.line.lineJ; -lineR=newwordParameter.line.lineR; -lineX=newwordParameter.line.lineX; -lineB2=newwordParameter.line.lineB2; -lineG=1./lineR; -lineB=1./lineX; -cmpBranchI=(cmpV(lineI)-cmpV(lineJ))./(lineR+1j*lineX);%֧· -rBranchI=abs(cmpBranchI);% ֧·ֵ -mBranchI=rBranchI.*(normrnd(0,sigma,length(rBranchI),1)+1);%֧· -%% ֧· -rBranchP=real((cmpV(lineI)-cmpV(lineJ)).*conj(cmpBranchI))+real(cmpV(lineI) .*conj(1j*lineB2.*cmpV(lineI) ) ); -rV=abs(cmpV); -rA=imag( -% rBranchP=rBranchP(abs(rBranchP)>1e-5); -mBranchP=rBranchP.*(normrnd(0,sigma,length(rBranchP),1)+1);%֧· -rBranchQ=imag((cmpV(lineI)-cmpV(lineJ)).*conj(cmpBranchI))+imag(cmpV(lineI) .*conj(1j*lineB2.*cmpV(lineI) ) ); -% rBranchQ=rBranchQ(abs(rBranchQ)>1e-5); -mBranchQ=rBranchQ.*(normrnd(0,sigma,length(rBranchQ),1)+1);%֧· -%% ע빦 -rPD=PD; -PDi=find(PD~=0); -rQD=QD; -QDi=find(QD~=0); -rPG=PG; -PGi=find(PG~=0); -rQG=QG; -QGi=find(QG~=0); -mPD=rPD.*(normrnd(0,sigma,length(rPD),1)+1); -mQD=rQD.*(normrnd(0,sigma,length(rQD),1)+1); -mPG=rPG.*(normrnd(0,sigma,length(rPG),1)+1); -mQG=rQG.*(normrnd(0,sigma,length(rQG),1)+1); -%% 0עڵ -zerosInjectionIndex=1:length(Volt); -zerosInjectionIndex=zerosInjectionIndex( ~(PD~=0|QD~=0|PG~=0|QG~=0) ); -%% ѹ -rTransP=TransPower( newwordParameter,cmpY,rVolt,rVAngel ); -rTransQ=TransReactivePower( newwordParameter,cmpY,rVolt,rVAngel ); -mTransP=rTransP.*(normrnd(0,sigma,length(rTransP),1)+1); -mTransQ=rTransQ.*(normrnd(0,sigma,length(rTransQ),1)+1); -%% ע빦 -% ҵֻзĽڵ -PDQDi=union(PDi,QDi); -onlyPG=setdiff(PGi,PDQDi); -onlyQG=setdiff(QGi,PDQDi); -%% ȼ -stateVarCount=2*length(Volt); -measurements=length(mVolt)+length(mBranchI)+length(mBranchP)+length(mBranchQ)+length(mPG)+length(mQG)+length(mTransP)+length(mTransQ); -fprintf(' %f\n',measurements/stateVarCount); -%% Opti ToolBox -Busnum=length(Volt); -%% save -% save('mVolt','mVolt'); -% save('mPG','mPG'); -% save('mQG','mQG'); -% save('mBranchI','mBranchI'); -% save('mBranchP','mBranchP'); -% save('mBranchQ','mBranchQ'); -% save('mTransP','mTransP'); -% save('mTransQ','mTransQ'); -%% load -% load('mVolt'); -% load('mPG'); -% load('mQG'); -% load('mBranchI'); -% load('mBranchP'); -% load('mBranchQ'); -% load('mTransP'); -% load('mTransQ'); -%% Լд΢ִ -% ¶Jacobi -SEVolt=sparse(ones(length(mVolt),1)); -SEVAngel=sparse(zeros(length(mVolt),1)); -maxD=1000; -Iteration=0; -while maxD>1e-3; -dV_dV=sparse(1:length(mVolt),1:length(mVolt),1,length(mVolt),length(mVolt));%ѹ΢ -dV_dTyta=sparse(length(mVolt),length(mVolt)); -dLPij_dVi=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineJ).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - )... - +2*(lineG).*SEVolt(lineI) ... - ,length(lineI),length(mVolt));%· -dLPij_dVj=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineI).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - ) ... - ,length(lineI),length(mVolt));%· -dLPij_dThetai=sparse(1:length(lineI),lineJ, ... - SEVolt(lineI).*SEVolt(lineJ).*( ... - lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... - )... - ,length(lineI),length(mVolt));%· -dLPij_dThetaj=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineI).*SEVolt(lineJ).*( ... - lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... - )... - ,length(lineI),length(mVolt));%· - -dLQij_dVi=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineJ).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - )... - -2*(lineB+lineB2).*SEVolt(lineI) ... - ,length(lineI),length(mVolt));%· -dLQij_dVj=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineI).*( ... - lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... - ) ... - ,length(lineI),length(mVolt));%· -dLQij_dThetai=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineI).*SEVolt(lineJ).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - ) ... - ,length(lineI),length(mVolt));%· -dLQij_dThetaj=sparse(1:length(lineI),lineJ, ... - SEVolt(lineI).*SEVolt(lineJ).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - ) ... - ,length(lineI),length(mVolt));%· -% ·翹Ϊ0NaN -zerosRXInd=union(find(abs(lineR)<1e-5),find(abs(lineX)<1e-5)); -dLPij_dVi=dLPij_dVi(setdiff( 1:size(dLPij_dVi,1),zerosRXInd),:); -dLPij_dVj=dLPij_dVj(setdiff( 1:size(dLPij_dVj,1),zerosRXInd),:); -dLPij_dThetai=dLPij_dThetai(setdiff( 1:size(dLPij_dThetai,1),zerosRXInd),:); -dLPij_dThetaj=dLPij_dThetaj(setdiff( 1:size(dLPij_dThetaj,1),zerosRXInd),:); -dLQij_dVi=dLQij_dVi(setdiff( 1:size(dLQij_dVi,1),zerosRXInd),:); -dLQij_dVj=dLQij_dVj(setdiff( 1:size(dLQij_dVj,1),zerosRXInd),:); -dLQij_dThetai=dLQij_dThetai(setdiff( 1:size(dLQij_dThetai,1),zerosRXInd),:); -dLQij_dThetaj=dLQij_dThetaj(setdiff( 1:size(dLQij_dThetaj,1),zerosRXInd),:); -%% -H=[dV_dV ,dV_dTyta; - dLPij_dVi+dLPij_dVj, dLPij_dThetai+dLPij_dThetaj; - dLQij_dVi+dLQij_dVj, dLQij_dThetai+dLQij_dThetaj];%jacobi -% H=[dV_dV]; -h=SEVolt; -z=mVolt; -W=sparse(1:length(mVolt),1:length(mVolt),1/sigma.^2,length(mVolt),length(mVolt)); -G=H'*W*H; -g=-H'*W*(z-h); -% ƽڵǺ㶨; -% G(length(mVolt)+Balance,:)=0; -% G(:,length(mVolt)+Balance)=0; -% G=G+sparse(length(mVolt)+Balance,length(mVolt)+Balance,1,length(mVolt)*2,length(mVolt)*2); -% g(length(mVolt)+Balance)=0; -dX=G\-g; -maxD=max(abs(dX)) -% ± -SEVolt=SEVolt+dX(1:length(mVolt)); -Iteration=Iteration+1; -SEVAngel=SEVAngel+dX(length(mVolt)+1:end); -end -%% -fprintf('%d\n',Iteration); -h=SEVolt; -fval=full((z-h)'*W*(z-h)); -fprintf('Ŀ꺯Ϊ:%f\n',fval); -fprintf('\n'); -(abs(rVolt-double(SEVolt)))./(rVolt) -MaxDeviation(rVolt,SEVolt,rVAngel,SEVAngel) -plotAndComparison( rVolt,rVAngel,SEVolt,SEVAngel ) \ No newline at end of file diff --git a/run.m b/run.m index a27cf96..6d7155b 100644 --- a/run.m +++ b/run.m @@ -34,7 +34,7 @@ lineB2=newwordParameter.line.lineB2; lineG=real(1./(lineR+1j*lineX)); lineB=imag(1./(lineR+1j*lineX)); % ·翹Ϊ0NaN -zerosRXInd=union(find(abs(lineR)<1e-5),find(abs(lineX)<1e-5)); +% zerosLRXInd=union(find(abs(lineR)<1e-5),find(abs(lineX)<1e-5)); cmpBranchI=BranchI( cmpV,lineI,lineJ,lineR,lineX );%֧· rBranchI=abs(cmpBranchI);% ֧·ֵ mBranchI=rBranchI.*(normrnd(0,sigma,length(rBranchI),1)+1);%֧· @@ -50,8 +50,8 @@ rBranchQ=BranchQ( cmpV,cmpBranchI,lineI,lineB2 ); % rBranchQ=rBranchQ(abs(rBranchQ)>1e-5); mBranchQ=rBranchQ.*(normrnd(0,sigma,length(rBranchQ),1)+1);%֧· % ·翹Ϊ0NaN -mBranchP=mBranchP(setdiff( 1:length(mBranchP),zerosRXInd)); -mBranchQ=mBranchQ(setdiff( 1:length(mBranchQ),zerosRXInd)); +% mBranchP=mBranchP(setdiff( 1:length(mBranchP),zerosLRXInd)); +% mBranchQ=mBranchQ(setdiff( 1:length(mBranchQ),zerosLRXInd)); %% ע빦 rPD=PD; PDi=find(PD~=0); @@ -69,8 +69,19 @@ mQG=rQG.*(normrnd(0,sigma,length(rQG),1)+1); zerosInjectionIndex=1:length(Volt); zerosInjectionIndex=zerosInjectionIndex( ~(PD~=0|QD~=0|PG~=0|QG~=0) ); %% ѹ +transI=newwordParameter.trans.transI; +transJ=newwordParameter.trans.transJ; +transK=newwordParameter.trans.transK; +transR=newwordParameter.trans.transR; +transX=newwordParameter.trans.transX; +transG=real(1./(transR+1j*transX)); +transB=imag(1./(transR+1j*transX)); +% ·翹Ϊ0NaN +% zerosTRXInd=union(find(abs(transR)<1e-5),find(abs(transX)<1e-5)); rTransP=TransPower( newwordParameter,cmpY,rVolt,rVAngel ); rTransQ=TransReactivePower( newwordParameter,cmpY,rVolt,rVAngel ); +% rTransP=rTransP( setdiff( 1:length(rTransP),zerosTRXInd) ); +% rTransQ=rTransQ( setdiff( 1:length(rTransQ),zerosTRXInd) ); mTransP=rTransP.*(normrnd(0,sigma,length(rTransP),1)+1); mTransQ=rTransQ.*(normrnd(0,sigma,length(rTransQ),1)+1); %% ע빦 @@ -109,94 +120,139 @@ SEVAngel=sparse(zeros(length(mVolt),1)); maxD=1000; Iteration=0; while maxD>1e-3; -dV_dV=sparse(1:length(mVolt),1:length(mVolt),1,length(mVolt),length(mVolt));%ѹ΢ -dV_dTyta=sparse(length(mVolt),length(mVolt)); -dLPij_dVi=sparse(1:length(lineI),lineI, ... - -SEVolt(lineJ).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - )... - +2*(lineG).*SEVolt(lineI) ... - ,length(lineI),length(mVolt));%· -dLPij_dVj=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineI).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - ) ... - ,length(lineI),length(mVolt));%· -dLPij_dThetai=sparse(1:length(lineI),lineI, ... - SEVolt(lineI).*SEVolt(lineJ).*( ... - lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... - )... - ,length(lineI),length(mVolt));%· -dLPij_dThetaj=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineI).*SEVolt(lineJ).*( ... - lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... - )... - ,length(lineI),length(mVolt));%· - -dLQij_dVi=sparse(1:length(lineI),lineI, ... - -SEVolt(lineJ).*( ... - lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... - )... - -2*(lineB+lineB2).*SEVolt(lineI) ... - ,length(lineI),length(mVolt));%· -dLQij_dVj=sparse(1:length(lineI),lineJ, ... - -SEVolt(lineI).*( ... - lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... - ) ... - ,length(lineI),length(mVolt));%· -dLQij_dThetai=sparse(1:length(lineI),lineI, ... - -SEVolt(lineI).*SEVolt(lineJ).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - ) ... - ,length(lineI),length(mVolt));%· -dLQij_dThetaj=sparse(1:length(lineI),lineJ, ... - SEVolt(lineI).*SEVolt(lineJ).*( ... - lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... - ) ... - ,length(lineI),length(mVolt));%· -% ·翹Ϊ0NaN -dLPij_dVi=dLPij_dVi(setdiff( 1:size(dLPij_dVi,1),zerosRXInd),:); -dLPij_dVj=dLPij_dVj(setdiff( 1:size(dLPij_dVj,1),zerosRXInd),:); -dLPij_dThetai=dLPij_dThetai(setdiff( 1:size(dLPij_dThetai,1),zerosRXInd),:); -dLPij_dThetaj=dLPij_dThetaj(setdiff( 1:size(dLPij_dThetaj,1),zerosRXInd),:); -dLQij_dVi=dLQij_dVi(setdiff( 1:size(dLQij_dVi,1),zerosRXInd),:); -dLQij_dVj=dLQij_dVj(setdiff( 1:size(dLQij_dVj,1),zerosRXInd),:); -dLQij_dThetai=dLQij_dThetai(setdiff( 1:size(dLQij_dThetai,1),zerosRXInd),:); -dLQij_dThetaj=dLQij_dThetaj(setdiff( 1:size(dLQij_dThetaj,1),zerosRXInd),:); -% ֵͬ - -%% -% H=[dV_dV ,dV_dTyta; -% dLPij_dVi+dLPij_dVj, dLPij_dThetai+dLPij_dThetaj; -% dLQij_dVi+dLQij_dVj, dLQij_dThetai+dLQij_dThetaj];%jacobi - -H=[dV_dV,dV_dTyta; - dLPij_dVi+dLPij_dVj,dLPij_dThetai+dLPij_dThetaj ; - dLQij_dVi+dLQij_dVj,dLQij_dThetai+dLQij_dThetaj ];%jacobi - -SEBranchI=BranchI( SEVolt.*exp(1j*SEVAngel),lineI,lineJ,lineR,lineX );%֧· -SEBranchP=BranchP( SEVolt.*exp(1j*SEVAngel),SEBranchI,lineI,lineB2 ); -SEBranchQ=BranchQ( SEVolt.*exp(1j*SEVAngel),SEBranchI,lineI,lineB2 ); -SEBranchP=SEBranchP(setdiff( 1:length(SEBranchP),zerosRXInd)); -SEBranchQ=SEBranchQ(setdiff( 1:length(SEBranchQ),zerosRXInd)); -% h=[SEVolt;SEBranchP;SEBranchQ]; -% z=[mVolt;mBranchP;mBranchQ]; -h=[SEVolt;SEBranchP;SEBranchQ]; -z=[mVolt;mBranchP;mBranchP]; -W=sparse(1:length(h),1:length(h),1/sigma.^2,length(h),length(h)); -G=H'*W*H; -g=-H'*W*(z-h); -% ƽڵǺ㶨; -% G(length(mVolt)+Balance,:)=0; -% G(:,length(mVolt)+Balance)=0; -% G=G+sparse(length(mVolt)+Balance,length(mVolt)+Balance,1,length(mVolt)*2,length(mVolt)*2); -% g(length(mVolt)+Balance)=0; -dX=G\-g; -maxD=max(abs(dX)) -% ± -% SEVolt=SEVolt+dX(1:length(mVolt)); -Iteration=Iteration+1; -SEVAngel=SEVAngel+dX(1:end); + % ѹ + dV_dV=sparse(1:length(mVolt),1:length(mVolt),1,length(mVolt),length(mVolt));%ѹ΢ + dV_dTyta=sparse(length(mVolt),length(mVolt)); + % ·֧· + dLPij_dVi=sparse(1:length(lineI),lineI, ... + -SEVolt(lineJ).*( ... + lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... + )... + +2*(lineG).*SEVolt(lineI) ... + ,length(lineI),length(mVolt));%· + dLPij_dVj=sparse(1:length(lineI),lineJ, ... + -SEVolt(lineI).*( ... + lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... + ) ... + ,length(lineI),length(mVolt));%· + dLPij_dThetai=sparse(1:length(lineI),lineI, ... + SEVolt(lineI).*SEVolt(lineJ).*( ... + lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... + )... + ,length(lineI),length(mVolt));%· + dLPij_dThetaj=sparse(1:length(lineI),lineJ, ... + -SEVolt(lineI).*SEVolt(lineJ).*( ... + lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... + )... + ,length(lineI),length(mVolt));%· + + dLQij_dVi=sparse(1:length(lineI),lineI, ... + -SEVolt(lineJ).*( ... + lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... + )... + -2*(lineB+lineB2).*SEVolt(lineI) ... + ,length(lineI),length(mVolt));%· + dLQij_dVj=sparse(1:length(lineI),lineJ, ... + -SEVolt(lineI).*( ... + lineG.*sin(SEVAngel(lineI)-SEVAngel(lineJ)) -lineB.*cos(SEVAngel(lineI)-SEVAngel(lineJ))... + ) ... + ,length(lineI),length(mVolt));%· + dLQij_dThetai=sparse(1:length(lineI),lineI, ... + -SEVolt(lineI).*SEVolt(lineJ).*( ... + lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... + ) ... + ,length(lineI),length(mVolt));%· + dLQij_dThetaj=sparse(1:length(lineI),lineJ, ... + SEVolt(lineI).*SEVolt(lineJ).*( ... + lineG.*cos(SEVAngel(lineI)-SEVAngel(lineJ)) +lineB.*sin(SEVAngel(lineI)-SEVAngel(lineJ))... + ) ... + ,length(lineI),length(mVolt));%· + % ѹ֧· + dTPij_dVi=sparse(1:length(transI),transI, ... + -SEVolt(transJ)./transK.*( ... + transG.*cos(SEVAngel(transI)-SEVAngel(transJ)) +transB.*sin(SEVAngel(transI)-SEVAngel(transJ))... + )... + +2*transG.*SEVolt(transI)./(transK.^2) ... + ,length(transI),length(mVolt));%ѹ + dTPij_dVj=sparse(1:length(transI),transJ, ... + -SEVolt(transI)./transK.*( ... + transG.*cos(SEVAngel(transI)-SEVAngel(transJ)) +transB.*sin(SEVAngel(transI)-SEVAngel(transJ))... + ) ... + ,length(transI),length(mVolt));%ѹ + dTPij_dThetai=sparse(1:length(transI),transI, ... + SEVolt(transI)./transK.*SEVolt(transJ).*( ... + transG.*sin(SEVAngel(transI)-SEVAngel(transJ)) -transB.*cos(SEVAngel(transI)-SEVAngel(transJ))... + )... + ,length(transI),length(mVolt));%ѹ + dTPij_dThetaj=sparse(1:length(transI),transJ, ... + -SEVolt(transI)./transK.*SEVolt(transJ).*( ... + transG.*sin(SEVAngel(transI)-SEVAngel(transJ)) -transB.*cos(SEVAngel(transI)-SEVAngel(transJ))... + )... + ,length(transI),length(mVolt));%ѹ + dTQij_dVi=sparse(1:length(transI),transI, ... + -SEVolt(transJ)./transK.*( ... + transG.*sin(SEVAngel(transI)-SEVAngel(transJ)) -transB.*cos(SEVAngel(transI)-SEVAngel(transJ))... + )... + -2*transB.*SEVolt(transI)./(transK.^2) ... + ,length(transI),length(mVolt));%ѹ + dTQij_dVj=sparse(1:length(transI),transJ, ... + -SEVolt(transI)./transK.*( ... + transG.*sin(SEVAngel(transI)-SEVAngel(transJ)) -transB.*cos(SEVAngel(transI)-SEVAngel(transJ))... + ) ... + ,length(transI),length(mVolt));%ѹ + dTQij_dThetai=sparse(1:length(transI),transI, ... + -SEVolt(transI)./transK.*SEVolt(transJ).*( ... + transG.*cos(SEVAngel(transI)-SEVAngel(transJ)) +transB.*sin(SEVAngel(transI)-SEVAngel(transJ))... + ) ... + ,length(transI),length(mVolt));%ѹ + dTQij_dThetaj=sparse(1:length(transI),transJ, ... + SEVolt(transI)./transK.*SEVolt(transJ).*( ... + transG.*cos(SEVAngel(transI)-SEVAngel(transJ)) +transB.*sin(SEVAngel(transI)-SEVAngel(transJ))... + ) ... + ,length(transI),length(mVolt));%ѹ + % ·翹Ϊ0NaN +% dLPij_dVi=dLPij_dVi(setdiff( 1:size(dLPij_dVi,1),zerosLRXInd),:); +% dLPij_dVj=dLPij_dVj(setdiff( 1:size(dLPij_dVj,1),zerosLRXInd),:); +% dLPij_dThetai=dLPij_dThetai(setdiff( 1:size(dLPij_dThetai,1),zerosLRXInd),:); +% dLPij_dThetaj=dLPij_dThetaj(setdiff( 1:size(dLPij_dThetaj,1),zerosLRXInd),:); +% dLQij_dVi=dLQij_dVi(setdiff( 1:size(dLQij_dVi,1),zerosLRXInd),:); +% dLQij_dVj=dLQij_dVj(setdiff( 1:size(dLQij_dVj,1),zerosLRXInd),:); +% dLQij_dThetai=dLQij_dThetai(setdiff( 1:size(dLQij_dThetai,1),zerosLRXInd),:); +% dLQij_dThetaj=dLQij_dThetaj(setdiff( 1:size(dLQij_dThetaj,1),zerosLRXInd),:); + % ֵͬ + + %% + % H=[dV_dV ,dV_dTyta; + % dLPij_dVi+dLPij_dVj, dLPij_dThetai+dLPij_dThetaj; + % dLQij_dVi+dLQij_dVj, dLQij_dThetai+dLQij_dThetaj];%jacobi + + H=[dV_dV,dV_dTyta; + dLPij_dVi+dLPij_dVj,dLPij_dThetai+dLPij_dThetaj ; + dLQij_dVi+dLQij_dVj,dLQij_dThetai+dLQij_dThetaj ];%jacobi + + SEBranchI=BranchI( SEVolt.*exp(1j*SEVAngel),lineI,lineJ,lineR,lineX );%֧· + SEBranchP=BranchP( SEVolt.*exp(1j*SEVAngel),SEBranchI,lineI,lineB2 ); + SEBranchQ=BranchQ( SEVolt.*exp(1j*SEVAngel),SEBranchI,lineI,lineB2 ); +% SEBranchP=SEBranchP(setdiff( 1:length(SEBranchP),zerosLRXInd)); +% SEBranchQ=SEBranchQ(setdiff( 1:length(SEBranchQ),zerosLRXInd)); + % h=[SEVolt;SEBranchP;SEBranchQ]; + % z=[mVolt;mBranchP;mBranchQ]; + h=[SEVolt;SEBranchP;SEBranchQ]; + z=[mVolt;mBranchP;mBranchP]; + W=sparse(1:length(h),1:length(h),1/sigma.^2,length(h),length(h)); + G=H'*W*H; + g=-H'*W*(z-h); + % ƽڵǺ㶨; + % G(length(mVolt)+Balance,:)=0; + % G(:,length(mVolt)+Balance)=0; + % G=G+sparse(length(mVolt)+Balance,length(mVolt)+Balance,1,length(mVolt)*2,length(mVolt)*2); + % g(length(mVolt)+Balance)=0; + dX=G\-g; + maxD=max(abs(dX)) + % ± + % SEVolt=SEVolt+dX(1:length(mVolt)); + Iteration=Iteration+1; + SEVAngel=SEVAngel+dX(1:end); end %% fprintf('%d\n',Iteration);