马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
各位前辈们,有谁特别熟悉MATLAB软件?帮我看下这个程序,为什么运行的时候,总是提示我这个错误:
% Q$ c. ^* }7 f% @, t2 ]0 _, F Warning: Divide by zero., J n: Y4 h! \3 t' |( i1 W
> In lllllllll at 17
0 ~) t; r M0 y+ w6 jWarning: Divide by zero.
+ B+ d3 L+ S; L4 j0 k> In lllllllll at 18
$ x3 N2 o( p* t- J# D??? Attempted to access G(0,0); index must be a positive integer or logical.
$ h3 Q: o9 Z0 H1 k+ I) wError in ==> lllllllll at 29; j4 q. G/ \: k2 M2 g7 y, V
G(i,i)=G(i,i)+gij/(k^2);9 e+ t- k f* C) j
/ q( n' Z9 f& v2 E+ D! G& q. S
$ P1 h, S% O) \ X& D) ]程序如下:$ ]2 V: [, @& Y0 M2 o( E
%牛顿——拉夫逊法进行潮流计算7 \4 w5 j& }- \. E. f& e
n=input('请输入节点数:n=')
1 D% d! f% q( w. qnl=input('请输入支路数:nl=')
2 U/ R2 w5 W* w; o& \" _+ g# qisb=input('请输入平衡母线节点号:isb=')
& }+ ?. O: |4 g7 W }- m4 @9 oA=input('请输入由支路参数形成的矩阵: A=')
9 @& v9 ^$ ~. D( YA=zeros(nl,5);
6 ? a6 C( h/ t/ M) }G=zeros(n)
$ l. s$ L" J8 ` v$ K/ iB=zeros(n)
0 m" `3 C5 g# U: r. t; Ffor a=1:nl
- W6 p6 P' ?, z' S; E8 S7 @i=A(a,1);
$ R5 K' v A; `8 wj=A(a,2);* n+ ~" R5 L( k+ f+ {& r9 D/ y
r=A(a,3);! j$ N+ `# z# [. p4 @0 |( h
x=A(a,4);7 q' S; M0 Q6 s
k=A(a,5);
# I' b1 J9 |5 k: s3 }z=r*r+x*x;, n4 J% D: t5 q3 s* U
gij=r/z;* F% @" J7 S% G/ y1 ?" {
bij=-x/z;# f* N3 I$ d/ Q1 F4 v& }0 Q
if(k<0)
6 Z! B; B2 F+ T9 ? k=abs(k);( L$ k% v6 N6 H; O x2 [
G(i,i)=G(i,i)+gij;
6 H) ]) m3 ^' d# C3 P) X: {4 \) i0 T* j, d B(i,i)=B(i,i)+bij+k;7 t# O3 e$ f* k+ }
G(j,j)=G(j,j)+gij;3 B8 H; ] I5 b( L1 l
B(j,j)=B(j,j)+bij+k;+ e/ C# R o: {8 v( d1 w
G(i,j)=-gij;
3 J- D6 ?( f. E, l! u8 S; ]1 t B(i,j)=-bij;, I9 f1 C/ C2 I) t- U, ?. u
elseif(k==0) n6 t" X1 o/ M$ q6 w
k=1;
: M3 p# n! ?2 H0 n& J) ^+ I5 X G(i,i)=G(i,i)+gij/(k^2);+ e6 i) `9 |5 l9 G9 N
B(i,i)=B(i,i)+bij/(k^2);
4 Q' W! N; s' o0 X4 @ G(j,j)=G(j,j)+gij;* K1 u2 g8 L! E! P5 C" x
B(j,j)=B(j,j)+bij;
$ O a! d* N9 [3 b9 [! N$ V G(i,j)=-gij/k;, i4 W) V0 O5 R7 c& G$ ?, o
B(i,j)=-bij/k;. f6 B3 k4 u8 N0 u$ @
elseif(k>0)& l5 g) p `$ s* l# T" X9 R: p
G(i,i)=G(i,i)+gij/(k*k);
* B3 S6 J- W. ^) o) R) \ B(i,i)=B(i,i)+bij/(k*k);! [- t7 I4 t: Y1 W
G(j,j)=G(j,j)+gij;
/ g% b o% i2 ]6 w, p* ?: b3 C B(j,j)=B(j,j)+bij;- o! L' Z+ C$ p
G(i,j)=-gij/k;- k- z& G3 K" E# W6 Z# x
B(i,j)=-bij/k;) N% `0 k. @& E
end
$ C+ j' q( X, U& b3 rif(i>j)
) D1 e5 K7 j( S; ?) c3 ^8 Z+ i# ~ G(j,i)=G(i,j);
( x6 L* s! N: E7 F7 v0 H/ w# ~ B(j,i)=B(i,j);
8 {& b" q) S4 d4 m6 Aend7 \: V# ?+ D$ I8 I* b/ b
end; t5 m/ n0 z) {, K. ]
for a=1:n( B O. O) N8 [" A
for b=1:n' a0 l* e3 r, h4 t
if(a<b)
" e7 ], A, C9 t G(b,a)=G(a,b);3 D4 @: Z+ W+ K
B(b,a)=B(a,b);9 N( ~( u; M& [, s/ H4 W
end
4 j3 J* v! W/ ]4 r' w' z0 h# z) L end
5 [- ?+ N' u8 ?/ k2 f4 x+ p end( A, m: u% b- N( ^$ h
n=input('请输入节点数:n=')
, Y% _8 G$ {" d: V, vnl=input('请输入支路数:nl=')2 `2 {, h5 S; [4 A; f+ s3 Q$ o3 h4 v
isb=input('请输入平衡母线节点号:isb=')* _. {: L( o; q" d1 C. r; M9 X
g=0%迭代次数" a: P; \; D. @" f* ~
e=input('请输入各节点参数形成的矩阵: e=')%%%%%%%%%%原始数据输入
; g) a) V4 t+ Q( [, ?f=input('请输入各节点参数形成的矩阵: f=')
5 [* y" n; O$ D# o; K7 [Pis=input('请输入各节点参数形成的矩阵: Pis=')
) t. a% c/ _: g) S! h, ?/ PQis=input('请输入各节点参数形成的矩阵: Qis=')
! S9 {4 _2 h0 F$ U& h9 ` e=zeros(n,1)
! J2 V5 u3 D( i! a2 a* ]4 D f=zeros(n,1)
: F: P/ p A/ ? Pis=zeros((n-1),1)4 A! ]/ g1 x! K; d( I
Qis=zeros((n-1),1)
4 p6 F. k% b3 a! R( J+ I9 Hmax=1+ p _' K) e1 s, G# q2 o
while(max>1.0e-5)
' K2 l: e& a$ {7 ^, t3 O# |5 BA=input('请输入由支路参数形成的矩阵: A=')/ ?9 k" E2 S, G4 S$ O6 N
G=zeros(n,n)
. s8 z* M. O5 c1 VB=zeros(n,n)& ?4 [6 J8 w D, o4 E
for a=1:nl
7 c( t# \5 j+ ~4 l: ` i=A(a,1)
! ~$ [! T. `" \! R# ij=A(a,2)
+ D4 N3 \: ]* o1 O" ar=A(a,3)
8 d6 d9 [/ G1 F% ox=A(a,4)
4 C1 V. l7 k9 }& R J3 |% j+ T) \k=A(a,5)
- P$ t+ P) a" u: \z=r*r+x*x
; J P2 ?/ i9 g: `* f) ygij=r/z4 N8 j( s, n- }, x6 y
bij=-x/z
, Y( _# K) ^& w) S4 U if(k<0). Y) B, ^4 ~" s. F1 [6 L
k=abs(k);
% k6 E, P d( C5 l+ S, F# W G(i,i)=G(i,i)+gij;# T( r; L! W& [2 W9 C& P0 A5 |5 |
B(i,i)=B(i,i)+bij+k;7 c* ?* c5 @& d' W
G(j,j)=G(j,j)+gij;
7 d6 Z+ _, ?- T/ r" H0 ~/ h+ J2 y3 p B(j,j)=B(j,j)+bij+k;6 j4 h) M C! W4 y, i
G(i,j)=-gij;
( y0 h( k; F2 p$ w8 y- J% } B(i,j)=-bij;. V$ j' h4 T" k, y2 t
elseif(k==0)
; s% P" z( q- p( B' p k=1;1 m1 n/ [8 I6 I( @; p5 m- P# k
G(i,i)=G(i,i)+gij/(k*k);! h6 H5 X# E/ |: W$ N! {. O+ y# K
B(i,i)=B(i,i)+bij/(k*k);( [2 I/ H/ r( x1 @& }
G(j,j)=G(j,j)+gij;( B" k- A' J( i# D$ H# j
B(j,j)=B(j,j)+bij;
3 a0 g7 S# R& n0 L3 z G(i,j)=-gij/k;; T6 f; p- S+ Q; d- g
B(i,j)=-bij/k;- `9 l; x+ E4 H7 I. O2 I
elseif(k>0)+ `, u! Q* p) H& d3 c9 N# H
G(i,i)=G(i,i)+gij/(k*k);. n4 O. F9 Q0 I( E" p; u' Z
B(i,i)=B(i,i)+bij/(k*k);# R* Z) w ?0 B4 g' L! q
G(j,j)=G(j,j)+gij;
) o1 J' ?1 R/ @ B(j,j)=B(j,j)+bij;
7 s4 }% `* I& K ?4 y# s G(i,j)=-gij/k;+ J/ a* N1 @* L
B(i,j)=-bij/k;) ^8 Z% a8 I; N' B0 V
end! {1 t- S, X; x: ]( z! f
if(i>j)6 ]( @% A" V) R4 r8 n/ ~; [. H, |
G(j,i)=G(i,j);
' b& R' W7 m) o) x8 K# B1 m B(j,i)=B(i,j);7 ^, |# s3 \! A* F# R7 q
end
1 A, i$ U( s$ O, R) oend; ^# N% T# M$ u! U y
for a=1:n
* `/ F! T" r. {4 P for b=1:n* ~9 o. y- o5 e! Y5 O
if(a<b). F8 B3 K0 v3 _8 Q- b2 S
G(b,a)=G(a,b);
/ I8 E" T* O: w- j B(b,a)=B(a,b);
1 `4 U; u8 o: Z* { end
+ |7 L) F E1 \! Z end
( f: P, V! _- Uend
" m' ^5 \; q# l; ` ?这是求节点导纳矩阵。请问,为什么我输进去参数之后,老是提示那个错误??
! x& O- t- Q# w还有,定义矩阵的时候,定义完之后要不要加;号??到底怎么区分??急死了。
& P3 i, F# T4 p1 e4 T9 @9 p大家快来帮帮我。。。。。。。。。。。。。。。。。。! W. z# L# W: C& v; F
先谢谢啦。。。。。。。 |