|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
各位前辈们,有谁特别熟悉MATLAB软件?帮我看下这个程序,为什么运行的时候,总是提示我这个错误:
6 [+ c9 r9 d2 U( s1 e* u1 [# J# G Warning: Divide by zero.
# q* V- P* V/ y1 B7 S1 C( x> In lllllllll at 173 D: S9 m. A' k
Warning: Divide by zero.
6 w3 M3 q* u, T A' z> In lllllllll at 18% S: I9 h& K: o$ l+ [
??? Attempted to access G(0,0); index must be a positive integer or logical.0 u' Q) K: Z; Q
Error in ==> lllllllll at 29- C9 b+ `5 u. y1 x1 X
G(i,i)=G(i,i)+gij/(k^2);2 W# ]3 w. M' \, p& l
, i8 N9 {) B+ y: i1 T+ `0 e' P5 Y. i1 o& ?9 N9 {$ C, i
程序如下:- s) U) \4 A; }; ?
%牛顿——拉夫逊法进行潮流计算5 L" D6 n8 f) {3 ^' q5 a
n=input('请输入节点数:n=')
5 c' U5 u: c: m5 ^nl=input('请输入支路数:nl='), E# N: m8 c8 H. J [4 y: w* d
isb=input('请输入平衡母线节点号:isb=')- f2 u; }2 {! _
A=input('请输入由支路参数形成的矩阵: A=')
3 p3 I, E1 v- [( }) OA=zeros(nl,5);
* n/ p! k S: X" k4 IG=zeros(n)
) }6 U- n; \, j8 Z2 F& hB=zeros(n)
2 V( C+ F. i) w* L8 }8 @for a=1:nl
1 A n2 j6 k' Q% g/ C3 D3 U* Y$ Pi=A(a,1);
9 R7 o1 l9 S9 s/ Sj=A(a,2);0 `$ z! y5 Z$ H" m& A) O4 h
r=A(a,3);0 |" ^% V7 l4 d" {. ^1 S3 y
x=A(a,4);
$ W) m1 m' C0 J3 W3 Ek=A(a,5);
2 \1 Q0 ?: G7 W2 Y: [8 nz=r*r+x*x;# F9 `& J! C/ S, O1 f% ?
gij=r/z;
8 N7 R4 x" ]6 e8 Lbij=-x/z;; Y, E! X9 q: D
if(k<0) Q( w. @) z5 v9 G" Q% @9 e0 i
k=abs(k);
" Y- K7 S6 s# Z3 \( J G(i,i)=G(i,i)+gij;
) w$ A% X; e, f B(i,i)=B(i,i)+bij+k;4 N, K% Q2 U/ s+ C b
G(j,j)=G(j,j)+gij;/ l) N2 k! d: t( l8 d L
B(j,j)=B(j,j)+bij+k;
# u; v( @* f8 P' k+ G G(i,j)=-gij;' q! S2 V( J9 f$ |1 C7 |9 m1 J2 N
B(i,j)=-bij;" ` O% N" J! |) g# w/ K0 c, \2 i
elseif(k==0)' O" C7 N% ~. L/ i7 I
k=1;. I4 K, u& P; a" b$ i/ C
G(i,i)=G(i,i)+gij/(k^2);
5 B* v7 W- A) v' x5 x; G; A2 j B(i,i)=B(i,i)+bij/(k^2);
9 o* V( o2 F/ u9 j; W: V" { G(j,j)=G(j,j)+gij;
8 W1 G. f! V" i/ [- P B(j,j)=B(j,j)+bij;
$ n" l9 p9 v8 |) g G(i,j)=-gij/k;: M! `/ c3 W5 C+ L' Q
B(i,j)=-bij/k;/ f E0 |, x) S& y
elseif(k>0)
# J8 M. E9 [" n( X G(i,i)=G(i,i)+gij/(k*k);+ V0 F! m v; K
B(i,i)=B(i,i)+bij/(k*k);% D2 z' G& Z% V, W6 F0 a, c' r
G(j,j)=G(j,j)+gij;
* O1 ~/ {0 y A B(j,j)=B(j,j)+bij;
& a$ u- c$ P2 I7 F z G(i,j)=-gij/k;
0 t5 S3 n2 E/ T5 H9 V' a: S B(i,j)=-bij/k;6 f) g: d( F/ N
end4 @8 @& J7 T7 g* g% [
if(i>j)- o8 E3 w# o3 W. e
G(j,i)=G(i,j);
% H: i0 j+ | q3 Z! u0 N B(j,i)=B(i,j);
7 m8 ^! Z% M/ z+ Iend
' v: L7 |* l' h% H2 Pend- k+ L/ g$ b5 j1 i
for a=1:n- h" h/ A, E/ h( g$ ~* K
for b=1:n o+ K2 C8 H: B R1 z
if(a<b)% X# F. e; h. \' m4 e& G
G(b,a)=G(a,b);
S! |; F8 l4 R B(b,a)=B(a,b);
# \5 q- ^5 H$ F. e8 r$ J end
9 D$ G2 Q3 y( ] end
- L; w, R! f( `) Z. g end
6 X; V4 l. M8 O9 p; fn=input('请输入节点数:n=')
1 q$ e) ]5 S. w$ Bnl=input('请输入支路数:nl=')
4 q4 B/ S/ T7 c$ t+ m M) R nisb=input('请输入平衡母线节点号:isb='): Q: ~; X: Y# X2 H
g=0%迭代次数2 g+ ? l# S6 B* v$ K9 ^- i
e=input('请输入各节点参数形成的矩阵: e=')%%%%%%%%%%原始数据输入- z, Z) C% B' R5 u5 s, Y
f=input('请输入各节点参数形成的矩阵: f=')3 V7 d4 [" Q. x6 g/ z2 X. }# a6 x% w
Pis=input('请输入各节点参数形成的矩阵: Pis=')
/ ]: y0 |6 I! @Qis=input('请输入各节点参数形成的矩阵: Qis=')
! n a8 S$ M7 G/ x# O! [ e=zeros(n,1)8 A# t _$ m5 J' ]% v2 M( H) _
f=zeros(n,1)0 G& f k2 H1 N' t# k
Pis=zeros((n-1),1)
: h2 r1 |) A6 x$ W. F& e& o Qis=zeros((n-1),1)' x' c S1 k* u0 x
max=14 n- o% Z5 \- h# |% S
while(max>1.0e-5)
' Z- w4 C; k& W6 K8 n% |$ O5 B2 ?# NA=input('请输入由支路参数形成的矩阵: A=')
$ d, D4 Y: H8 u( e- ?G=zeros(n,n)5 C# B$ F1 O$ ]7 @- g" S2 {* Z
B=zeros(n,n)
+ H7 g( u# m8 [" X$ _8 J" Ifor a=1:nl
1 P: U- ]1 i4 x6 }6 q# A4 T: u9 W i=A(a,1)9 q9 @& D( D% k8 J
j=A(a,2)
4 R% J# d3 z6 c% p; U% q) u! j3 Sr=A(a,3)
% ~2 L ?" w) W* J: a1 Nx=A(a,4)
) P. `5 d9 u7 L$ d$ Z5 [3 } q4 W% Jk=A(a,5)
8 f% n5 \8 E( y# zz=r*r+x*x, u2 Q! J* d( U, o7 o
gij=r/z
8 X- L. N& _4 {& |; k) W bij=-x/z
1 v, D4 `7 p; ]) @; k if(k<0), J( z7 s) j9 Z Q' V6 u8 j# w" G4 `
k=abs(k);0 @5 R' a3 n1 M- P2 i A; ^
G(i,i)=G(i,i)+gij;
! D! E8 X; }3 N& }* h) v3 B B(i,i)=B(i,i)+bij+k;" M$ D: N. I6 r9 n8 E$ K
G(j,j)=G(j,j)+gij;* S" x8 s, {( Y
B(j,j)=B(j,j)+bij+k;- X. {( ~* \6 ^; L% _ ]
G(i,j)=-gij;* B) q+ z* K6 I
B(i,j)=-bij;* Y1 }* l: s; t4 u0 L& E. h
elseif(k==0)
1 {- j2 j/ P9 z1 Y8 `3 S# y k=1;
8 Q3 s/ S# X7 A6 {, T. RG(i,i)=G(i,i)+gij/(k*k);: J/ {4 E% _) @
B(i,i)=B(i,i)+bij/(k*k);
0 Q5 _! B% K7 m1 |# i" q/ }- E G(j,j)=G(j,j)+gij;2 ^4 }4 ]+ [/ D5 h8 N
B(j,j)=B(j,j)+bij;( h% u, C+ U2 Y6 Z6 n6 ]
G(i,j)=-gij/k;' q' D7 u+ Y- T; V0 u9 r
B(i,j)=-bij/k;& f3 j- A+ F& n9 ]! y
elseif(k>0)
* M& T3 H' f. Z' W* R! w G(i,i)=G(i,i)+gij/(k*k);
$ @8 h# Y; }5 W* P B(i,i)=B(i,i)+bij/(k*k);. q- I$ Q* S$ q8 W6 L
G(j,j)=G(j,j)+gij;! D2 y/ Z! H6 Y) M/ \2 n
B(j,j)=B(j,j)+bij;
J( _; s9 d4 D' U' x% Y; P+ f G(i,j)=-gij/k;7 f9 D/ T1 @& r3 J0 I1 ]
B(i,j)=-bij/k;
6 o' x: G0 O( q; V7 }* hend, j; J9 y7 J7 w' r; h8 G3 H
if(i>j)) H2 W8 M. {; M, @1 h
G(j,i)=G(i,j);6 o1 `' x5 V$ \, C
B(j,i)=B(i,j);5 o4 n7 u; X7 S5 t$ `6 k( x
end
# p' u- k ~) j- Rend
& B: g% I7 I6 |% R( ]) e: W/ h for a=1:n e d) E6 ^% r) |* n
for b=1:n
5 f; ]5 S$ w! H8 z if(a<b)
5 ?6 r6 R& x/ ~" y& r: h3 F G(b,a)=G(a,b);- c% g) r2 ?3 K8 R+ g
B(b,a)=B(a,b);$ x% q+ d/ W! o, x9 B
end( `7 U. i2 {1 e' Z$ U# p
end
9 |3 V. K; S* f) b. P2 M3 Oend
: o3 s# u7 m: w% ?这是求节点导纳矩阵。请问,为什么我输进去参数之后,老是提示那个错误??) |& t( [6 p9 f& [
还有,定义矩阵的时候,定义完之后要不要加;号??到底怎么区分??急死了。/ ?; y2 g/ U6 i4 T j
大家快来帮帮我。。。。。。。。。。。。。。。。。。6 H, j8 o0 s2 n" P
先谢谢啦。。。。。。。 |