From 520d749263afdeb77fc6c4669257b1125c00a919 Mon Sep 17 00:00:00 2001 From: facat Date: Tue, 5 Mar 2013 10:43:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=8A=E6=B7=BB=E5=8A=A0=E5=99=AA=E9=9F=B3?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E9=87=8F=E6=B5=8B=E5=80=BC=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E4=B8=8B=E6=9D=A5=EF=BC=8C=E4=BB=A5=E4=BE=BF=E4=B8=8B=E6=AC=A1?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: facat --- 0PD0.mat | Bin 0 -> 671 bytes 0QD0.mat | Bin 0 -> 672 bytes 12PD0.mat | Bin 0 -> 668 bytes 12QD0.mat | Bin 0 -> 674 bytes 16PD0.mat | Bin 0 -> 670 bytes 16QD0.mat | Bin 0 -> 662 bytes 20PD0.mat | Bin 0 -> 668 bytes 20QD0.mat | Bin 0 -> 673 bytes 4PD0.mat | Bin 0 -> 671 bytes 4QD0.mat | Bin 0 -> 670 bytes 8PD0.mat | Bin 0 -> 671 bytes 8QD0.mat | Bin 0 -> 670 bytes @ForThesis/MaxBranchDeviation.m | 31 +++++++++++++++++++++++++++++-- @ForThesis/MaxDeviation.m | 2 +- @ForThesis/StatBranchDeviation.m | 2 +- FormLw.m | 8 ++++---- FormLz.m | 8 ++++---- Lineloss.asv | 28 +++++++++++++++++++--------- Lineloss.m | 13 ++++++++++--- OPF.m | 28 ++++++++++++---------------- OPF_Init.asv | 19 ++++++++++--------- OPF_Init.m | 8 ++++---- 22 files changed, 94 insertions(+), 53 deletions(-) create mode 100644 0PD0.mat create mode 100644 0QD0.mat create mode 100644 12PD0.mat create mode 100644 12QD0.mat create mode 100644 16PD0.mat create mode 100644 16QD0.mat create mode 100644 20PD0.mat create mode 100644 20QD0.mat create mode 100644 4PD0.mat create mode 100644 4QD0.mat create mode 100644 8PD0.mat create mode 100644 8QD0.mat diff --git a/0PD0.mat b/0PD0.mat new file mode 100644 index 0000000000000000000000000000000000000000..c78db611a77fabf43531296084c3723ceeef1bf6 GIT binary patch literal 671 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w>_Ia4t$sEJ;mK$j`G< z@XgOt@J%dIFfdUtu&^?*ure}KFfuSSRv;NLFnap(GcYiSGchn!%rQNm>mghq!1kej zW|+(A2^^Z831{bI`)03IEoDuD zk8WAZ>twW8gY?&x$YD{Z~dVz z*T6R!%Q6b@a|a%1cDcdnd7wQ-V8c>rryIOV9*rS4n5!LmemgJ)c{G+tNdxEnoHY=G`y9rq)%y?h|O8?N;|C_T|F2 zhpN-Q8(X{nQHqzl?yHwNb?LiWV^MBCZ~K0>mH#ha=-F_==?~Y>&$mB`6+QKOyl3{V=nV1MXjC7*T-x2Vc)He>gTsFuYLQqk@Ms9;?AwIOZu<1 z_T2Jr{G591#466%hT!9}U&G8UMXxUQdYQZE)rYjd_dUg@Mh2fT{62R|n8^JPM;<8m zEh(96cieODqz7C6l$+nJH9z;nNMBNCS?*_6Myt}~$BSe9`9tGwn=JnSLNT%Tum7=R j_Md8{k)~$scYEGm`Dauzab41jrzOcZ{_|^j9_9uB;;SXH literal 0 HcmV?d00001 diff --git a/0QD0.mat b/0QD0.mat new file mode 100644 index 0000000000000000000000000000000000000000..19bc6502363257634c8a5801340efb43b3116f6f GIT binary patch literal 672 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w>_Ia4t$sEJ;mK$j`G< z@XgOt@J%dIFfdUtu&^?*urjhxFfuSSRv;NLFnap(GcYhnFflMx%rQM5?J=2Ag#E*L zZ}I3O24~tLx+0^a&Rq@DJEo|!cG}BTmUDC0t>|egiRORUvPJU#wHs-xXPPT9^%_ks zRTMqBX2PVFr)rf819JSkw@!CaiKy3?{ZVM~{9(aAX^FO-B4-U&U%Y-uOYiWTs5jc5 zOFN>34r}mnPXD%EfoK=*R%mC^U}2rZq$<+P<+VWMN&s8B19OxHyX@we|HX#d_Q!OexgXf%KK=4%E1xA% z9@9=Vm8Q&_^<}w<)yW61%-C4@J%4{+lB{;cZ}a>w`^x%SA05$ev+tSxA}927M|SsY zsdTSW~}eO*{`pCxp79M{!esoOX|w}H-9GAty(y3(cjI**JpVw{$(gDYBcfu z9NS4(FS|%81wOfc*;*uB!^G##3JH#oiuu`d%}z;|q;0F%A`*}zd_-*H7vnkaxK*Mw z!tHL}$}gR${BQRM?deN<#jDMumqkumXMTV0ta$&kBA!q0Y@7JAqwVtT#HCvfGQH3K zZhOjeRk!@AEal`R=hPSbx~(dr4}S}@?p2$5{^S2Si#u5!o<8x1dDZn=O}S53E^U|~ n{q6JGE8lhouYF$>(6s5(p{6@tdyX%ky8YOqm-5-}yG{ZC*rY1^ literal 0 HcmV?d00001 diff --git a/12PD0.mat b/12PD0.mat new file mode 100644 index 0000000000000000000000000000000000000000..85525f4c728e5cd84eb981c8e487c878db363530 GIT binary patch literal 668 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w>_Ia4t$sEJ;mK$j`G< z@XgOt@J%dIFfdUtu&^>Uv@$VNFfuSSRv;NLFnap(GcYiSFflMx%rQM*?Gel<`GS(Fbh$hnvx+9IU0Wa>;&Ud{R1DrU>4 zr)`X!t?jf(VZ}5(iTt zDXuHe{Ih*^^sm8^CXo~ccGet5)h7nt=GzXL1vIl2C0f5}n7e>g?9)Plu7(9HUXJ{1 z8tlq%T5AJ1)mF4gSukuZ5IB>-sD0(2q6Lpx+RA^=lcv=_(SPE8;QiM(SGrc(&DwGK z<>}QO7gy)6-z{o+H{^|n@$9a}TPpWBeF~FS{Qh||tKnmT%HX_Nv5)tPl)jYyS29v}k?#{?IaS~qjdSd_N zJfTA4)t{5gGnZ}Nr8A+%tFrCen(SOgtJK>T*R?8~7FMlG{_@;eD=K{F%J`>?ytlQ? z-umN3`>%`5tDYFleLZvPs~ZNIr_Ia4t$sEJ;mK$j`G< z@XgOt@J%dIFfdUtu&^>Uv@$VQFfuSSRv;NLFnap(GcYhnF)=Vy%rQM5?Qxk=gzZE9 ztf^PRrihg-Rwk+r)s)az-)hCaw;<`SkOpM)~$)Ilkw~#yrJ(Es4_>u5Z|2%Cot8o&LG- z#FKjh)U2mk@0V{3=xB_1aKNvlIac7j&K-{i+XJmG4-UrNVE5c0KdF)5$%26;$$}@d zK;)7lbKhak6KtGMoaE-T)L5{xDzHk59Lk(cs}DiX!Uo#RFIa-MZL$e zkHY)2xzDV<@_+S;eI6Ga_KLGYa-GAe4N*NAG^Iv z{?4L&#*NpWN$n{(H!c3q6Uc6s~Su0?5!dGfbsbc)Z}YpHqZ z;@+aT(3*9#mV7{bbizaQHO<1p_5U literal 0 HcmV?d00001 diff --git a/16PD0.mat b/16PD0.mat new file mode 100644 index 0000000000000000000000000000000000000000..37a72207cc6e1a9fc5b323e5805d6eeccc0973f1 GIT binary patch literal 670 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w>_Ia4t$sEJ;mK$j`G< z@XgOt@J%dIFfdUtu&^>UvNAMOFfuSSRv;NLFnap(GcYiSF)=Vy%rQM5?QywKg#E*O z>1)$sr%8#l%$l%t=dB`3mDee1YTmcz?A)_t-Gr6Q`mF{p7Ithfix9BAl2c-6db4@w z&-rDMmPMDMlm!%%x);s5=_Hjb5R&}m>!n8i_F_4{=ey?_UOSbXBf5)Wl50<=`0rCW z4NFvOmf0vp-YP!OE^~v?T2cH{g7}loPo;M!@_RUNRWD>n*}%``$mhC2o{zzibBdGX z6lYeA1wwtzTvrO1vK*Mz7mB@FASd-e#KcM1Wb@Ns^Sjsn(TF+I-|+TUY3v?%GodP{ z_NztwtlRg`{wG%+yf8ff*F;0Vuv_t`{YjJk zZ~GrSJ>A5#$oQ;Zze%m&%}nnj*OzzR)O`LRw)1&^cT}u7^LZEJEB~&{zcJ^k|NgTv zoXh1EZ?+gNF_P@e|Fz)voy^7TduJ*h{wi&v<}1GWvzU+{yQ*!XcxdRVbIa_v2mgus zH+PGV^v?Oue&8q>11&-O0b zxUF*aKLK~EgR}M=F=Ss_(xJT4JwEtKw6Eqe$5~tW*1vs`xvcl@t7#iq`__r6-#u4U jyhLNg{Jj&NF1WXU|GJtj7B80`)0?|re`$Tnx_x^AyMP~? literal 0 HcmV?d00001 diff --git a/16QD0.mat b/16QD0.mat new file mode 100644 index 0000000000000000000000000000000000000000..d03a88e6ffb12a86d47dcf3564d753359821997c GIT binary patch literal 662 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w>_Ia4t$sEJ;mK$j`G< z@XgOt@J%dIFfdUtu&^>UvNAMRFfuSSRv;NLFnap(GcYjlF)=Vy%rQM5n{g>ogzZE5 zsrs{eNiCv_w=L>@nH9b5{2XcigplmBg*C zeNc{~Elk}0ph+Kb=*5x8O2d?q^&zG?mJ z?+-1TTGqQ{?+G!{_1|>-A78%TGJUr(Z|R;itwT-^W?g=F<9+pyPX@}mHFI5-?tA?9 z(dFYF>^pzZ$jg+?zZ(jsHqxL3ZlFuGTI8+#gPn-E%1`@SZ92W51iq(f9fnwnn{9 zohp4{-%o`P(Ft{zjI|6a5BxS;^@w%ddbjNN%D8UvImP={7`-wt zdAanlD!)y(Vh#)PB5mRlU6qt$Z%+GqP-<<#-YfA=egBJ3YRqxEbj2)CtzT)m^u8?a z)(eHkGMx{l_*!KT^Kv9*9$C?=QWMa&$X49e?o8O;dm__zPPnRV_WY=x&bic*qgmEd argbjf`R}&HzD?!t_H1VP&v0|!)_wp?n;iZC literal 0 HcmV?d00001 diff --git a/20PD0.mat b/20PD0.mat new file mode 100644 index 0000000000000000000000000000000000000000..066fff1066d32bbc5354ec999d915681cd04d25e GIT binary patch literal 668 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w>_Ia4t$sEJ;mK$j`G< z2u>_fa7#^6FfdXuGO#kVurf4JFfuSSRv;NLFnap(GcYiSFflMx%rQM5?QywKg#E*O zy=0-8B0j9MBez|edTz_<4OU&fiWj%NvwA)&wpT7{C%ZDU^J?9sTZhxK~1jwiA~Dxj@x;o^lSH)JUIMtPW$1XX$Hq;1xZHtoonCXb8OqW?@M>G z28n%`ku^Uh(VoXf;Go(Kp4I@Cq#K9C@thudcwHV{L6Ct%hei-Bv0g@&idSXt-bkelYuN(No!R0+mdsYbz1iyF8w!0)T{J{ z=jzFKIjz$df16OBbD2D4STY*7=|6aliNPc{C>nDc5QXgt|?Ziz;)y zHhs?BN*G@w@-`yu>Sv?jn>A6%o gFL>WOe|g@NX_Bn-+^^VJmByRTcK^??O=SO40A&CmO8@`> literal 0 HcmV?d00001 diff --git a/20QD0.mat b/20QD0.mat new file mode 100644 index 0000000000000000000000000000000000000000..1d7dcd493d638eacb920dba714ff2751b0677c05 GIT binary patch literal 673 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w>_Ia4t$sEJ;mK$j`G< z2u>_fa7#^6FfdXuGO#kVure}KFfuSSRv;NLFnap(GcYhnGBGez%rQNm?J=2AgzbU< zSs$n*$FHQhN0UT2RO z3CzAJCcK3E?+T5~s4YrSs}&S`>(*TNW|!l8{>NgD`OHL#Se?TOi$`!Rue=LWe?Gj>W#E6THM;A~N7V$xtS6gil7gK4RQLgU&1 zHX{vo%N%xAjYRP`Y@#b1nX41@L!3lIoO$0g|2-4)_x#Z_|7TcCmS>#I^YY#L)o(&R zJ=HhAm#$jA;<8kr<;kMVj|KPG%_XZ7cTb}X3r zrS9X*oV%$~KbLyeo7MG|WD7HG@7uIxk>8FdUpKuDIsE$czt~%jdW)w$HZBd=`D)FZ z;J2c`o>eEA6_l1dKk>>TImg^~Pp$dOg9+TSkGi9(ZSP(&3#rNVeZeGqKFRWLe{_b^ zlWBKWU$D3O;P<$&ZFZ)S`oiO>DKD3rd|h01$Sr8CPo`Cd+TxsOmH*b>mk-IS{#jY| z>tx_*|Nf0zjDzp}|L3ADE61gO{!#1_M*o?n;TQcjEth=!&%;_&?c0}YY&lEff2!+N zobk(=t*PNx9N2a*a=UWX)TG&~X4$!0XI7YG)VpehQ>z^ jZ4WpSZSbpXW%G-py`LwGakswip7gsb_@(^5+dDG=dKVa} literal 0 HcmV?d00001 diff --git a/4PD0.mat b/4PD0.mat new file mode 100644 index 0000000000000000000000000000000000000000..7181fd56ee38e6430fd58b2132cd9d31ed008477 GIT binary patch literal 671 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 literal 0 HcmV?d00001 diff --git a/@ForThesis/MaxBranchDeviation.m b/@ForThesis/MaxBranchDeviation.m index dfdfca4..fadccac 100644 --- a/@ForThesis/MaxBranchDeviation.m +++ b/@ForThesis/MaxBranchDeviation.m @@ -1,7 +1,34 @@ -function [ output_args ] = MaxBranchDeviation( ~, Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0,Volt0,UAngel0,Volt,UAngel) +function [ output_args ] = MaxBranchDeviation( ~, Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0,Volt0,UAngel0,Volt,UAngel,FileName,PD0,QD0) %% 最大支路功率偏差 % 支路功率包括线路和变压器 -%% +%% 先用加了误差的负荷功率计算潮流值 +[Busnum,Balance,PQstandard,Precision,~,~,~,~,~,kmax,~ ,... + ~,~,~,~,~,~,~,Pointpoweri,PG,QG,~,~,PVi,PVu,~,~,~,~,~,~,~]= openfile2(FileName); +PD=PD0; +QD=QD0; +%% 形成节点导纳矩阵 +[~,Y,r,c,Angle] = admmatrix(Busnum,Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,... + Transforx,Transfork0,Branchi,Branchg,Branchb); +[P0,Q0,U,Uangle] = Initial(PG,PD,PQstandard,Pointpoweri,QG,QD,Busnum); %求功率不平衡量 +%disp('迭代次数i 最大不平衡量'); +%% 循环体计算 +for i = 0:kmax + [Jacob,PQ,U,Uangle] = jacobian(Busnum,Balance,PVi,PVu,U,Uangle,Y,Angle,P0,Q0,r,c); %形成雅克比矩阵 + % disp('第一次雅克比'); + m = max(abs(PQ)); + m=full(m); + %fprintf(' %u %.8f \n',i,m); + if m > Precision %判断不平衡量是否满足精度要求 + [Uangle,U] = solvefun(Busnum,Jacob,PQ,Uangle,U); %求解修正方程,更新电压变量 + else + disp(['收敛,迭代次数为',num2str(i),'次']); + break %若满足精度要求,则计算收敛 + end +end + +Volt0=U; +UAngel0=Uangle; + [dispLineloss0 dispTransloss0]=Lineloss(Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0,Volt0,UAngel0); [dispLineloss dispTransloss]=Lineloss(Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0,Volt,UAngel); t1=(dispLineloss0(:,3) - dispLineloss(:,3))./dispLineloss0(:,3); diff --git a/@ForThesis/MaxDeviation.m b/@ForThesis/MaxDeviation.m index 006d74e..8bfa6c3 100644 --- a/@ForThesis/MaxDeviation.m +++ b/@ForThesis/MaxDeviation.m @@ -7,5 +7,5 @@ PG0Array=repmat(PG0,this.sampleNum,1); QG0Array=repmat(QG0,this.sampleNum,1); PGMaxDev=max(abs( (PG0Array-this.PGArray)./PG0Array )); QGMaxDev=max( abs( (QG0Array-this.QGArray)./QG0Array ) ); -output_arg=max([PDMaxDev;QDMaxDev;PGMaxDev;QGMaxDev]); +output_arg=max([PDMaxDev;QDMaxDev;PGMaxDev;QGMaxDev;]); end diff --git a/@ForThesis/StatBranchDeviation.m b/@ForThesis/StatBranchDeviation.m index 4acc382..6e9ff72 100644 --- a/@ForThesis/StatBranchDeviation.m +++ b/@ForThesis/StatBranchDeviation.m @@ -14,6 +14,6 @@ t22=dispTransloss0(:,3)>1e-5;% 太小 t3=[t1(t11);t2(t22)]; t4=t3.^2; t5=sum(t4).^.5; -output_args=t5 +output_args=t5; end diff --git a/FormLw.m b/FormLw.m index 5088230..8c02646 100644 --- a/FormLw.m +++ b/FormLw.m @@ -6,13 +6,13 @@ VoltU=(1.1)*ones(1,Busnum); %VoltU=10*ones(1,Busnum); PDU=PD0(Loadi); % PDU=noDataTransCapacity; -PDU(PDU>0)=1.300*PDU(PDU>0); -PDU(PDU<0)=0.700*PDU(PDU<0); +PDU(PDU>0)=1.200*PDU(PDU>0); +PDU(PDU<0)=0.800*PDU(PDU<0); PDU(PDU==0)=0.400; %PDU=10*ones(length(Loadi),1); QDU=QD0(Loadi); -QDU(QDU>0)=1.300*QDU(QDU>0); -QDU(QDU<0)=0.700*QDU(QDU<0); +QDU(QDU>0)=1.200*QDU(QDU>0); +QDU(QDU<0)=0.800*QDU(QDU<0); QDU(QDU==0)=0.400; % PF=0.85; % QDU=1.0*PD(Loadi).*sqrt(1 -PF.^2)./PF; diff --git a/FormLz.m b/FormLz.m index 48a736e..1f58ebc 100644 --- a/FormLz.m +++ b/FormLz.m @@ -4,13 +4,13 @@ KK=999; VoltL=(0.9)*ones(1,Busnum); %VoltL=-10*ones(1,Busnum); PDL=PD0(Loadi); -PDL(PDL>0)=0.700*PDL(PDL>0); -PDL(PDL<0)=1.300*PDL(PDL<0); +PDL(PDL>0)=0.800*PDL(PDL>0); +PDL(PDL<0)=1.200*PDL(PDL<0); PDL(PDL==0)=-0.400; %PDL=-10*ones(length(Loadi),1); QDL=QD0(Loadi); -QDL(QDL>0)=0.700*QDL(QDL>0); -QDL(QDL<0)=1.300*QDL(QDL<0); +QDL(QDL>0)=0.800*QDL(QDL>0); +QDL(QDL<0)=1.200*QDL(QDL<0); QDL(QDL==0)=-0.400; % QDL=0*PD(Loadi).*sqrt((1-PF.^2))./PF; t1=([PDL',QDL',VoltL])'; diff --git a/Lineloss.asv b/Lineloss.asv index 3132a3d..16e5eaa 100644 --- a/Lineloss.asv +++ b/Lineloss.asv @@ -1,10 +1,10 @@ %% 计算线损 -function Lineloss(Linei,Linej,Liner,Linex,Lineb2,Transi,Transj,Transr,Transx,k0,Volt,Angle) +function [dispLineloss dispTransloss]=Lineloss(Linei,Linej,Liner,Linex,Lineb2,Transi,Transj,Transr,Transx,Branchi,Branchg,Branchb,k0,Volt,Angle) %format long -fprintf('功率为有名值\n'); -fprintf('节点号\t节点号\t有功') -cmpVolt=Volt.*cos(Angle)+1i*Volt.*sin(Angle); -cmpVolt=cmpVolt'; +% fprintf('功率为有名值\n'); +% fprintf('节点号\t节点号\t有功损耗 MW\t无功损耗 MVar') +cmpVolt=Volt'.*cos(Angle')+1i*Volt'.*sin(Angle'); +% cmpVolt=cmpVolt'; y0=1i*Lineb2; %yj0=1i*standardinput(:,7); yij=1./(Liner+1i*Linex); @@ -13,16 +13,26 @@ Sij=cmpVolt(Linei).*conj( cmpVolt(Linei) .* y0 + ( cmpVolt(Linei)- cmpVolt(Line Sji=cmpVolt(Linej).*conj( cmpVolt(Linej) .*y0 + ( cmpVolt(Linej)- cmpVolt(Linei) ).*yij ); %Sij1==Sij2 deltLineS=Sij+Sji; + +%% 另一种计算方式begin +ss=1*(Volt(Linei)'.^2.*abs(yij).*cos( angle(yij) ) -Volt(Linei)'.*Volt(Linej)'.*cos( Angle(Linei)' - Angle(Linej)' - angle(yij)).*abs(yij)); +ss=(Volt(Linei)'.^2+Volt(Linej)'.^2).*abs(yij).*cos(angle(yij))-2*Volt(Linei)'.*Volt(Linej)'.*cos( Angle(Linei)' - Angle(Linej)').*cos( - angle(yij)).*abs(yij); +ss=Volt(Linei)'.*Volt(Linej)'.*abs(yij).*cos() +%% 另一种计算方式end dispLineloss=[Linei Linej real(deltLineS)*100 imag(deltLineS)*100]; %full(dispLineloss) -dispLineloss=sortrows(dispLineloss,-3); -full(dispLineloss) +% dispLineloss=sortrows(dispLineloss,-3); +full(dispLineloss); %% 以下是变压器损耗 yij=1./(Transr+1i*Transx); Sij=cmpVolt(Transi)./k0.*conj( ( cmpVolt(Transi)./k0- cmpVolt(Transj) ).*yij ); Sji=cmpVolt(Transj).*conj( ( cmpVolt(Transj)- cmpVolt(Transi)./k0 ).*yij ); deltTransS=Sij+Sji; +%% 接地支路损耗 +% 没有考虑变压器变比 +deltTransS =deltTransS+sum(cmpVolt(Branchi).*conj((cmpVolt(Branchi).*(Branchg+1j*Branchb)))); +%% dispTransloss=[Transi Transj real(deltTransS)*100 imag(deltTransS)*100]; -dispTransloss=sortrows(dispTransloss,-3); -full(dispTransloss) +% dispTransloss=sortrows(dispTransloss,-3); +full(dispTransloss); end \ No newline at end of file diff --git a/Lineloss.m b/Lineloss.m index 3af8837..f2c1428 100644 --- a/Lineloss.m +++ b/Lineloss.m @@ -3,8 +3,8 @@ function [dispLineloss dispTransloss]=Lineloss(Linei,Linej,Liner,Linex,Lineb2,Tr %format long % fprintf('功率为有名值\n'); % fprintf('节点号\t节点号\t有功损耗 MW\t无功损耗 MVar') -cmpVolt=Volt.*cos(Angle)+1i*Volt.*sin(Angle); -cmpVolt=cmpVolt'; +cmpVolt=Volt'.*cos(Angle')+1i*Volt'.*sin(Angle'); +% cmpVolt=cmpVolt'; y0=1i*Lineb2; %yj0=1i*standardinput(:,7); yij=1./(Liner+1i*Linex); @@ -13,6 +13,12 @@ Sij=cmpVolt(Linei).*conj( cmpVolt(Linei) .* y0 + ( cmpVolt(Linei)- cmpVolt(Line Sji=cmpVolt(Linej).*conj( cmpVolt(Linej) .*y0 + ( cmpVolt(Linej)- cmpVolt(Linei) ).*yij ); %Sij1==Sij2 deltLineS=Sij+Sji; + +%% 另一种计算方式begin +% ss=1*(Volt(Linei)'.^2.*abs(yij).*cos( angle(yij) ) -Volt(Linei)'.*Volt(Linej)'.*cos( Angle(Linei)' - Angle(Linej)' - angle(yij)).*abs(yij)); +% ss=(Volt(Linei)'.^2+Volt(Linej)'.^2).*abs(yij).*cos(angle(yij))-2*Volt(Linei)'.*Volt(Linej)'.*cos( Angle(Linei)' - Angle(Linej)').*cos( - angle(yij)).*abs(yij); +% ss=abs(yij).*cos(angle(yij)).*( Volt(Linei)'.^2+Volt(Linej)'.^2- 2*Volt(Linei)'.*Volt(Linej)' .*cos(Angle(Linei)' - Angle(Linej)') ); +%% 另一种计算方式end dispLineloss=[Linei Linej real(deltLineS)*100 imag(deltLineS)*100]; %full(dispLineloss) dispLineloss=sortrows(dispLineloss,-3); @@ -24,7 +30,8 @@ Sji=cmpVolt(Transj).*conj( ( cmpVolt(Transj)- cmpVolt(Transi)./k0 ).*yij ); deltTransS=Sij+Sji; %% 接地支路损耗 % 没有考虑变压器变比 -deltTransS =deltTransS+sum(cmpVolt(Branchi).*conj((cmpVolt(Branchi).*(Branchg+1j*Branchb)))); +deltTransS =deltTransS+cmpVolt(Branchi).*conj((cmpVolt(Branchi).*(Branchg+1j*Branchb))); +ss=Volt(Branchi)'.^2.*(Branchg) %% dispTransloss=[Transi Transj real(deltTransS)*100 imag(deltTransS)*100]; dispTransloss=sortrows(dispTransloss,-3); diff --git a/OPF.m b/OPF.m index 76f63d0..f41efec 100644 --- a/OPF.m +++ b/OPF.m @@ -4,15 +4,13 @@ clear %% 存在问题 % 变压器变比的位置没有考虑,由于现在用的变比都是1,所以没有影响。 20130123 %% -thesis=ForThesis(4,8); -for II=1:4 +thesis=ForThesis(1,45); +for II=1:1 [kmax,Precision,UAngel,Volt,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Linei,Linej,Transfori,Transforj,GenU,GenL,GenC,PG,QG,PD,QD,CenterA,PGi,PVQU,PVQL,Liner,Linex,Lineb,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0]= ... - pf('E:\算例\东际911_2751267_2012-09-05\newFIle20.txt'); + pf('E:\算例\柳金Ⅰ926_21671693_2012-09-06\newFIle20.txt'); %pf('D:\Project\青秀降损项目\最小化潮流\最小潮流算例\原始\津头站津视922(3-1)_0.5_120%.txt'); %pf('D:\Project\最小化潮流\最小潮流算例\仙海919.txt'); - %pf('c:/file31.txt'); - - + %pf('c:/file31.txt'); %% 计算功率因数 Loadi=QD~=0 | PD~=0; PF=sqrt(PD(Loadi).^2./(QD(Loadi).^2+PD(Loadi).^2)) @@ -53,17 +51,16 @@ for II=1:4 QD_NON_ZERO=QD(PD==0 & QD~=0); QD_NON_ZERO_IND=find(PD==0 & QD~=0); %% - Precision=Precision/10; - + Precision=Precision/1; %% 加误差 - PD0(Loadi)=PD0(Loadi).*(1+normrnd(0,0.05,length(Loadi),1)); - QD0(Loadi)=QD0(Loadi).*(1+normrnd(0,0.05,length(Loadi),1)); + PD0(Loadi)=PD0(Loadi).*(1+normrnd(0,0.5,length(Loadi),1)); + QD0(Loadi)=QD0(Loadi).*(1+normrnd(0,0.5,length(Loadi),1)); + load('0PD0.mat'); + load('0QD0.mat'); % PG0(PGi)=PG0(PGi).*(1+normrnd(0,0.01,length(PGi),1)); % QG0(PVi)=QG0(PVi).*(1+normrnd(0,0.01,length(PVi),1)); %% 读变压器容量 - %[noDataTransNum noDataTransCapacity noDataTransPowerFactor]=ReadNoDataTrans('C:/b/东际911_2751267_2012-09-05/iPso_东际911_2751267_2012-09-05_变压器无负载.txt'); noDataTransCapacity=0; - while(abs(Gap)>Precision) if KK>kmax break; @@ -87,7 +84,6 @@ for II=1:4 ddg=func_ddg(PGi,PVi,Busnum,RestraintCount,Loadi,PD,QD); %% 开始构建deltF deltF=func_deltF(PG,QG,PVi,PGi,wPG,wQG,wPD,wQD,PG0,QG0,PD0,PD,QD,QD0,Busnum,Loadi); - %% 形成方程矩阵 Luu=Init_U'.*Init_W'+Init_u*ones(RestraintCount,1); Lul=Init_L'.*Init_Z'-Init_u*ones(RestraintCount,1); @@ -136,12 +132,12 @@ PD(Loadi)=thesis.MeanPD(); QD(Loadi)=thesis.MeanQD(); PG(Balance)=thesis.MeanPG(); QG(PVi)=thesis.MeanQG(); -thesis.MaxDeviation(RealPG(Balance),RealQG(PVi),RealPD(Loadi),RealQD(Loadi)) -thesis.StatDeviation(RealPG(Balance),RealQG(PVi),RealPD(Loadi),RealQD(Loadi)) +thesis.MaxDeviation(PG0(Balance),QG0(PVi),PD0(Loadi),QD0(Loadi)) +thesis.StatDeviation(PG0(Balance),QG0(PVi),PD0(Loadi),QD0(Loadi)) % thesis.SqareDeviation(RealPG(Balance(1)),RealQG(PVi(1)),RealPD(Loadi),RealQD(Loadi)) thesis.SqareDeviation(PG0(Balance(1)),QG0(PVi(1)),PD0(Loadi),QD0(Loadi)) thesis.PercentOfPass(PG0(Balance(1)),QG0(PVi(1)),PD0(Loadi),QD0(Loadi)) -thesis.MaxBranchDeviation(Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0,Volt0,UAngel0,Volt,UAngel) +thesis.MaxBranchDeviation(Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0,Volt0,UAngel0,Volt,UAngel,'E:\算例\柳金Ⅰ926_21671693_2012-09-06\newFIle0.txt',PD0,QD0) thesis.StatBranchDeviation(Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,Transforx,Branchi,Branchg,Branchb,Transfork0,Volt0,UAngel0,Volt,UAngel) toc diff --git a/OPF_Init.asv b/OPF_Init.asv index 61a11ab..c0cfc2d 100644 --- a/OPF_Init.asv +++ b/OPF_Init.asv @@ -1,7 +1,7 @@ -function [Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wD,PD,PD0,QD,randPDind,Loadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD) +function [Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wPD,wQD,PD,PD0,QD,randPDind,Loadi]=OPF_Init(Busnum,Balance,PG,QG,Volt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,QD,PD) Loadi=find(QD~=0 | PD~=0); %Loadi=[1:Busnum]'; -RestraintCount=size(PVi,1)+size(PGi,1)+size(Loadi,1)*1+Busnum*1+1; %约束条件数,只放开一个QD +RestraintCount=size(Loadi,1)*2+Busnum*1; %约束条件数,放开所有QD t_Bal_volt=Volt(Balance); Volt=sparse(1*ones(1,Busnum)); Volt(Balance)=t_Bal_volt; @@ -15,19 +15,20 @@ tPU=sparse(GenU(:,2));% tQU=sparse(PVQU(:,1));% 无功上限 tPL=sparse(GenL(:,2));% 发电机有功下限 tQL=sparse(PVQL(:,1));% 无功下限 -PG(PGi)=(tPU+tPL)/2; -QG(PVi)=(tQU+tQL)/2; -wPG=1*ones(size(PGi,1),1); -wQG=1*zeros(size(PVi,1),1); +wPG=0; +wQG=0; %randInt=randperm(size(Loadi,1)); %randPDind=randInt(1:10); randPDind=0; -wD=1*zeros(size(Loadi,1),1); +wPD=1/.5^2*zeros(size(Loadi,1),1); +wPD(1:2:end)=0; +wQD=1/.5^2*ones(size(Loadi,1),1); +wQD(1:2:end)=0; %wD(randPDind)=0;%一些负荷不约束 %wD(7)=0; % wD(11)=0; -PD=1*PD0; +PD=0.5*PD0; %powerFacter=0.98; %QD=PD*sqrt((1-powerFacter^2)/powerFacter^2); -QD=QD0; +QD=.5*QD0; end \ No newline at end of file diff --git a/OPF_Init.m b/OPF_Init.m index b9fdfc6..6dfd73d 100644 --- a/OPF_Init.m +++ b/OPF_Init.m @@ -20,10 +20,10 @@ wQG=0; %randInt=randperm(size(Loadi,1)); %randPDind=randInt(1:10); randPDind=0; -wPD=0/.05^2*ones(size(Loadi,1),1); -% wPD([2 7])=0; -wQD=0/.05^2*ones(size(Loadi,1),1); -% wQD([2 7])=0; +wPD=1/.5^2*ones(size(Loadi,1),1); +% wPD(1:2:end)=0; +wQD=1/.5^2*ones(size(Loadi,1),1); +% wQD(1:2:end)=0; %wD(randPDind)=0;%一些负荷不约束 %wD(7)=0; % wD(11)=0;