设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 2223|回复: 9

请帮忙看看我的matlab程序错哪儿了?潮流计算

[复制链接]

该用户从未签到

尚未签到

发表于 2009-1-12 13:35:47 | 显示全部楼层 |阅读模式

马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

您需要 登录 才可以下载或查看,没有账号?立即加入

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
5 _) [1 `7 F) X& p4 Q/ @* J. @! w1 F5 p(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com+ `$ p4 u4 @* ]
n=5;% q  [8 r( x9 G9 E
nl=4;8 h5 i5 G/ S4 r4 p9 o. B7 B0 B
swing=1;
% b" R5 k2 [( U. ]3 s. Dpr=1e-6;
7 s7 {5 p4 `6 J4 e& S) T  R. QB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]" F4 W# C. O* L6 r% ~" i* {
    2 3 0.01+0.12i 0.04 1    0;
# B" Q. H! [# w1 E    2 4 0.2i       0    1.05 1;, p7 e/ j. F; U$ c4 J
    2 5 0.12i      0    1    0]' l; q0 t6 P2 \- ^, j
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]6 q4 c2 H: ?7 D2 j; H% |: n( u8 h$ f; o
    2 0    0  0   0  0   0   2;
/ s" R6 i; k  I! X1 w5 B) B    3 0    0  0   0 0.9 0.6  2;7 ]8 [( t  u  @. a5 `
    4 1.0  0  1.0 0  0   0   1;6 H4 m$ Z/ E& j
    5 0    0  0   0 0.8 0.5  2]3 Z% z. f! W8 o4 K! X
X=[1 0;%[节点号 导纳]
4 D# b8 H& x: F    2 0;+ `* x/ A# c2 j( c! S" g1 T0 ^
    3 0.1i;
- P  z" }# K$ ^  h: [    4 0;# i, {& c6 w; V! ]6 t) }% x
    5 0.1i], e' ]" n5 q# s7 c' E% i
Y=zeros(n);  %初始化节点导纳矩阵
/ r/ n( U/ @% l7 k. O: ^2 dfor i=1:n; \+ l0 s& s% P7 g3 x8 e+ P$ x
    if X(i,2)~=0;
+ R" j& \4 d3 [' u% {' g+ s" `0 }7 S  |        p=X(i,1);
" D, \% ?, ?7 _; U        Y(p,p)=X(i,2);  %写入节点对地导纳0 T' _6 f' ~' L1 J" v* r6 i' B
    end
" G+ {; S& j$ n  ]) L9 ~$ gend, Q- E2 k8 e, e: ^3 }! f  v% F
for i=1:nl
; i, C: m5 |( u: E$ E' M& H! W    if B1(i,6)==0
$ Y8 `0 {5 H) R$ n3 U$ H        p=B1(i,1);q=B1(i,2);
# X! J# g5 U0 ]9 R7 _* L% Y    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点  s/ Z. }( ~( R% r
    end/ ]$ G) i8 j1 R1 o1 w
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
1 m6 i$ o5 w  M$ H    Y(q,p)=Y(p,q);                                    %互导纳) F0 @% c6 |5 e3 r5 F9 d
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳/ Q! H" l4 n0 V! I6 @! O
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳" u$ D% m8 s1 t) i  G" _0 b# h- K
end , D$ Z! P6 d/ r0 ?
Y
3 k9 b( d( X- I& g8 Z  `3 w    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角8 n% C( N. H+ S) }! p# H1 [" l& c
+ q9 v/ s" ^4 Q. J
%--------------------------电压及功率初始化模块------------------------------
8 [2 g, W4 T' \6 Q* {& z
! T  G: [% F3 }% \, _9 sdelta=zeros(1,n);U=zeros(1,n);
6 K, `. A0 D) J* c3 ~' H  {for i=1:n
' E% L1 s! x. Q. R% X, y    delta(i)=B2(i,3);  %节点电压相角初始化( m4 g$ f  b( W/ x% S* }& P
    U(i)=B2(i,2);      %节点电压幅值初始化- f8 E9 ?' `$ r3 C
end
  N! X4 `% H0 a7 ]8 b* @
1 C7 E0 Z% H4 r4 c) e  }P=zeros(1,n);Q=zeros(1,n);
7 [- `) g0 J  _3 }" c$ y. l6 M$ u6 nfor i=1:n3 U  T5 H. L' Y" A# P- L, ]% G
    if B2(i,8)~=0
