|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
clc;
2 ]2 z. P; }3 s Y9 {clear;
k0 m. E6 A- x# m, Atic;$ H" Z8 S- x% m7 \% n6 S6 q( @
filename=uigetfile('*.*');; ~# x9 V" [, A' s0 K; v
a=textread(filename,'','delimiter',',','emptyvalue',0);%读取TXT文件
3 r( ?& ?3 Q3 M3 d8 ~ c=a(1,:); %平衡节点行数) }$ O7 q( E6 G
n=a(1,1); %节点数0 x! H# F6 f% C/ R
b=find(a(:,1)==0);2 X8 l% ?5 g: i
line=b(2)-b(1)-1; %线路共有行数
t+ j$ g! @8 ?3 ]' b! Y4 h i/ @ knum=b(1)+line; %线路结束行数
' k4 Z7 b: Q. V! r1 u lineblock=a(b(1)+1:knum,:); %线路的参数
% x/ L- Y/ `# V& U5 e; t) Q lineNo=lineblock(1:line,1); D( R9 Z" ]2 z$ ^$ \: t
linei=lineblock(1:line,2);' F% g2 n9 d2 M# d8 \
linej=lineblock(1:line,3);
: A' ~" J0 t% a3 v# T3 C4 I liner=lineblock(1:line,4);
1 i% I# w0 c( G2 g' ^ linex=lineblock(1:line,5);7 J4 z* n) ~6 J# ~- i
lineb=lineblock(1:line,6);
2 l1 d( Q0 J5 `8 E; ]8 t trans=b(3)-b(2)-1; %变压器共有行数- o- J6 P U! _7 G1 ?5 P5 N
k1=b(2)+1; %变压器开始行数 ; S8 d* e# A, {
k2=b(2)+trans; %结束行数
1 N$ b% M, v8 T0 }, q1 H. a0 k transblock=a(k1:k2,:); %变压器的参数! g+ U+ B9 ~) Q b/ F, j
transNo=transblock(1:trans,1); 0 a, H+ J, Q3 ^) J( C
transi=transblock(1:trans,2);4 ]% L k1 L) @3 p0 Y' T
transj=transblock(1:trans,3);( B0 f' h( F1 J6 k' K
transr=transblock(1:trans,4);8 z0 I- G7 t/ {1 M- n
transx=transblock(1:trans,5);' s: }( Q0 O6 Z
transk=transblock(1:trans,6);
7 n7 k' Q% _0 F# R) F- K# w* \ branch=b(4)-b(3)-1; %接地支路共有行数3 _; f d/ D& s7 k) a% l; R
k3=b(3)+1; %接地支路开始行数
1 Y; o9 F3 l" x7 P k4=b(3)+1+branch; %结束行数 D8 T) `0 L9 G7 v( b
branchblock=a(k3:k4,:); %接地支路参数 | r" Q* {& r! `
branchNo=branchblock(1:branch,1);' y2 v* Y& |4 A9 ^3 W
branchi=branchblock(1:branch,2);
/ `" m: A& L' e9 }: o branchg=branchblock(1:branch,3);' d! s0 g6 F. V* K6 ` p# n
branchb=branchblock(1:branch,4);
4 X6 ]% d) I; h. n5 y& g# D power=b(5)-b(4)-1; %节点功率共有行数: ^( K" O' e+ Q
k5=b(4)+1; %节点功率开始行数 ( B* O8 I5 q# z: g
k6=b(4)+power; %结束行数
6 v( z( b* J8 u, F powerblock=a(k5:k6,:); %节点功率参数 3 j. S% s- h( e3 D) B3 h
powerNo=powerblock(1:power,1);
, U* Q5 ~1 u3 [, r PQi=powerblock(1:power,2); %powi
- u# F, p- M) T m+ o; c# \$ U PG=powerblock(1:power,3); %powpgi
' \8 P: P- W# j6 ^7 ^ C7 S! j QG=powerblock(1:power,4); %powqgi* h, i" q/ C& ?1 W
PD=powerblock(1:power,5); %powpdi) N( m: M* l+ X! Y& A: ?
QD=powerblock(1:power,6); %powqdi
, w; c$ N. D* b: p) E PV=b(6)-b(5)-1; %PV节点共有行数
8 T7 V3 t. [, Q7 b+ z$ P& Z k7=b(5)+1; %PV节点开始行数
) l& M: N5 [0 [2 ^3 f k8=b(5)+PV; %结束行数2 i+ Q$ P1 {0 ^6 K }/ ^7 m
PVblock=a(k7:k8,:); %PV节点参数0 E: ?6 t: m2 W
PVNo=PVblock(1:PV,1);5 M4 |2 ~2 y3 [8 |$ `# F6 q
PVi=PVblock(1:PV,2);) x/ N0 W# b1 p) J2 F
PVV=PVblock(1:PV,3);
$ F# f; I0 ^' M PVqmin=PVblock(1:PV,4);
! L% D( K! Z. }0 l3 {) g- ] PVqmax=PVblock(1:PV,5);, S0 h! Z5 \9 }0 n5 @/ ~2 C0 i4 R
clear a; a! L: R# h/ m- _0 n( ~; G
G=zeros(n,n);
4 W% R) a( n% I! h$ w. |4 _ B=zeros(n,n);
, k8 [0 t _/ n' ^& s7 |, c; v for k=(1:line); %线路导纳矩阵
2 U9 b. v; K9 h i=linei(k);4 W0 q0 ^6 G& O1 A( K6 w
j=linej(k);! C9 s1 c: }3 T: x
r=liner(k);! {7 }1 e* D( w/ k) Z
x=linex(k);
6 _ \3 Q- Y, Y1 w5 |* ~ b=lineb(k);! Z7 h' G' E+ I% f c9 b
GIJ=r/(r*r+x*x);' e( R" P( u7 \( G" t2 a# Y" r! _& g5 Y
BIJ=-x/(r*r+x*x);
! ~* O: J- @' m9 T7 d4 E# | G(j,i)=-GIJ;
- f' p ^! j) n' h$ }1 t) q1 a G(i,j)=-GIJ;
3 K% d. V' c( }" u8 [0 r3 a( U& H B(j,i)=-BIJ;
' c) z) x% i2 a0 u8 R6 Q B(i,j)=-BIJ;* c6 d5 T) p% W8 I
b=lineb(k);
8 V8 N: d- g, A4 d: o7 O% A* F G(i,i)=G(i,i)+GIJ;
1 v4 X; i+ @3 S c H! ?: z$ @ B(i,i)=B(i,i)+BIJ+b;2 K- v; Y" k1 v6 H- G$ X
G(j,j)=G(j,j)+GIJ;
! O: J- e7 [# [5 } e B(j,j)=B(j,j)+BIJ+b;
+ [5 B2 `# V- d) ?3 Q' `$ P end
6 {! W0 J' X& K- b- H3 ^ O9 ~2 q$ Q" H for k=(1:trans); %变压器导纳矩阵
6 T3 Q4 ^$ t+ A6 T* b4 h# p; ^; ? i=transi(k);3 a- f! Y; j, l/ p, Z8 } U
j=transj(k);: ^! J3 e# L, H1 _+ Y( ]6 P
r=transr(k);; @; O- M7 I: a; J
x=transx(k);; m# F/ V3 k; I: E) u
j=transj(k);" y0 T. l+ {' a: e- Y. \, h& ^
k0=transk(k);
7 j9 v, {0 T3 T4 d+ {0 e0 l GIJ=r/(r*r+x*x);. R. k$ Z: w5 \9 ^/ l g
BIJ=-x/(r*r+x*x);6 p& d X/ E) U% m4 Y1 [, a: T# Y
G(i,j)=-GIJ/k0;
# G% T7 S5 u, m1 d" t G(j,i)=G(i,j);
# Z7 l- \5 v& S- A L2 | B(i,j)=-BIJ/k0;$ U; D- D I& d" u' T
B(j,i)=B(i,j);! Y( q$ e/ M3 C. O& P8 D7 b5 W
G(i,i)=G(i,i)+GIJ/k0/k0;5 N: f; h) P& c I2 m4 ^ f3 g a$ M$ j
B(i,i)=B(i,i)+BIJ/k0/k0;
; J7 r# T6 i* f1 z% B G(j,j)=G(j,j)+GIJ;3 M3 d' f$ e9 r
B(j,j)=B(j,j)+BIJ;: k# k" K: K# x/ t% n
end6 _ m u( C; {2 g8 U# H, r
for k=(1:branch); %接地支路导纳矩阵
& i/ M* I9 J* `5 y. t7 _' x i=branchi(k); ^& d9 x) f" i3 {
G(i,i)=G(i,i)+branchg(k);
, B9 _1 a3 g, n) H' r B(i,i)=B(i,i)+branchb(k);6 t( O( @+ e5 @& r
end3 M7 Q/ m" D! D6 `; M( T3 Q( D' ~* q+ q
Y=sparse(zeros(n,n));
5 _+ ^& `4 k& u3 u A=sparse(zeros(n,n));! f: u w1 x* D2 I: h. @3 Y
clear j;0 {( _, ~+ G) k8 D$ D! r; A
X=G+j*B;
. x( c0 x% O5 J. d5 [# `, ?# VX=sparse(X);
4 `) K* ^2 m! P0 QY=(abs(X)); %导纳矩阵完成3 ?6 T/ a" p q0 O5 E
A=angle(X); %相角; \- F) |) N4 u/ ], L& S( E6 s3 ]
dp=sparse(PQi,1,(PG-PD)./100,n,n); %节点注入有功功率
# A3 E# b$ w& o* Gdq=sparse(PQi,1,(QG-QD)./100,n,1); %节点注入无功功率) `& K7 b# S5 m: J
V0=sparse(ones(1,n)'); %节点电压大小初值3 [% L1 w0 p# u
VA=sparse(zeros(n,1)); %相角初值
# c5 m( Q: u) I7 AV0(c(2))=c(3); %平衡节点电压/ z* |+ A9 K! P8 G
V0(PVi)=PVV; %pv节点电压7 K% c5 i9 D6 n; W$ V( K6 H$ }
ee=1; %精度3 | p/ h5 T6 e3 V: x0 u; l
k=1; %迭代次数5 r& P; m, `* m) ~
while(ee>c(4)&&k<20)
' D( A u$ g- Z, `" rij=repmat(VA,1,n)-repmat(VA',n,1)-angle(X); %角# t3 g5 C) X# _0 t- }
V=V0.*(cos(VA)+j*sin(VA)); %节点电压复数形式( g2 ^- p8 H; t, {0 s
delt0=conj(X*V);
9 S4 }3 I' G" v8 ~0 Zdelt1=V.*delt0; %代入节点电压求出的功率
, ]* p6 ]- O# R" m+ J6 edeltp=dp-real(delt1); %有功修正量
) ?4 s8 S [0 b8 F; p# c: ^. h. Zdeltq=dq-imag(delt1); %无功修正量' a% ~: _- Q d, d* j+ z
deltp(c(2))=0; %有功修正量(处理平衡节点)
6 N- O2 |# X5 g) V7 d1 i( p, V; s! Rdeltq(c(2))=0; %无功修正量(处理平衡节点)
3 H2 n+ V3 H4 y3 S' z- R5 Cdeltq(PVi)=0; %无功修正量(处理pv节点)3 L: c" S- ]/ {7 z1 k! P- a9 v# }
delt=[deltp;deltq]; %p,q修正量数组
% \: e" k0 h! B" h- [ x8 Zh=diag(diag(V0)*(Y.*sin(ij))*V0)-diag(V0)*(Y.*sin(ij))*diag(V0); % g+ j5 D" [! P. T5 n# K% J+ h
nn=-diag(V0)*(Y.*cos(ij))-diag((Y.*cos(ij))*V0); %n矩阵8 [* v! [8 A8 p* Q5 [$ x
jj=-diag(diag(V0)*(Y.*cos(ij))*V0)+diag(V0)*(Y.*cos(ij))*diag(V0);
5 s5 H8 b3 f4 M6 |l=-diag(V0)*(Y.*sin(ij))-diag((Y.*sin(ij))*V0); v: h7 ?8 l/ z% u2 }2 _
%雅克比矩阵完成
5 }9 K {: e' H& knn(:,PVi)=0; %处理pv节点
+ ~: y4 \3 R+ p* Hjj(PVi,:)=0; %处理pv节点
$ \* I, i" H2 ~- ]& w6 Yl(PVi,:)=0; %处理pv节点& j0 q: c' q, O( A2 |0 u: D
l(:,PVi)=0; %处理pv节点
6 f3 v- c/ A. B) }% j1 G7 Dl=l+sparse(PVi,PVi,1,n,n); %形成l! [4 F! _0 i% \5 P& O! w
ykb=[h nn;jj l]; %初步形成雅可比矩阵' ~& X; e& H% Q3 [
ykb(c(2),:)=0; %处理平衡节点a
L {5 a/ n% h/ ]2 pykb(:,c(2))=0; %处理平衡节点a
6 a) s+ B& g% {2 l; O) oykb(c(2),c(2))=1; %处理平衡节点a0 |' K7 m* y+ b9 X8 I$ M- ?$ ?
ykb(c(2)+n,:)=0; %处理平衡节点v
/ Y# K- ]" @/ ]0 ]% |ykb(:,c(2)+n)=0; %处理平衡节点v1 o% ]8 @: D8 g* F, S8 ^
ykb(c(2)+n,c(2)+n)=1; %处理平衡节点v% Q. L: a3 B+ m: ?" h
jie=ykb\delt;& m/ U p8 l$ T: s
delta=jie(1:n); %相角修正量. a; P1 u0 H9 Q+ ?, D
deltv=jie((n+1):2*n); %电压大小修正量
: l- A9 [6 E$ M9 U' I6 h# D2 J% ]VA=VA-delta;
: _% V. q9 A* C6 eV0=V0-deltv;
, H& V' u) |- C7 I+ @: hee=max(abs(deltv))0 y9 g. e* q0 q6 [, x8 W$ l
k=k+1;" s* t- H: `3 s
end
4 q* l& X' \ w# k Q- KVA=VA.*180./pi %相角
( e$ ~" ?$ P+ j7 `! @V0 %电压幅值
- s* Z P: p( E, Y0 Itoc;( Y( |6 T4 F* S7 d" D- D% j
求解释,求解答,改了很多次都没用: ~9 }3 I6 m8 _( z
??? Error using ==> minus% \8 W# i1 q& k5 L% S
Matrix dimensions must agree./ A$ |9 g1 {8 v
Error in ==> liweiming2 at 122# L5 N5 r2 @ Y* D) p
deltp=dp-real(delt1); %有功修正量 |
|