|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
clc;9 L% y- P6 j q- _4 x, O8 [
clear;
) N% C* T: @1 y. ~+ Itic;3 c7 u m7 S/ N1 ~1 I
filename=uigetfile('*.*');
- H8 M z3 E. Y a=textread(filename,'','delimiter',',','emptyvalue',0);%读取TXT文件
2 p/ _- D, ~: G3 d8 C c=a(1,:); %平衡节点行数0 k* p) ^8 R+ G- z0 c
n=a(1,1); %节点数/ I9 g T% l( H2 a
b=find(a(:,1)==0);
1 y' l9 j: ^- s; d+ I, P- z# X line=b(2)-b(1)-1; %线路共有行数
S& I- Y8 J7 V1 {3 j: _2 F$ _4 t knum=b(1)+line; %线路结束行数& N( |8 V+ y1 ]# v8 q
lineblock=a(b(1)+1:knum,:); %线路的参数
4 A6 _% t: f; x: @ lineNo=lineblock(1:line,1);
) v! `3 D) b; t) d linei=lineblock(1:line,2);
, ^4 G, u% E7 N& h8 m- h6 ] linej=lineblock(1:line,3);
+ | V* h# M5 o2 x* F2 t liner=lineblock(1:line,4);
4 X* v7 b# [" j8 U# I2 G5 D linex=lineblock(1:line,5);
n; S* q* Q# r lineb=lineblock(1:line,6);
| j5 R9 r2 y8 O( i4 X0 c trans=b(3)-b(2)-1; %变压器共有行数/ ?$ r8 G+ V) o3 q
k1=b(2)+1; %变压器开始行数
. H" o0 D+ L7 z: H2 o k2=b(2)+trans; %结束行数 {* V8 \. ~4 r! ~
transblock=a(k1:k2,:); %变压器的参数: `* O' n. g! M! C9 t' m
transNo=transblock(1:trans,1);
% S$ I( U* @; ^0 b* n: ` transi=transblock(1:trans,2);
7 T% X8 B- k% Z transj=transblock(1:trans,3);3 A( Y- f4 z! z6 L
transr=transblock(1:trans,4);
% b. M" X8 \2 c transx=transblock(1:trans,5); K( _ m; Z% O u& j' B0 d
transk=transblock(1:trans,6);
8 i ^1 S* n1 Q% {& |. C5 `0 ? branch=b(4)-b(3)-1; %接地支路共有行数6 v; [5 o! x% }9 T
k3=b(3)+1; %接地支路开始行数; V6 q, I9 h" d
k4=b(3)+1+branch; %结束行数 9 \, }) j4 O8 d/ P
branchblock=a(k3:k4,:); %接地支路参数" c! w# }- O* O v6 c# Q$ l
branchNo=branchblock(1:branch,1);
; _$ G5 A! N0 r% M: i* S& ^, {% A branchi=branchblock(1:branch,2);
3 B: W$ z6 S$ r3 n branchg=branchblock(1:branch,3);4 W1 H* t" M( s* t0 Y v5 @
branchb=branchblock(1:branch,4);
4 E+ h! |8 z$ N! D; } power=b(5)-b(4)-1; %节点功率共有行数
; B3 I/ P- @9 R4 l k5=b(4)+1; %节点功率开始行数 3 {# l' j9 ]9 p, S
k6=b(4)+power; %结束行数
9 q( @# [- x* w9 s5 S0 L powerblock=a(k5:k6,:); %节点功率参数 ' e8 Y. O3 h, Q: W
powerNo=powerblock(1:power,1);
" P0 i# S4 p) B PQi=powerblock(1:power,2); %powi' D# _" J+ Y! i
PG=powerblock(1:power,3); %powpgi9 b; P- i* n2 M$ P9 ?" N
QG=powerblock(1:power,4); %powqgi! V. ]- m! d( ?9 d
PD=powerblock(1:power,5); %powpdi' i- m# C& @" x1 x9 s
QD=powerblock(1:power,6); %powqdi
; Z3 Y8 h* m0 q! B. ~/ Q' P PV=b(6)-b(5)-1; %PV节点共有行数
6 N6 G7 j, B9 \, Z3 `1 W% ? k7=b(5)+1; %PV节点开始行数5 E: T, I1 v- Q) l* j* X1 J( ]
k8=b(5)+PV; %结束行数
5 F$ E- K' {; u4 c! d2 n PVblock=a(k7:k8,:); %PV节点参数$ z! b) G; m: M& |0 o9 u- g
PVNo=PVblock(1:PV,1);9 e' v% ^' h- P; s
PVi=PVblock(1:PV,2);
! H) B& @0 K2 g- z! P PVV=PVblock(1:PV,3);
+ K: E5 N. Y+ U& a4 _$ I! V! } PVqmin=PVblock(1:PV,4);
& n7 | i" P- ` y0 z, H2 [; b PVqmax=PVblock(1:PV,5);5 y1 k5 \% l$ Z u/ a( S9 ~8 X
clear a;
) m) X6 E8 B3 p) E2 ` G=zeros(n,n);
9 `2 {- A9 V' f* H" h B=zeros(n,n);8 O6 e& S: \# n- @& O7 e- P) g
for k=(1:line); %线路导纳矩阵4 ?( v6 D' Q! y ?! t8 C
i=linei(k);
1 [1 u1 e( }) ~, G0 a6 v8 X j=linej(k);
- ]( f7 l4 B n$ L r=liner(k);
/ P' }4 s; y# M. `9 W. _ x=linex(k);
: A9 T; f; ?+ ?8 l. y+ O9 r: N b=lineb(k);
5 S; j: w+ E A9 z* r% b& t7 j$ H4 T GIJ=r/(r*r+x*x);
# g! o* q; p: b" G% t0 A9 p BIJ=-x/(r*r+x*x);3 x8 h+ G) W8 q
G(j,i)=-GIJ;
' A1 v# h0 E2 b G(i,j)=-GIJ;7 @$ z; J) Y i
B(j,i)=-BIJ;- ~/ }- O% _+ T
B(i,j)=-BIJ;
- S5 X( n* g ^ b=lineb(k);. d8 }+ L4 N4 [( ?' s
G(i,i)=G(i,i)+GIJ;( Q Y+ ?7 C2 k' c- B5 c/ z/ A A
B(i,i)=B(i,i)+BIJ+b;" i! @0 B' V1 q k
G(j,j)=G(j,j)+GIJ;
0 T; X4 \4 I) t' J B(j,j)=B(j,j)+BIJ+b;
, N3 c7 F1 t' E7 m8 }9 Y/ ~# Q end
( Q! q& ]3 B& v6 j for k=(1:trans); %变压器导纳矩阵% [* \- X4 D" T/ U% o0 C6 m
i=transi(k);
4 x+ t9 s; E% R$ Q6 H j=transj(k);, Q8 x! G, [2 Z6 V
r=transr(k);
7 G- P2 g8 ]5 K' W5 w$ f9 V x=transx(k);
2 f. g: O$ K. m- z j=transj(k);% J, t. w9 Z; U6 s
k0=transk(k);
% r( u$ n. w" K8 [" T( J6 Q GIJ=r/(r*r+x*x);
8 q, a2 Y% L3 d6 H! ^, g# }1 A4 ?& ~ BIJ=-x/(r*r+x*x);
' {( a7 p1 \1 E" o G(i,j)=-GIJ/k0;! c& H6 |# C& @ x! M$ A1 y ~
G(j,i)=G(i,j);- t6 o- V' B/ j0 y8 l
B(i,j)=-BIJ/k0;
: N; | K( v) V& q B(j,i)=B(i,j);
; | ~( _/ C: i# C5 l G(i,i)=G(i,i)+GIJ/k0/k0;' X# S' J( D' a, |& ], n
B(i,i)=B(i,i)+BIJ/k0/k0;
! s" m5 z. ~. k2 j/ x G(j,j)=G(j,j)+GIJ;
; F$ ^) F( X: J# m: q B(j,j)=B(j,j)+BIJ;
9 C" A4 V7 S: M R6 p% ]1 u0 S end
# A( `' w) u0 q& R+ b/ Y/ r+ i for k=(1:branch); %接地支路导纳矩阵
+ q# [3 o2 k( \6 I9 t1 w) u) b i=branchi(k);
+ J3 q0 y. m3 y5 y+ c9 M- V G(i,i)=G(i,i)+branchg(k);5 P3 k! F2 h' H5 B' H# K, _ v
B(i,i)=B(i,i)+branchb(k);
( f) y+ b6 M3 Y5 [ end
/ }: j5 L- p/ Q/ P: N X7 k) u Y=sparse(zeros(n,n));6 ?) H. S1 T+ `' S9 a- |. M, Z
A=sparse(zeros(n,n));
) i4 w6 t2 N% i5 x4 f8 c: h' k clear j;+ C, j. Z3 o* ~0 M6 i. q
X=G+j*B;
& @. c# L6 d. K0 D' h( QX=sparse(X);
; H4 S6 M' }+ d, v5 uY=(abs(X)); %导纳矩阵完成
* N6 N# ]! u' IA=angle(X); %相角
$ I6 y% Y( w4 h9 ]- Udp=sparse(PQi,1,(PG-PD)./100,n,n); %节点注入有功功率* {7 x( M. ]2 J( {, Y- Z A
dq=sparse(PQi,1,(QG-QD)./100,n,1); %节点注入无功功率6 Q$ n3 Q1 y( f* K
V0=sparse(ones(1,n)'); %节点电压大小初值
7 f0 O+ T* Y- H5 m. T) ~VA=sparse(zeros(n,1)); %相角初值) [* L( }! W! w0 w+ @* e
V0(c(2))=c(3); %平衡节点电压) r9 I5 o* q1 W- g/ v
V0(PVi)=PVV; %pv节点电压
( C2 }/ r% ~6 B3 h3 jee=1; %精度
- \) B) i2 T3 O9 }0 `8 O9 ]1 V3 Kk=1; %迭代次数, |9 l' A8 U* `+ T8 u9 z
while(ee>c(4)&&k<20)
/ J2 ]- x) F' v* Hij=repmat(VA,1,n)-repmat(VA',n,1)-angle(X); %角, Q! ~% f3 E: p7 K& j& o
V=V0.*(cos(VA)+j*sin(VA)); %节点电压复数形式+ C: h Z) N+ I$ w) m$ F; z9 \
delt0=conj(X*V);
/ e* P" r& C! l$ M- S! ]7 o. p3 Pdelt1=V.*delt0; %代入节点电压求出的功率
3 H" O, b) N5 y/ M- w, }! I) udeltp=dp-real(delt1); %有功修正量
; B6 J) r! J: g6 w( |- ^. x1 l4 ideltq=dq-imag(delt1); %无功修正量
8 Q1 j. J' m. z# P) tdeltp(c(2))=0; %有功修正量(处理平衡节点)9 w1 F+ U; d& Y! m9 n
deltq(c(2))=0; %无功修正量(处理平衡节点)
6 s+ b: y4 A: P9 @deltq(PVi)=0; %无功修正量(处理pv节点)
8 t+ i4 q6 w) l5 _/ w" Ndelt=[deltp;deltq]; %p,q修正量数组 P( A9 m5 n9 l7 @
h=diag(diag(V0)*(Y.*sin(ij))*V0)-diag(V0)*(Y.*sin(ij))*diag(V0); 8 v R; n) P5 p
nn=-diag(V0)*(Y.*cos(ij))-diag((Y.*cos(ij))*V0); %n矩阵
( {2 H, }8 F, }$ Ljj=-diag(diag(V0)*(Y.*cos(ij))*V0)+diag(V0)*(Y.*cos(ij))*diag(V0);
- l* X6 q$ ^0 e: kl=-diag(V0)*(Y.*sin(ij))-diag((Y.*sin(ij))*V0);
0 ~) o! v! P3 x6 }" a# Q0 h. M# @%雅克比矩阵完成
; t o; Q) \9 a1 xnn(:,PVi)=0; %处理pv节点% I% s2 A1 x3 ~) y! s
jj(PVi,:)=0; %处理pv节点
3 a; Z- G8 N( ul(PVi,:)=0; %处理pv节点/ [: M" y8 v' f* v1 ^2 J
l(:,PVi)=0; %处理pv节点
3 I) D! B+ c! s2 Z) Sl=l+sparse(PVi,PVi,1,n,n); %形成l
8 \2 C* d, ^ ? Y+ U+ T D; |ykb=[h nn;jj l]; %初步形成雅可比矩阵5 X$ r3 E& v( G4 w
ykb(c(2),:)=0; %处理平衡节点a
+ b% n" v4 \4 g1 Q4 ?ykb(:,c(2))=0; %处理平衡节点a
' i1 E% U& p1 ~ykb(c(2),c(2))=1; %处理平衡节点a
% H: ^3 o! e5 G9 j5 p" w3 ?& Cykb(c(2)+n,:)=0; %处理平衡节点v/ N6 O8 R2 R3 ^) h. O. R
ykb(:,c(2)+n)=0; %处理平衡节点v
: ]0 g, I( i& W( E1 Y$ |ykb(c(2)+n,c(2)+n)=1; %处理平衡节点v6 {+ s4 m$ s0 Z7 U
jie=ykb\delt;
8 h4 O: n8 Y' ?1 E& P3 Z% ~delta=jie(1:n); %相角修正量
$ C$ r; y. v4 C2 ^3 b8 c4 D) `deltv=jie((n+1):2*n); %电压大小修正量# w$ r( b- g6 |8 ^8 U$ N
VA=VA-delta;
8 T& Q3 X- Y! S& E% kV0=V0-deltv;
# X: p- P% i; K' ~ee=max(abs(deltv))
3 L& X" b6 o; N9 h- qk=k+1;4 ]' |2 y2 H* A& k; Q
end3 g' X5 X' ]# a$ `
VA=VA.*180./pi %相角
8 O2 M* x' V. X# P! W: {* |V0 %电压幅值, {% u5 ]; V: d0 l1 P7 f
toc;
) X' a# `# F7 C5 [+ I; D求解释,求解答,改了很多次都没用
0 a1 v5 t$ o9 Y! [4 S5 F??? Error using ==> minus
# _; a' u$ i- u- YMatrix dimensions must agree.
9 q+ ^7 Y& n5 ~* VError in ==> liweiming2 at 122, O7 U. b; h" b5 R5 C
deltp=dp-real(delt1); %有功修正量 |
|