9 S# W% ]- ~  E4 ?, @       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化& H) ~& Z3 ^/ Z* p2 m# h4 D
    end: E. C/ ^) X" ~* H* ?% A6 f2 ]
    if B2(i,8)==2
1 S6 m1 z$ K" ^; ^; p& q       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化+ @6 n% F8 {3 a! F
    end   + y0 @# N9 A3 b: i% p: _
end& Z; ?4 X3 T/ A7 Y, n6 r0 S/ C
4 g+ H# x# a7 C$ i$ h: R7 V

% w% O' |: U, n: ?/ s%------------------------求各节点功率不平衡量模块----------------------------( q/ H. R3 d- T6 `

- _) E0 p0 R0 Y& R( ]  YNUM=0;IT2=1;  %定义循环次数,循环条件标志* }; [! l& L9 p/ w0 q5 D
while IT2~=0, T7 M6 R6 f2 T6 _
    IT2=0;t1=1;t2=1;
1 X- b+ f3 ?- i1 a7 C8 F( }    for i=1:n
* @  m, K* b/ N! ~           
" m( x; @- G0 p0 v. R: x            C(i)=0;
# Q2 C0 U6 D; L1 e/ I            D(i)=0;
  Y+ p7 s) a1 m8 r1 b0 W# x            for j=1:n
