|
|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
clc;/ m* D1 [$ p, e+ Z! D
clear;. v4 |$ v C/ l* N
tic;$ o% F1 e$ K" G8 B; x
filename=uigetfile('*.*');+ {6 E) s* D. n3 d/ A3 C
a=textread(filename,'','delimiter',',','emptyvalue',0);%读取TXT文件
/ e6 i: ~. j9 L c=a(1,:); %平衡节点行数
" R8 }6 }, ^: R2 |. T5 ` n=a(1,1); %节点数
, g- ~% o' z( i, s+ M5 U$ M b=find(a(:,1)==0);/ M, j; d! k" e' C
line=b(2)-b(1)-1; %线路共有行数, @6 A* Z7 R$ |% {1 c1 y
knum=b(1)+line; %线路结束行数& d' e# c" V4 l/ a V
lineblock=a(b(1)+1:knum,:); %线路的参数# L! h% A. Y8 Z
lineNo=lineblock(1:line,1);* y' P* d$ V- W' k9 T: ]- I3 T& H
linei=lineblock(1:line,2);
% M* z3 B% L3 o% U" @( E1 i% L linej=lineblock(1:line,3);
) k8 U' C- F) t- A5 F# l! N# h liner=lineblock(1:line,4);
Y6 p3 f2 o m; R( G linex=lineblock(1:line,5);
5 x3 J" J ]. `1 q lineb=lineblock(1:line,6);# b% T* Y; a# n v6 N" S
trans=b(3)-b(2)-1; %变压器共有行数
$ S) d3 d) e8 T- w& U1 y( g k1=b(2)+1; %变压器开始行数 0 k# [+ N- q& R* l- z
k2=b(2)+trans; %结束行数
% E( q% C" \: j" u* q6 b. B/ u1 F transblock=a(k1:k2,:); %变压器的参数
$ h9 o, }; D; }5 V transNo=transblock(1:trans,1);
9 y% \, W1 k$ N, h) z! ] transi=transblock(1:trans,2);! z/ X9 {3 c7 d' b
transj=transblock(1:trans,3);
" L: Z/ Q: c; Y0 \ transr=transblock(1:trans,4);. B4 h+ w( R$ K) q/ ^5 D! l6 K2 m
transx=transblock(1:trans,5);# o8 D/ ]6 z! B. H% }
transk=transblock(1:trans,6);
# |3 F' R- ?3 E( I5 \ branch=b(4)-b(3)-1; %接地支路共有行数& y: ]3 f" G d8 y t: ^/ e
k3=b(3)+1; %接地支路开始行数
( J \0 i v0 I: F4 P& t: i k4=b(3)+1+branch; %结束行数
# [* q+ j, M4 i' R7 d/ A branchblock=a(k3:k4,:); %接地支路参数
. O/ ]$ Z; p! S/ A! w e branchNo=branchblock(1:branch,1);3 w* R7 B& f% o8 q6 K; X
branchi=branchblock(1:branch,2);
; ~& j" I3 ^: L. `( ~ branchg=branchblock(1:branch,3);
/ |6 z- b3 |! n branchb=branchblock(1:branch,4);9 X4 a, _# t4 f4 I7 Z1 g* B' X
power=b(5)-b(4)-1; %节点功率共有行数
2 S0 Q, s: S7 S: \, ~ k5=b(4)+1; %节点功率开始行数
) C+ l( B# H e* S1 l/ { k6=b(4)+power; %结束行数
- M, h0 J% I5 r- m) f5 |( N powerblock=a(k5:k6,:); %节点功率参数 6 X! i/ R1 D5 |+ V4 _! r. ^
powerNo=powerblock(1:power,1);
( r- r, c$ q6 c PQi=powerblock(1:power,2); %powi
1 L0 R. v9 ^2 _; ^: i% F. D PG=powerblock(1:power,3); %powpgi
3 v+ _( y: P6 n" r: t' r; s- t0 ?* n QG=powerblock(1:power,4); %powqgi4 u& \ [$ o f5 t# G9 n
PD=powerblock(1:power,5); %powpdi# J# b; ?* ~" a" I- U
QD=powerblock(1:power,6); %powqdi. b' X; b, O, b
PV=b(6)-b(5)-1; %PV节点共有行数9 w# B, [& S. P2 T' c+ Z6 M
k7=b(5)+1; %PV节点开始行数, q* E# R( w: @% X7 w# u- W( k& f
k8=b(5)+PV; %结束行数
# y& S8 Z8 t+ Q# a. u) U1 O+ w7 H- U; K PVblock=a(k7:k8,:); %PV节点参数
* o4 F; p0 |* B, D0 p3 L PVNo=PVblock(1:PV,1);" K% c9 c W1 M- Y4 @) M* n
PVi=PVblock(1:PV,2);
7 |/ @2 i4 U; i PVV=PVblock(1:PV,3);
, H1 S, w9 A! N4 d$ ?# p% } PVqmin=PVblock(1:PV,4);/ H. p- Z+ G; [$ d
PVqmax=PVblock(1:PV,5);4 {/ [" L6 X+ m( z, I* S3 {
clear a;
- d+ |9 @: k) O4 Y3 r1 K G=zeros(n,n);3 V8 I4 z0 y2 M& A
B=zeros(n,n);. [, c* v) b E
for k=(1:line); %线路导纳矩阵, ], a D: N% V: T7 U0 [0 w, O
i=linei(k);
$ e* ~: M; v. `- g, ` j=linej(k);
. G2 l. n$ ~- a: M* u r=liner(k);; l5 t C1 q4 y9 N* R7 o0 B$ X
x=linex(k);" n. J" z8 h) B( j# i3 I! H; Q
b=lineb(k);) i, `) _* @( ?2 @+ ]( j0 g" v
GIJ=r/(r*r+x*x);$ [" m; C' K6 F9 q
BIJ=-x/(r*r+x*x);$ \; ^ H' m) u
G(j,i)=-GIJ;
9 M, k) Q2 }' ]+ {0 T G(i,j)=-GIJ;' E- H3 }: R+ _/ }
B(j,i)=-BIJ;
8 A; G8 s1 Y, x V4 n9 n' V B(i,j)=-BIJ;
7 G; \; F% p* `3 j3 u2 A b=lineb(k);0 j0 R9 _3 r) q" y% K
G(i,i)=G(i,i)+GIJ;' N) l3 D+ W \5 L- F% g1 O6 `
B(i,i)=B(i,i)+BIJ+b;8 }- ? R5 z( ^& \
G(j,j)=G(j,j)+GIJ;/ ?; {% N. ]8 G( j
B(j,j)=B(j,j)+BIJ+b;
9 O) v$ h; @1 M. L" G2 \ end7 e6 S N( m8 K1 _% N
for k=(1:trans); %变压器导纳矩阵3 h" M! l' I/ e# v! ?3 c4 K+ f
i=transi(k);
1 s* ?; o6 Z% B I* i# z0 s j=transj(k);. _, z; O! ^4 e- y& X9 B
r=transr(k);
+ F( {+ C; A$ R5 x' @ x=transx(k);" h) Q7 ~4 l% a' [& q% X: [+ f
j=transj(k);
: N2 }2 `8 m" B k0=transk(k);
, F# r9 g" e" ?' H" E {# ` GIJ=r/(r*r+x*x);3 |9 J# |$ h) W) ?0 o2 B
BIJ=-x/(r*r+x*x);& x$ H# d$ n" }9 c5 N- {8 ~, X& H
G(i,j)=-GIJ/k0;
3 H* D9 G7 }/ J$ O G(j,i)=G(i,j);
1 l' v+ s/ [: u, z$ B! m B(i,j)=-BIJ/k0;
, [7 Q3 U" P2 C- ~# [' [ B(j,i)=B(i,j);& i, X, w ?5 |7 o
G(i,i)=G(i,i)+GIJ/k0/k0;! U5 u& n4 v Q5 l, a/ D8 Y
B(i,i)=B(i,i)+BIJ/k0/k0;
! E! q- J4 q; j G(j,j)=G(j,j)+GIJ;& m& E2 H0 @$ q" A9 [9 D) c# ]
B(j,j)=B(j,j)+BIJ;
5 o& \0 x4 r% h( L$ ~ end" Y9 }) ~( y7 V* x4 Z. ?$ a
for k=(1:branch); %接地支路导纳矩阵
4 k& h. t- ^+ p8 k: q i=branchi(k);
1 A% _4 L- J" X( X. e9 t) X' ? G(i,i)=G(i,i)+branchg(k);
7 t5 @2 A- { t7 Y; L% C) a B(i,i)=B(i,i)+branchb(k);( e( p# _; h: Z6 K% `0 g
end2 A& { N2 R# G0 G. L
Y=sparse(zeros(n,n));
! h) M5 z9 x0 k0 T8 _) f A=sparse(zeros(n,n)); r1 m4 z. _2 L5 v
clear j;$ r: ~2 M% w4 C/ u8 r. }) o
X=G+j*B; 4 K1 v+ U. h4 M& Z- ?4 P O( K
X=sparse(X);
7 [- z6 K8 ^- }, SY=(abs(X)); %导纳矩阵完成
* [# p* i. I: e: b. w2 NA=angle(X); %相角
( j( r9 Z' Q& x4 W' D: a$ [9 udp=sparse(PQi,1,(PG-PD)./100,n,n); %节点注入有功功率/ B7 u5 _* D0 M, j
dq=sparse(PQi,1,(QG-QD)./100,n,1); %节点注入无功功率8 O: D1 z- m! Z+ A& |' t# T" e! @
V0=sparse(ones(1,n)'); %节点电压大小初值
: `8 h- h0 B9 y7 F# O& TVA=sparse(zeros(n,1)); %相角初值2 `, ~; T4 k' d( D7 h3 m' {
V0(c(2))=c(3); %平衡节点电压. N& s3 Z4 ^& S! k
V0(PVi)=PVV; %pv节点电压, F q( l6 L: G& r: `+ s
ee=1; %精度
/ i! P" G/ _6 w) Ak=1; %迭代次数' X" B3 W L- @- k. y
while(ee>c(4)&&k<20)
( Y5 K7 Q. N8 Jij=repmat(VA,1,n)-repmat(VA',n,1)-angle(X); %角
2 @) @/ R3 [' w& R$ Z, JV=V0.*(cos(VA)+j*sin(VA)); %节点电压复数形式( R) M% q" o8 X2 u$ j
delt0=conj(X*V);& g! V5 D1 j8 i' `9 h5 I
delt1=V.*delt0; %代入节点电压求出的功率
" p* n3 F4 Z3 V A) R( R: adeltp=dp-real(delt1); %有功修正量
: x; a' _2 s* W8 Q! Udeltq=dq-imag(delt1); %无功修正量
7 \, } A3 D9 L% I! ^% |. gdeltp(c(2))=0; %有功修正量(处理平衡节点)
! w$ t' h1 B7 l5 O: Ddeltq(c(2))=0; %无功修正量(处理平衡节点)
$ G9 x' ~9 c: w J5 [' d4 l+ _( qdeltq(PVi)=0; %无功修正量(处理pv节点)
% T# G: u( D8 e6 z5 v6 w% Wdelt=[deltp;deltq]; %p,q修正量数组3 C1 S) O" k+ h* N5 t
h=diag(diag(V0)*(Y.*sin(ij))*V0)-diag(V0)*(Y.*sin(ij))*diag(V0);
3 K# w3 k1 i9 |# Ann=-diag(V0)*(Y.*cos(ij))-diag((Y.*cos(ij))*V0); %n矩阵
4 y0 z" t, P0 @( x8 H1 w: djj=-diag(diag(V0)*(Y.*cos(ij))*V0)+diag(V0)*(Y.*cos(ij))*diag(V0);
$ K9 }8 R. F" W3 I" |l=-diag(V0)*(Y.*sin(ij))-diag((Y.*sin(ij))*V0);' O' z( }5 v! R1 B t1 H: k
%雅克比矩阵完成
6 G" H' M9 I/ v* G' snn(:,PVi)=0; %处理pv节点+ l" V1 Y0 `5 H9 w3 \
jj(PVi,:)=0; %处理pv节点
+ ^/ Y1 T5 f- |6 N. |* ml(PVi,:)=0; %处理pv节点
# N; t4 |5 v( l j Bl(:,PVi)=0; %处理pv节点
O$ m, j. {( S* l4 z: bl=l+sparse(PVi,PVi,1,n,n); %形成l0 D. N3 x- t, i, d% w1 D
ykb=[h nn;jj l]; %初步形成雅可比矩阵
7 m: P3 r0 @3 ]0 M; dykb(c(2),:)=0; %处理平衡节点a
. c$ {. F: |* xykb(:,c(2))=0; %处理平衡节点a
. f# M1 F9 k+ iykb(c(2),c(2))=1; %处理平衡节点a- k0 x+ N; B/ j: b- G
ykb(c(2)+n,:)=0; %处理平衡节点v
! ^" j8 J) g, b, N' o# xykb(:,c(2)+n)=0; %处理平衡节点v" [& o1 I% E& V( h. ]9 h
ykb(c(2)+n,c(2)+n)=1; %处理平衡节点v
5 i' Z. f* [; `$ A+ }, Z+ Zjie=ykb\delt;4 p, z; L6 t- I; h
delta=jie(1:n); %相角修正量
1 Z5 q$ l# H% |3 `deltv=jie((n+1):2*n); %电压大小修正量2 N5 P( u7 `8 y) s8 q" B. `( W
VA=VA-delta;
" Y; `! o# V; \0 t% i/ w- \: |V0=V0-deltv;9 p8 T5 X4 q% [( d2 x* R
ee=max(abs(deltv))
9 P- j$ c; O/ P, W/ W2 Wk=k+1; _, |$ D% ?& H# L. R
end
d! d3 @. S. BVA=VA.*180./pi %相角
' m0 A4 k5 V& F# \; CV0 %电压幅值
: T j* O( }1 B4 Q4 k9 E2 Gtoc;( _! f" P7 y- X. ~3 [
求解释,求解答,改了很多次都没用
) M. Q. G# y5 W: @9 K3 ?9 Y??? Error using ==> minus
# l/ I7 e/ j. G0 A% x$ m! MMatrix dimensions must agree.+ C& X3 R/ y. ~3 A
Error in ==> liweiming2 at 122' _3 D: h2 C1 y( K9 E( n# W1 J
deltp=dp-real(delt1); %有功修正量 |
|