|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
clc;
9 W+ r$ C. o. \8 T, R5 Fclear;' K8 l2 {- I3 ^
tic;
6 O6 \, P1 l' w( Ofilename=uigetfile('*.*');
7 A3 E% v5 C1 X3 U9 U a=textread(filename,'','delimiter',',','emptyvalue',0);%读取TXT文件
- x ~9 N: C0 A0 A( c: G ^8 T c=a(1,:); %平衡节点行数% p, O( e) c8 K# b6 O* E
n=a(1,1); %节点数. t2 o/ A" Z$ x7 \( ]2 g
b=find(a(:,1)==0);( h: B. j$ ^% }3 S) t
line=b(2)-b(1)-1; %线路共有行数
, H L& i+ ~0 x, X N knum=b(1)+line; %线路结束行数
6 z# n; A' N* K" D R: K" M lineblock=a(b(1)+1:knum,:); %线路的参数
: T. X0 z" X+ r; |$ j. @+ b lineNo=lineblock(1:line,1);
" e. Q- e2 K# D( C6 n5 }9 U- i linei=lineblock(1:line,2);# t, O! U) }4 v8 {
linej=lineblock(1:line,3);: f3 E$ X& n/ M& I/ q
liner=lineblock(1:line,4);
( k3 s9 T; ~% e4 C. B& u* Z linex=lineblock(1:line,5); a: E, ^3 S" T: \; M6 I( J
lineb=lineblock(1:line,6);
: I* j0 M4 F& q6 T trans=b(3)-b(2)-1; %变压器共有行数0 Y5 z! G N1 u( E7 c
k1=b(2)+1; %变压器开始行数 ; u! v, x7 [: w N2 I
k2=b(2)+trans; %结束行数
2 E& |6 l" r1 P1 _" B7 k transblock=a(k1:k2,:); %变压器的参数
# ~1 @. K% {: X transNo=transblock(1:trans,1);
0 `- Y$ T7 u3 J$ B" Q( h transi=transblock(1:trans,2);1 d8 M8 e6 @9 T2 N! `# R
transj=transblock(1:trans,3);
5 K0 Z5 a1 S6 D5 S" ~, Q$ [ transr=transblock(1:trans,4);
. l2 R, Y7 l) w- X transx=transblock(1:trans,5);
$ u9 A* q! [3 k9 B/ X9 j# z- k transk=transblock(1:trans,6); a2 }$ \; F% W! W
branch=b(4)-b(3)-1; %接地支路共有行数4 l2 g( _$ c# T# ]! F
k3=b(3)+1; %接地支路开始行数
* I3 v% @3 u0 Q% I5 P k4=b(3)+1+branch; %结束行数 ( `2 k$ L3 \! \( B" E: L
branchblock=a(k3:k4,:); %接地支路参数' J5 R% k" i. F
branchNo=branchblock(1:branch,1);7 }8 y3 s: I6 i( z/ Z2 R" ?9 m/ L
branchi=branchblock(1:branch,2);# b) U$ y/ ?2 D$ |7 G% y
branchg=branchblock(1:branch,3);, X; G$ ]0 M; U* Q" J. v3 r' h1 G
branchb=branchblock(1:branch,4);
0 U$ Q" p% n/ e. ~- u. Q0 V' ]5 i3 @ power=b(5)-b(4)-1; %节点功率共有行数$ P# L+ }; r: l3 J$ r. V
k5=b(4)+1; %节点功率开始行数 2 D. P2 s' ?$ j8 N( H. p
k6=b(4)+power; %结束行数# Q4 `% d( V9 ~6 L1 [, ]
powerblock=a(k5:k6,:); %节点功率参数 ' l" t# t1 T8 X: H% X" z9 M
powerNo=powerblock(1:power,1);0 R$ y6 i4 N6 z" }( |0 T8 R& O1 O, s. d
PQi=powerblock(1:power,2); %powi
. E9 `9 n# ]4 B# p6 `" r PG=powerblock(1:power,3); %powpgi" R/ S9 c& h/ H- G- Q7 e+ f
QG=powerblock(1:power,4); %powqgi
* o# f# Y5 B$ H9 E' D PD=powerblock(1:power,5); %powpdi; F# p! d' `: ~, A a
QD=powerblock(1:power,6); %powqdi$ _ t" B/ D* }6 V& a0 V/ Y
PV=b(6)-b(5)-1; %PV节点共有行数
" y9 X+ N( i Y" T5 q) z k7=b(5)+1; %PV节点开始行数3 q( B4 D8 h6 M# k+ L# {; O
k8=b(5)+PV; %结束行数" a# M( U& y% V8 k- H j1 J! r
PVblock=a(k7:k8,:); %PV节点参数: b+ B2 V; s( M! O
PVNo=PVblock(1:PV,1);- ]6 t& z" K1 V
PVi=PVblock(1:PV,2);0 b" j0 U. v9 T8 Y6 i0 E
PVV=PVblock(1:PV,3); q" u" s- Q( X ]5 l3 W
PVqmin=PVblock(1:PV,4);
$ [8 S8 \) V& }. A8 g* h7 w! W PVqmax=PVblock(1:PV,5);) _9 i, n6 _" g v( [2 n
clear a;* ^5 L, V4 [" M3 d6 n
G=zeros(n,n);/ m6 o4 c- g: |
B=zeros(n,n);
+ ]6 P1 E6 Q4 }+ x+ H for k=(1:line); %线路导纳矩阵
2 c8 ?* @; X0 ?) Z6 `8 | i=linei(k);7 H# P( @. ~$ C1 }" _
j=linej(k);5 [; n8 z/ t @ T& X" F, m5 m
r=liner(k);% o& ^. w! C) a+ `5 ~
x=linex(k);
! C D/ V% Y. a, X: L" v; d b=lineb(k);
7 _ z3 Z! G2 l: b& V GIJ=r/(r*r+x*x);) ?- g, }/ L% y# C; R% W
BIJ=-x/(r*r+x*x);% p% u( ]5 {+ [( ?
G(j,i)=-GIJ;8 G7 f; I! d% S! E& s7 E2 \$ d
G(i,j)=-GIJ;1 M* \, J- f7 I4 d2 Y k5 z
B(j,i)=-BIJ;' L6 \' m6 Q( P5 Q/ I; w$ P5 P' T4 m
B(i,j)=-BIJ;
5 \3 [: x3 t/ L8 w, L, a. |3 o4 U b=lineb(k);
3 |) [2 ]: e! V1 n G(i,i)=G(i,i)+GIJ;
5 a% `# R# q. L7 g B(i,i)=B(i,i)+BIJ+b;
0 Z" ] Q& \/ `, J, b G(j,j)=G(j,j)+GIJ;% o! X: H1 T' ^0 l; `. z) y1 M
B(j,j)=B(j,j)+BIJ+b;
/ h `0 T$ n: ?5 v& K7 a5 x. N end
! B( f( W# g' @; Q' A for k=(1:trans); %变压器导纳矩阵9 E4 w8 b3 {2 k0 Z5 L# h; x& j
i=transi(k);
) X, F, k# H8 H; { j=transj(k);" E/ u; S7 b' ~1 [
r=transr(k);9 n$ h- P/ A) G
x=transx(k);5 E1 L, K) ~: a; j
j=transj(k);9 O0 B' j- f+ _0 `1 ~" l
k0=transk(k);
3 c) j0 h5 G8 V* T; j GIJ=r/(r*r+x*x);3 t6 R- B: d) X' ?) }; S6 E
BIJ=-x/(r*r+x*x);) A$ I8 h/ m* f) X* z1 m( D
G(i,j)=-GIJ/k0;( Q. ?3 A; G, ~8 Z. z7 E1 Q( z6 v
G(j,i)=G(i,j);7 p) d0 t0 a. V5 A: r
B(i,j)=-BIJ/k0;
8 c1 T3 p8 V9 n$ n; m1 C W B(j,i)=B(i,j);9 ]$ h- I4 t- Z2 D. {
G(i,i)=G(i,i)+GIJ/k0/k0;
4 |4 x9 x$ W# i& E# g4 L B(i,i)=B(i,i)+BIJ/k0/k0;
, b6 Y- G* u# o2 x G(j,j)=G(j,j)+GIJ;3 R( T2 l0 I* s; d7 N( ]
B(j,j)=B(j,j)+BIJ;
4 O- _! P0 P! D" I- G7 s2 { end3 |$ q4 @; x6 w9 c
for k=(1:branch); %接地支路导纳矩阵
) P% b. W8 z; f" f6 m* B+ v3 n) J5 Z i=branchi(k);1 {$ o# E5 n6 g
G(i,i)=G(i,i)+branchg(k);
, S7 e" B& M# w+ L B(i,i)=B(i,i)+branchb(k);
- N0 r, K. X- i, F. G end
# u! ^" F1 _' n% y+ H. D) c Y=sparse(zeros(n,n));
0 W3 E/ f% u' h+ b! h, _" P A=sparse(zeros(n,n));9 V' F8 Q, I, w( x, E
clear j;
8 s7 f) j/ G7 a/ t: C/ s9 ^/ EX=G+j*B; 5 e7 [9 L/ A+ y: B
X=sparse(X);2 X0 t2 q4 p* ]5 g
Y=(abs(X)); %导纳矩阵完成
5 J9 A3 w2 s: v8 A! G$ s5 ZA=angle(X); %相角( _" c7 i/ q% e+ w+ }: D: i2 y& K
dp=sparse(PQi,1,(PG-PD)./100,n,n); %节点注入有功功率
8 i! l; K1 B, \( A5 x7 K4 rdq=sparse(PQi,1,(QG-QD)./100,n,1); %节点注入无功功率$ I* j, ]$ r7 o/ w* w" ]
V0=sparse(ones(1,n)'); %节点电压大小初值
2 u( m& @4 n+ JVA=sparse(zeros(n,1)); %相角初值, n: W% L% m% d7 t( I% r
V0(c(2))=c(3); %平衡节点电压
2 A9 I( f: }) \, g5 J$ KV0(PVi)=PVV; %pv节点电压0 G# v0 s" b. \ t3 R( P) [
ee=1; %精度$ D6 b5 e5 Q- j0 s$ M! I
k=1; %迭代次数
& J! C! H0 t7 F( o0 m7 d" G1 A while(ee>c(4)&&k<20)0 y7 z9 P2 e. L; n/ N3 [
ij=repmat(VA,1,n)-repmat(VA',n,1)-angle(X); %角
- f/ z5 B, v* n7 m9 |V=V0.*(cos(VA)+j*sin(VA)); %节点电压复数形式
% M- g; O& g- Y/ c2 T! w6 odelt0=conj(X*V);: A) r0 l( z0 k5 j; c7 h" u
delt1=V.*delt0; %代入节点电压求出的功率
# V4 @7 F7 b. y! f8 M4 V5 Fdeltp=dp-real(delt1); %有功修正量- t! h' `- P$ A. q1 S
deltq=dq-imag(delt1); %无功修正量
% a2 ]) w4 V" d7 Gdeltp(c(2))=0; %有功修正量(处理平衡节点)
0 r2 r( I+ S A. \! udeltq(c(2))=0; %无功修正量(处理平衡节点)
; q- Z+ u% C/ K, J) ~4 ?! Vdeltq(PVi)=0; %无功修正量(处理pv节点)
7 q, a6 N9 h& b9 R( K; _delt=[deltp;deltq]; %p,q修正量数组# y0 s$ i8 t: F# d2 E& J; `' y
h=diag(diag(V0)*(Y.*sin(ij))*V0)-diag(V0)*(Y.*sin(ij))*diag(V0); 2 s5 c4 q( k5 ~% T9 |! k' I
nn=-diag(V0)*(Y.*cos(ij))-diag((Y.*cos(ij))*V0); %n矩阵4 m# D6 n4 d8 p
jj=-diag(diag(V0)*(Y.*cos(ij))*V0)+diag(V0)*(Y.*cos(ij))*diag(V0);" @# m5 p6 P4 b4 T2 a3 F
l=-diag(V0)*(Y.*sin(ij))-diag((Y.*sin(ij))*V0);
X6 R& P0 k6 V- d" Z%雅克比矩阵完成
" ?0 T; H" Z2 d8 V& Hnn(:,PVi)=0; %处理pv节点0 s- Q' y- f5 r+ n' V5 B
jj(PVi,:)=0; %处理pv节点
4 h; @) A. l) N5 F2 x& Xl(PVi,:)=0; %处理pv节点
* d" n ]* o1 G; X( B9 \' Il(:,PVi)=0; %处理pv节点* Y4 x: ~. [9 U
l=l+sparse(PVi,PVi,1,n,n); %形成l* y! G/ i' R0 ^% H( d5 ] b; u
ykb=[h nn;jj l]; %初步形成雅可比矩阵# ?* V6 K4 R/ q; q3 p2 F1 z; a
ykb(c(2),:)=0; %处理平衡节点a8 v3 m. r F& h
ykb(:,c(2))=0; %处理平衡节点a7 R# \, j! X( p: g
ykb(c(2),c(2))=1; %处理平衡节点a9 _$ |1 r3 m7 d: ?2 q7 ^
ykb(c(2)+n,:)=0; %处理平衡节点v
; I7 s, W* B0 V8 X. T+ e+ _; i# lykb(:,c(2)+n)=0; %处理平衡节点v: }3 k9 [8 v E6 @3 Y0 c
ykb(c(2)+n,c(2)+n)=1; %处理平衡节点v
9 b; Q: Q; z3 N; [- J _, [8 Njie=ykb\delt;; F0 H9 z$ y+ @: c: C
delta=jie(1:n); %相角修正量$ D9 I* R, ^- ?# [; U, M& n
deltv=jie((n+1):2*n); %电压大小修正量
* ~# d& g5 a; n2 G" b R7 _0 Y7 |VA=VA-delta;: j4 }1 O/ v5 Y$ J3 m4 G" L
V0=V0-deltv;
, g- C* d: n+ X9 Q; g7 y: v6 ]ee=max(abs(deltv))
( O4 }; e6 h2 g% l( V, r7 qk=k+1;
4 ]% @/ k: d; w5 x end
& m& d7 R9 `; Q! X9 k# WVA=VA.*180./pi %相角( d4 u6 i% {+ A! R& J6 V/ Q7 L% q
V0 %电压幅值
$ P, t" K' a( N7 Dtoc;
/ }& {- |$ m; [. x" g* q" {求解释,求解答,改了很多次都没用0 n7 X% [! k" {- _8 C
??? Error using ==> minus! k+ R, M2 b' W; ]
Matrix dimensions must agree.
# ^- l4 o# k% C. NError in ==> liweiming2 at 122: |* b0 h+ |( L+ |: }
deltp=dp-real(delt1); %有功修正量 |
|