- G/ {; s; w& K  O: U  L- I  Q7 I5 `! ~                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率" S* T! m3 I! K9 l' x+ k" K
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
* R8 H0 s* t' S* c  ?6 s            end
0 H2 Z& U  f6 O' h+ S        if  i~=swing
0 L  n4 H% u$ ~" k- o            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
1 `1 g- ?- g, [2 {! P2 Z* [            t1=t1+1;
/ s( n' @+ n1 E! P" o% C            if  B2(i,8)==2
: J9 x  f! a+ q0 A4 u                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量- m7 r! I0 w% ^% r
                t2=t2+1;5 i, C* M& h) @* ]
            end
- Y- r1 P; t# y/ ~& q, P        end  : e  m. Y  i* E: n. I/ h& o! K
    end8 }- ]) D( F( O/ w4 r! d2 `1 x# x
    . d9 e4 D- ]1 U# _
    t1=t1-1;t2=t2-1;
. k0 W" r; j. \% @    DPQ=[DP';DQ'];  %功率失配量矩阵; t5 H2 @4 k7 a" [
    for i=1:t1+t2
% C, ?( m; n6 v/ o2 |        if abs(DPQ(i))>pr  %收敛精度判定/ H3 _( \4 @$ T/ _
        
8 W" C  \9 G4 b: d- T$ a6 y            IT2=IT2+1;     %不符合精度要求,进入下一次迭代/ \# n( K* a+ |; V
         end   + q+ C+ M0 {" E* U( C
    end! z  K3 L2 D1 f+ }; M; P; E
+ a; B$ y3 m1 a( e- L8 x, I) `
%---------------------------求分块雅可比矩阵模块-----------------------------
+ s% v. D" F0 k. `; ~
2 ?" r$ L) @' u7 k2 {1 H7 s/ TH=zeros(n);: c5 C- j7 d2 S* d4 s! c+ E
N=zeros(n);
/ n8 H' a) n2 M) [' v0 bK=zeros(n);
6 d" C, z: v# e; i. t% C# yL=zeros(n);  %初始化分块矩阵
8 D  @  f) X$ Z3 N+ v8 w# Gfor i=1:n
) W4 r' S$ ?1 W( {/ O1 K9 J) z   for j=1:n
0 }$ J' t2 k  ?9 o4 k4 C       if i==j3 I5 f) o# S4 t1 }! t
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
7 p5 [& c- Z( V           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
4 z4 s  `) Z% f* U           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));; ~" y$ l9 N, e1 \: N5 P
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
7 e! t$ K6 v3 h$ s/ w) u6 h       else
2 e, S. `& G, E8 `( n          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  h' C  V) C/ R2 W5 j7 x: _2 i
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
# T! J% K! F2 ]6 k9 |4 j8 s          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));! G$ M9 k; @9 W* J
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
7 A( b  o9 u, A1 G" h; q       end
3 D2 H) F! q# C4 J   end
3 ~' S5 @7 s. [end
% r0 t- b' q- o& p. L2 B# T4 M    1 ?" U" [& j% u/ @6 I2 V1 W
%----------------------------求雅可比矩阵模块-------------------------------
& ~6 ^# G! |" ?( G9 H3 l! R2 R  x- _* j
J=zeros(2*n);  %初始化雅可比矩阵7 A/ I- B  L# x8 ]" n  ^
for i=1:n5 u- \6 J. t! R! g  i
    for j=1:n
6 ?! w& @7 g/ J9 P! T( q( f0 x        J(i,j)=H(i,j);& ^6 S7 B2 u9 ^- M) [. V6 Y
        J(i,(j+n))=N(i,j);/ l) Q2 n/ X+ @" Q0 @2 i3 y
        J((i+n),j)=K(i,j);0 M( v6 |+ T( |9 u7 z! s0 J
        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
5 k2 c) o, p; _, M# b* b# i    end; ]7 z% _, h* w+ ^1 k
end
4 D! v* @# N, x( }0 Q4 e" c3 I
# C' ]- q& @; ?* G; w6 r& ?! n$ OPV=[];  b  ^  p; c4 i: k  @% x% Q  p* d
for i=1:n
2 z( P9 H9 e* r( {! }6 _! b    if  B2(i,8)==13 ^7 S/ D( @. X' v
        PV=[PV B2(i,1)];  %记录PV节点的标号
2 K/ L, j7 S% Y& ]4 e! r' Z( v+ `    end* \' v% h& {' S+ ?2 h( C7 \
end  ( {+ C! ]& j& r+ E- N* [. t* u5 n7 e! D7 ?
" t! L/ s" b% v: l
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
$ D4 _$ W: y" r" U6 d  K: NJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列1 _  c' b+ Y2 b3 @$ Z! R
; I$ m  Z  a  j& }1 v
J;  %最终的雅可比矩阵" @( |, w. ?  ]+ `

7 |1 i. D0 o, x1 `3 F4 O%------------------------解修正方程求各节点电压模块--------------------------- i3 u# e) E( h6 L% z9 o
  6 j! j+ ]; g' ?' [+ \- c
    modify=inv(J)*DPQ;          %各变量的修正量; w. T5 g! n3 D1 M
    Ddelta=modify([1:t1],:);    %节点电压相角修正量
) [" \5 b4 I) |! s& Q4 }. ~    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量$ p, W& _# D  B& Z* A: e8 w* [/ _) f
    ; u7 i1 g$ \+ K
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值    . K5 N) T9 F2 g+ |
    t4=1;+ l0 ?" j3 U- b
    for i=1:n
/ n: Z5 _4 J/ A4 D. E* x/ Q        if B2(i,8)~=08 J( Z  j# ^' y3 Q4 e: e1 J  f
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角
" d1 k& t. I& q! K! `        t4=t4+1;  |/ O5 U! L$ a; a- r, ?! M
        end
' U4 q" u' j1 X5 I    end
0 N: i" [6 J7 U$ t
  \' W6 X3 ~6 }) m" g" R, b6 d    t5=1;0 `6 j% J, u. n% p& o* p- g! Y! m
    for i=1:n
5 L7 ]- `7 Z( T# E% u/ \        if B2(i,8)==2
5 i# B8 Q) q6 v/ E        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值% W1 ]% `1 n7 x3 M% v
        t5=t5+1;
1 b7 V: K! P3 Z# h/ i; w8 j  z        end
. [6 ^; Z1 H1 m! G# Q    end
1 D, x8 S; G8 _    NUM=NUM+1;  %迭代次数
2 v- P% ], `4 K  T* U    if NUM==1   %最大迭代次数判断3 o! s6 _! ~. {
        break;  %超过最大迭代次数,跳出1 G2 i) ?7 C0 o, ]4 w; G
    end   
* z5 s. Q$ f! d. k) T" Y& ^end   * D8 F# N4 h' m7 s4 |4 i
  }& j# X* q& t& p9 j3 K) C
%--------------------------------输出模块----------------------------------) l  s* U# I1 a+ N# }8 `

  Y/ ]8 z, ^! R( q& ^8 `: ^disp('------------------------------------------------------------------');7 \" S3 H) p3 x
disp('各节点电压U幅值为(节点从小到大排列):');, k+ _6 S, U/ z1 I' {$ H; x" S) v
disp(U);        %输出节点电压幅值/ w& \- ~3 a, F# G: f6 v3 x
disp('------------------------------------------------------------------');
( V) i9 E+ D4 S! Z- Ddisp('各节点电压相角为(节点从小到大排列):');" C" U$ z4 \! x- g$ Z
disp(delta);    %输出节点电压相角
" p4 `1 [. N% A. S+ R8 Tdisp('------------------------------------------------------------------');4 \7 s9 Y: R# T2 c3 A3 G: \# H
disp('迭代次数:');. e; [  b3 e# u5 c5 {
disp(NUM);      %输出迭代次数

Untitledtest0000000000.rar

1.82 KB, 下载次数: 6, 下载积分: 威望 -2 点, 学分 -5 点

"真诚赞赏,手留余香"
还没有人打赏,支持一下
楼主热帖
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

该用户从未签到

尚未签到

 楼主| 发表于 2009-1-12 14:06:13 | 显示全部楼层
谁帮帮忙啊,急用啊··
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-13 17:53:17 | 显示全部楼层
    这个程序好象是一本电力系统分析教材上的,输入对了应该就没错了吧
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2009-1-14 10:20:27 | 显示全部楼层
    哈哈,这个东西要研究研究了。。。。。。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    郁闷
    2020-7-2 20:18
  • 签到天数: 98 天

    连续签到: 1 天

    [LV.6]常住居民II

    累计签到:98 天
    连续签到:1 天
    发表于 2009-1-14 10:21:52 | 显示全部楼层

    & Z5 v  r+ n# x
    5 T+ y! Q2 r2 u! v8 n那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 6 O) I1 k5 m1 U, q/ j
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    郁闷
    2020-7-2 20:18
  • 签到天数: 98 天

    连续签到: 1 天

    [LV.6]常住居民II

    累计签到:98 天
    连续签到:1 天
    发表于 2009-1-14 14:09:32 | 显示全部楼层
    原帖由 seeout 于 2009-1-14 14:02 发表 0 ~$ O& z+ M( R8 A4 H7 S: @, b) @
    孟祥萍 编著 电力系统分析 高等教育出版社
    5 o$ V0 c, `9 c0 P- m$ C不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    0 h, _7 Z) A5 [
    1 I$ ]1 e; @8 _2 A& c" e
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    开心
    2020-6-29 12:47
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    累计签到:5 天
    连续签到:1 天
    发表于 2009-1-15 20:33:25 | 显示全部楼层
    大家看过的书可真不少啊,俺没看过,谢谢了啊。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2009-1-15 23:56:42 | 显示全部楼层
    原帖由 朗朗 于 2009-1-12 13:35 发表 8 o! I: Q6 d1 z! ]% `6 |
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    , [* I1 R' R0 p9 t(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
    ) P9 g; @1 R3 L* rn=5;) O9 k- q2 F- u/ i4 K
    ...

    , x' O3 b2 C* N+ ~( |2 J) y这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    郁闷
    2021-4-15 00:05
  • 签到天数: 31 天

    连续签到: 2 天

    [LV.5]常住居民I

    累计签到:35 天
    连续签到:1 天
    发表于 2009-1-19 09:36:26 | 显示全部楼层
    原帖由 damayi 于 2009-1-15 23:56 发表 7 x3 q/ o3 Y$ \$ K6 b
    ) K' Q- i* D  F# {& ~
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    ( r& N/ C) E" l2 s/ ?( ?2 X" S
    , F  j. Y0 _% f, }6 T
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2026-3-18 06:32

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表