马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
各位前辈们,有谁特别熟悉MATLAB软件?帮我看下这个程序,为什么运行的时候,总是提示我这个错误:& _8 n5 W6 p' T
Warning: Divide by zero.: ^ Q: w% ?% e. S
> In lllllllll at 17% W% E0 \( @( a2 }2 Q) q. L8 [
Warning: Divide by zero.
. K( Y2 x& \9 D( H> In lllllllll at 18
. D. x2 `2 G* m, ~??? Attempted to access G(0,0); index must be a positive integer or logical.
; _( f& n( w" K' {$ i3 Z' {Error in ==> lllllllll at 29 ?4 W" x" n+ j' g" G
G(i,i)=G(i,i)+gij/(k^2);( K4 F8 }, Y! H* S& H) V x0 q1 p
- \5 Q: \ K: h* A' y- Q1 D/ F
# | v% N2 ^! E, V* A5 c& ^程序如下:
& r6 q0 b* B/ H1 b9 Q%牛顿——拉夫逊法进行潮流计算4 ^) J8 j, t5 ~
n=input('请输入节点数:n=')" {1 @4 u \- l
nl=input('请输入支路数:nl=')( l! x& P7 q$ h
isb=input('请输入平衡母线节点号:isb=')
$ W' {! L5 q D7 [9 JA=input('请输入由支路参数形成的矩阵: A=')* e) |4 \4 O! m8 ?: x) ^
A=zeros(nl,5);
0 W% B7 S3 }: Z9 I! ~! w( c& u: iG=zeros(n)- X( T- d" F; `- B! j) _ o
B=zeros(n)
9 L* ?2 K, A# f. Jfor a=1:nl, |4 n5 ]8 m* K' q2 ?
i=A(a,1);
* S2 Q2 u, I, U$ xj=A(a,2); E" u6 n; r9 \$ e6 j: m
r=A(a,3);* P) k* ?3 \% u2 t* {( t
x=A(a,4);- g7 b. O8 R' I2 [
k=A(a,5);# W9 [+ e0 t5 I0 \) {
z=r*r+x*x;
% Q6 T5 } c; ], @6 Qgij=r/z;
; a3 Z% u/ E6 D5 f9 Jbij=-x/z;
( N4 Z! T1 N) ` if(k<0)6 C) r( ]# E8 W2 j. s# Q
k=abs(k);4 J, c% b- J' j- e- d# I H
G(i,i)=G(i,i)+gij;
8 a- Q3 P# W3 m$ Z B(i,i)=B(i,i)+bij+k;2 |4 h1 L1 S; V
G(j,j)=G(j,j)+gij;
! r+ G( L& w' W9 S a3 W9 ~+ C B(j,j)=B(j,j)+bij+k;# X( L5 u" |. _& |# @) u2 N6 s
G(i,j)=-gij;
2 [" W$ C7 q2 W2 D& S* u& v) @ B(i,j)=-bij;
3 z% f& G |% d2 i! Q1 Selseif(k==0)
! }: G5 `5 N: k k=1;
8 X- |8 b+ U0 e7 | G(i,i)=G(i,i)+gij/(k^2);' A7 k9 `- P& e- n4 {( |* @
B(i,i)=B(i,i)+bij/(k^2);
5 Z/ b& C3 g7 w* v. |* Y( c4 o G(j,j)=G(j,j)+gij;' f$ C3 ]! _0 O2 x* `
B(j,j)=B(j,j)+bij;
$ _1 R8 A) ?) o. y G(i,j)=-gij/k;$ p/ W0 A j: E$ F, H
B(i,j)=-bij/k;4 v8 D& g ?5 V- J. L
elseif(k>0)
% s; |6 B+ S" b7 V G(i,i)=G(i,i)+gij/(k*k);
' b% L( x+ ~0 C0 E$ _* f0 N% i7 s B(i,i)=B(i,i)+bij/(k*k);* {- W" @) ]8 S' P. N4 m/ }' ~# m
G(j,j)=G(j,j)+gij;
* d& x% I& g# k# m B(j,j)=B(j,j)+bij;9 q/ i% ]- i3 T* t# Y
G(i,j)=-gij/k;( o$ j w* |% Z
B(i,j)=-bij/k;
' b* l0 H' l7 l e7 N- ]end
% @+ T# n$ n8 C8 K% g1 e7 P* nif(i>j)3 V; c; H u0 a* y7 e' D
G(j,i)=G(i,j);3 j# X" ?+ n. E2 N) [4 n- W" \
B(j,i)=B(i,j);, E3 B- t5 b/ {0 F) D' K
end7 i' z1 ~2 n' n; W" {
end+ N* Z4 u3 D) R7 F/ m4 g) [6 d. j9 c
for a=1:n
' V: g9 \2 V0 f; D. y0 P for b=1:n/ ?9 e x' d, y2 ]# A6 p3 _
if(a<b)
' C+ s2 O$ [) x7 v, H) n G(b,a)=G(a,b);( d, M# t, N+ N* `, U# t
B(b,a)=B(a,b);
* Q/ ~& k( X% {) ^% q end
6 p1 b7 I7 _$ ^, G V: r: r) B end$ t T" F: A5 i3 g2 W) B& V% r
end
1 @' Z& o% T& |n=input('请输入节点数:n=')
% v" ?" p* k( L3 Bnl=input('请输入支路数:nl=')
/ G" N+ B! [) N6 Q4 _isb=input('请输入平衡母线节点号:isb=')
- Y- h- y$ D4 V; Y6 @g=0%迭代次数
: P u; z5 F, y: g1 Z- g/ M9 Ce=input('请输入各节点参数形成的矩阵: e=')%%%%%%%%%%原始数据输入! { \ s& X1 O
f=input('请输入各节点参数形成的矩阵: f=')' |7 C$ M) B$ L6 K
Pis=input('请输入各节点参数形成的矩阵: Pis=')
1 N( _% O, v1 M/ `9 mQis=input('请输入各节点参数形成的矩阵: Qis=')
# V, P0 d3 x$ z1 N# d e=zeros(n,1)0 Z, E* V) a/ ^( S& C2 a8 r7 ]7 N
f=zeros(n,1)7 |7 G" R3 i# F; v- ]- C; `$ g, W
Pis=zeros((n-1),1)
( w: r, }) ~6 S0 |+ I Qis=zeros((n-1),1)0 K( L" A& c' r" @8 s% b) r
max=1 W3 C! s/ R0 G9 y( Z
while(max>1.0e-5), |5 a& i: { f5 J" w( B; h
A=input('请输入由支路参数形成的矩阵: A=')8 j4 F: j3 w' @& ~
G=zeros(n,n)8 |2 s" ^5 P) h2 D) [5 P& z
B=zeros(n,n)* F6 F% I b' U& q9 g$ e
for a=1:nl" E$ U6 l& i8 Q) t
i=A(a,1)
* L# V, y& Z( T8 M r6 [' Ij=A(a,2)
* P2 r! [9 l w3 | m7 a# ^r=A(a,3)
- q( c: O# Y' K1 T) j7 P2 fx=A(a,4); D+ y* K/ _( f8 k# g7 Z8 I. a! Y. p
k=A(a,5)2 }. U0 h: E" z
z=r*r+x*x3 \1 p: O8 Z% H
gij=r/z
, M& I7 t# v) P* K" E/ u bij=-x/z) h8 [5 L+ q) y* V% [5 l4 l
if(k<0)
8 _" `$ {4 \ M* M" R k=abs(k);" o0 A! F* ?9 j/ Z8 t
G(i,i)=G(i,i)+gij;
1 T5 G# v7 ?7 c1 Z1 J B(i,i)=B(i,i)+bij+k;% i$ x( G; W( W5 p9 b: a
G(j,j)=G(j,j)+gij;
( j) ]. o& t' Q0 t, L+ b B(j,j)=B(j,j)+bij+k;
/ \5 r/ q1 N! s$ G# [) K$ d G(i,j)=-gij;
8 b# m2 L1 b8 s. o, P8 }- I4 }+ P, F B(i,j)=-bij;
4 @& n2 m6 e; Z6 q: _elseif(k==0)
0 p3 i5 e. B2 [ A, C k=1;
; x) n r& Q6 t" I3 j( IG(i,i)=G(i,i)+gij/(k*k);
* C# b' z4 v( {/ s B(i,i)=B(i,i)+bij/(k*k);) R0 n2 g* D. H+ [& T" ]% e( O
G(j,j)=G(j,j)+gij;
! r/ [5 R, G" a/ H3 d2 A8 T B(j,j)=B(j,j)+bij;. ]" @7 Z4 `- T |3 ?
G(i,j)=-gij/k;# \1 J1 S9 @& E' B& y4 A: X
B(i,j)=-bij/k;
7 F- u' E& A& K) l8 a! O- ]elseif(k>0)
$ u7 o1 U2 ~# |8 p8 D G(i,i)=G(i,i)+gij/(k*k);
9 ]5 ^1 ]) q: j5 D B(i,i)=B(i,i)+bij/(k*k);
$ L9 J2 z# h9 `# l8 e1 s5 F$ { G(j,j)=G(j,j)+gij;
j$ z8 T$ S) {, i% I T B(j,j)=B(j,j)+bij;
4 b( V: h! ~1 s6 K- y/ T0 v. F0 v( i G(i,j)=-gij/k;
' C9 \+ H# ~/ M6 T B(i,j)=-bij/k;. I- s' _. T/ q
end1 o3 w2 Y2 L$ ^; C1 x
if(i>j)
, N- V( x0 o8 i& e* h7 L8 U G(j,i)=G(i,j);$ {- B4 j9 Z2 V/ S
B(j,i)=B(i,j);* N, L5 Q5 r) M/ r! e: b/ \
end
' k J# B. Y9 L! A8 G8 D5 Fend
3 m/ _ T+ b, K' W6 ]6 v for a=1:n( b0 `- T9 i7 q7 s0 A& f7 v
for b=1:n
3 p8 w5 N" }) u3 ?+ v3 I+ a if(a<b)
% V% c8 z: W( k* X4 s; f- y G(b,a)=G(a,b);, X' W6 U' R; r; ]* Q4 r" r5 _" _
B(b,a)=B(a,b);; @3 w1 D5 L' }( m7 C+ k( S
end& U+ E, P9 A& {, g9 S+ r$ ~( H
end9 m" G+ T' ?* r: \- x( W2 u" E6 i
end
7 j0 P7 \6 k9 N0 H这是求节点导纳矩阵。请问,为什么我输进去参数之后,老是提示那个错误??
3 A5 a: h+ m2 c: `/ G, f k# T7 ~还有,定义矩阵的时候,定义完之后要不要加;号??到底怎么区分??急死了。: O: S) ~" _. D- H/ } b
大家快来帮帮我。。。。。。。。。。。。。。。。。。
% f3 g0 x0 X9 z. ~先谢谢啦。。。。。。。 |