|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
各位前辈们,有谁特别熟悉MATLAB软件?帮我看下这个程序,为什么运行的时候,总是提示我这个错误:% I7 w! e2 O& y F
Warning: Divide by zero.; s9 \/ A* l. b9 ~% a; p* Z
> In lllllllll at 17
" p0 f! d0 q8 P( SWarning: Divide by zero.9 B8 c& U0 c% z; j# {5 N
> In lllllllll at 18' k9 i) _" p+ Y5 E
??? Attempted to access G(0,0); index must be a positive integer or logical.
* f/ }+ z3 B# d N: SError in ==> lllllllll at 294 Q9 W4 v4 d' p9 U- F
G(i,i)=G(i,i)+gij/(k^2);
! X2 O4 ]+ i; }2 d# p3 L9 ~( \: X1 V3 C; [3 r, G# [
8 D# {+ a; L% M% ]0 D6 d程序如下:
* O5 h. b5 j8 ^+ d. _- s%牛顿——拉夫逊法进行潮流计算
5 ^! f0 ^9 \4 D' }7 i0 ?3 hn=input('请输入节点数:n=')6 w) n4 B* E- G0 T) g5 |
nl=input('请输入支路数:nl=')
5 x- U2 ]# A6 Bisb=input('请输入平衡母线节点号:isb=')6 e; \/ g' h- Q/ m
A=input('请输入由支路参数形成的矩阵: A=')
1 P5 L$ z& s h' O1 s5 r# HA=zeros(nl,5);; p. A3 E: r3 f- |$ Q
G=zeros(n)
! n5 G6 a& p; [) d" h# iB=zeros(n): f1 k; F/ ] U& q5 K- K, `
for a=1:nl. j @! T. ]: m6 M. a
i=A(a,1);
; Y6 u# Y6 l8 K' c( Hj=A(a,2);
0 f, x- k! ]: L2 j- e8 m( hr=A(a,3);
O9 b4 i# G" x/ r5 L) X( ax=A(a,4);
1 f$ M; W; C) t- fk=A(a,5);
$ U0 D7 R+ k" g; K4 f4 oz=r*r+x*x;
6 l5 o9 F& ~% mgij=r/z;
6 }. b/ w/ `) T( O! `; ^bij=-x/z;; x6 l7 D* j: r a9 Q
if(k<0), l1 t |0 h2 U W, ^
k=abs(k);
8 H6 g! O0 z1 I* ]: q3 S( p G(i,i)=G(i,i)+gij;! G% {3 ^9 K% Q" S1 r @
B(i,i)=B(i,i)+bij+k;7 t- W G$ V8 o9 X7 [& ]: O2 X
G(j,j)=G(j,j)+gij;
9 K* ?' Y+ Q2 Y6 ?/ h9 d- P8 o B(j,j)=B(j,j)+bij+k;
. O& L4 {' O" I/ d( T G(i,j)=-gij;4 R; O! L" L( \9 V
B(i,j)=-bij;
2 E/ {: [4 K5 i, _. i: delseif(k==0)+ d/ p! @, I. x/ W' ]
k=1;
" |+ H2 ^0 D4 M" U8 v G(i,i)=G(i,i)+gij/(k^2);
6 q3 Y" }. L- `0 ~4 ?# p8 B+ Q$ @ B(i,i)=B(i,i)+bij/(k^2);
0 u* L& R; E! u, B G(j,j)=G(j,j)+gij;
0 W& \8 J# x- s B(j,j)=B(j,j)+bij;+ `9 Z- h" l6 ^, l# K
G(i,j)=-gij/k;
* h+ e9 w9 J: m; h o' @( i B(i,j)=-bij/k;
" a- e: U* u; Qelseif(k>0)" F; p2 E' @6 }) ~' x' W2 N
G(i,i)=G(i,i)+gij/(k*k);
% j; ?, U# J2 T& E5 w, p/ ^ c B(i,i)=B(i,i)+bij/(k*k);
7 w: h" L* X( ]8 H/ R G(j,j)=G(j,j)+gij;7 \9 F/ c3 J' Q0 I. j- @# g
B(j,j)=B(j,j)+bij;7 A6 i4 `7 Q" o1 D
G(i,j)=-gij/k;
) G y$ u# q2 u5 b: @ B(i,j)=-bij/k;3 o% m' i9 G$ c) Y1 b2 o
end
( Z2 P3 F, J1 R' Xif(i>j)3 y+ T% j& b3 k) k$ g
G(j,i)=G(i,j);
) Q$ Q! U* x! s$ z- ^( G B(j,i)=B(i,j);! o v: _9 X6 Z: x1 K
end
7 W& X8 p" H' fend7 S, N/ ?2 ]5 ^4 J
for a=1:n4 g8 m* D* [) i* q6 f5 K
for b=1:n
( P5 H* ^% |+ h& U" B/ C: m if(a<b)
0 L$ O3 e2 A. X, j, h/ I G(b,a)=G(a,b);
) h8 ]" V3 k; m$ A B(b,a)=B(a,b);/ v3 j- I6 q- V
end
3 I6 E8 I* \7 @9 L3 S- r- i end% e: F9 X* R! w0 B
end( a& T" r0 h' F5 C$ j
n=input('请输入节点数:n=')7 G- }% P7 P0 p' q7 S
nl=input('请输入支路数:nl=')
, X# i6 @6 E" k% M3 cisb=input('请输入平衡母线节点号:isb=')0 _* q9 ^/ M: s: @0 \" q, d% E
g=0%迭代次数
2 Q J" ^; N! g6 |1 z& p, Ye=input('请输入各节点参数形成的矩阵: e=')%%%%%%%%%%原始数据输入5 L% c4 R. b1 j
f=input('请输入各节点参数形成的矩阵: f=')
) |! D3 W' b' } n% [) f6 a4 `Pis=input('请输入各节点参数形成的矩阵: Pis=')2 S3 O+ l1 t, R2 a8 d$ M
Qis=input('请输入各节点参数形成的矩阵: Qis=')4 A: D% Z# m7 Y
e=zeros(n,1)9 W, W7 }8 ^. Z C4 a8 l
f=zeros(n,1): D" F: ~# V: d+ }! V
Pis=zeros((n-1),1)
9 U2 x! V& f% n" e- P1 L; P1 | Qis=zeros((n-1),1)
4 d2 L4 ]' e) Ymax=1) l F) U$ F1 [2 `
while(max>1.0e-5)
- b. ?) T0 Q5 S/ F; G. M4 oA=input('请输入由支路参数形成的矩阵: A=')& B9 \/ k, I M% {+ E
G=zeros(n,n)* e2 f6 s7 a6 r
B=zeros(n,n): e1 _8 j9 R: C* t- f
for a=1:nl& i$ a- c6 w' E# ?
i=A(a,1)! P; x; `7 p/ I
j=A(a,2)0 n% u4 R+ {/ U0 B# C* C1 r0 C
r=A(a,3)* q O, s! U, s* E2 b# k
x=A(a,4)
+ u! ?0 [3 p M5 u% M qk=A(a,5)
+ x/ a; _. e6 p( p. w4 W. A; u; `z=r*r+x*x5 F, J& d9 H/ [- a, N& a# T
gij=r/z
& `' Z+ r7 } p4 \" l) y4 |0 M. k bij=-x/z
9 P- w+ n/ v' l9 Z% J& e; Q' R' b if(k<0)7 i, F+ K2 Z: x9 {
k=abs(k);
. c6 }0 c3 u1 E6 Z2 S$ c& o G(i,i)=G(i,i)+gij;
8 m4 _, Q( m1 P B(i,i)=B(i,i)+bij+k;5 O* E' T1 Z8 s. @5 |
G(j,j)=G(j,j)+gij;" n: z, J2 ?/ k* V( A
B(j,j)=B(j,j)+bij+k;
4 ]: R- J( y! _6 _* ?0 Y G(i,j)=-gij;
6 n/ Q+ B- Y' ^( l& ? B(i,j)=-bij;
- u( t" z7 z) T* Zelseif(k==0)% l( B; K) N- I- A3 H
k=1;2 O. D# Q" p! ~# l- D: j
G(i,i)=G(i,i)+gij/(k*k); Q/ ], [3 M" R
B(i,i)=B(i,i)+bij/(k*k);6 ?; W$ X* S" R* \% ^7 d# w
G(j,j)=G(j,j)+gij;
4 D4 X7 u2 r+ [. O$ w B(j,j)=B(j,j)+bij;
% A7 m1 G, g' D+ s- v @, y' @& b7 @ G(i,j)=-gij/k;
+ ?% t; m X, `/ a/ @9 i B(i,j)=-bij/k;
( k0 j9 v' D. I, P/ |* melseif(k>0)
: i1 x! Z) w( c& r0 {) O G(i,i)=G(i,i)+gij/(k*k);/ e" B9 N9 P+ D- B. [
B(i,i)=B(i,i)+bij/(k*k);3 d, Z( q. o/ z* r$ X" o
G(j,j)=G(j,j)+gij;" m7 { Q+ h0 H. i) a+ d) Q. a
B(j,j)=B(j,j)+bij;
+ K( c/ Q- w3 i& S# A9 [ G(i,j)=-gij/k;7 \, E+ F# T6 ~
B(i,j)=-bij/k;4 v, T( g6 i1 v$ K' v
end
8 f; u! M) }9 k, @. L: Gif(i>j)
+ P; m2 w4 F) r G(j,i)=G(i,j);1 P+ b2 r; k: M) R0 t% G
B(j,i)=B(i,j);
4 U1 y' e% o# E8 K. aend
5 s: t* P) h$ d8 e: h$ r; U( kend
7 S- h# V1 v" V# c# [+ ` for a=1:n
& M; r: W( X# J6 r for b=1:n; ?! W; D( h2 ^/ F! P8 D& D
if(a<b)! O: v ]- P9 A+ O
G(b,a)=G(a,b);
8 E/ ?* Q" B8 L, ]- T# u B(b,a)=B(a,b);! ~0 G o$ K+ V+ ?8 t# v
end
% o: e. v1 S# B! b end
7 h" U. \% e) p; Wend `, O8 l% m/ f2 t/ w! P' b, K
这是求节点导纳矩阵。请问,为什么我输进去参数之后,老是提示那个错误??
' t' U [2 V8 u4 Q P还有,定义矩阵的时候,定义完之后要不要加;号??到底怎么区分??急死了。6 e* B5 R+ [4 k( y3 ~
大家快来帮帮我。。。。。。。。。。。。。。。。。。
& n! a6 B; d8 [( H# a8 J( G% G先谢谢啦。。。。。。。 |