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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢; h* l) I& H( H" W. I4 E+ G; R+ j
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com2 A+ P) X' i! P# `0 ]/ f+ B) p$ G1 O
n=5;
5 c& o9 ~% }2 I5 ]  B5 Znl=4;2 _; D5 F* ^5 {: ^9 m* r
swing=1;1 C. h  i) v9 [3 ?, A. i
pr=1e-6;- H1 z$ E1 @4 w3 H. m0 L, u
B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]/ l5 v! p' J* N3 t* E
    2 3 0.01+0.12i 0.04 1    0;
, H1 u9 K+ ?5 C. H' n* O3 h& x# \    2 4 0.2i       0    1.05 1;
4 i* W) P) n. r; h8 C- J    2 5 0.12i      0    1    0]
; S. W; g+ B1 p  t  D. d* wB2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
- ~, I7 P5 R8 N5 t    2 0    0  0   0  0   0   2;
( x  \$ W! E+ X: Y! I9 N+ c    3 0    0  0   0 0.9 0.6  2;
7 q  v( P. K( W$ V+ ~3 M9 `' ~    4 1.0  0  1.0 0  0   0   1;
' ?2 f8 a0 C) I& A% o- l! S' e    5 0    0  0   0 0.8 0.5  2]4 X: ?! y& c4 P3 A8 k1 J" n5 d8 D
X=[1 0;%[节点号 导纳]7 }1 D1 M/ j( v; [, }0 T
    2 0;# J) |  U. O: [" G+ }9 c1 R# K
    3 0.1i;5 x  H( K* S* k
    4 0;) U3 l% D$ S# r
    5 0.1i]
, l& E; V6 d( m9 a% IY=zeros(n);  %初始化节点导纳矩阵( p- K* N! d& ~6 P' I) f6 Y
for i=1:n( {- y( u* H) u& s
    if X(i,2)~=0;- p5 X6 ^* j" T2 B8 z/ s# ?
        p=X(i,1);
8 `8 b. r: e/ J9 r        Y(p,p)=X(i,2);  %写入节点对地导纳" M/ O2 o. `3 S. S5 I
    end& v4 B" T8 p8 P4 |1 y
end& h3 [: M* g: x; ~
for i=1:nl
8 F6 u( ?; Z2 z: N1 G( I    if B1(i,6)==0- R; D  h3 N# {% F
        p=B1(i,1);q=B1(i,2);
6 f' x, N0 K: ~! s) }    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
& y  D: V  U3 e% i  {1 N3 O    end% o! U* I6 k- a" m: R7 Q
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
& @, K* q. z/ w7 v    Y(q,p)=Y(p,q);                                    %互导纳
1 `, R, V. G( `. Z' {4 e    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳& u) l5 T0 }  ~! |- t7 q
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
2 M( z3 ]: H! x/ ?7 {end
7 O# O+ b0 l  {' H5 P2 \) N  s8 wY
: b) y. R0 C! d; f  w8 A    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角! Y8 R9 K. C  p5 o2 P$ Z1 ]
2 Y" _) D" l( f3 P- y- C" x
%--------------------------电压及功率初始化模块------------------------------
& j0 {9 O7 S. y8 R- T* {# M5 O
; q2 l9 e* w; r: e( o5 p, Xdelta=zeros(1,n);U=zeros(1,n);9 X. T2 K! L+ N- H
for i=1:n+ b' y" ?! c* y4 A! X" Q
    delta(i)=B2(i,3);  %节点电压相角初始化7 [; d# y2 \7 [. ^; r5 I
    U(i)=B2(i,2);      %节点电压幅值初始化
' S+ Y3 p9 X6 D: C" |0 L" z% N6 pend( Y/ K' w! N9 M$ x

" C& _, Z8 c8 W0 [: J* V) m# kP=zeros(1,n);Q=zeros(1,n);
1 G. o- k5 o1 V# vfor i=1:n/ N: M2 `  z, S% W
    if B2(i,8)~=0
2 L( f5 h/ Z  X3 M( m: J       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
/ ^4 `6 [/ J' ]/ _* o- [5 f    end
: p3 F1 }9 F$ ^    if B2(i,8)==21 A  B; j7 u8 S0 N# e0 l
       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
) [8 \/ X' y" {6 |    end   
; X$ v/ U6 _! \. z/ V. ]' h! Q- }  \end/ n. i, e" ^3 \; `( r* ^6 A% n% u" I

3 W: i- k1 Z' Q" [8 x" K% P; V& B( n8 S" L- V
%------------------------求各节点功率不平衡量模块----------------------------8 |9 ]- v+ T" z; h) m( J' c

+ ?/ `- w; N4 _& {5 W2 j+ wNUM=0;IT2=1;  %定义循环次数,循环条件标志
6 T: V7 u4 X3 F  r' s" kwhile IT2~=0
5 `& v2 t+ |( i0 H+ ?4 \4 E    IT2=0;t1=1;t2=1;; g' U6 ~1 D# Q& l  G. I- b
    for i=1:n* }& c3 w6 _1 c3 O' R4 A
           . O* n( [8 U0 M) o3 K0 N
            C(i)=0;9 f& Z5 Z" |; o/ k/ y
            D(i)=0;, @. d$ F( W, @. @
            for j=1:n. C$ z: d' e/ }6 Z# i5 x' V* k
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
' W) a: W! r! Y( g6 M1 k8 `                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
8 p3 V+ C0 I2 g: b- S            end# ]4 C" }+ R* }) e& m
        if  i~=swing" N$ x2 I1 u5 @  l3 K
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量) P- Y5 x9 m) c2 ?( T% l: j" [) W$ R  g' k
            t1=t1+1;
5 x4 |, u& o. W* n  N            if  B2(i,8)==2/ J( K$ C5 R5 K
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
: ^' d+ {! c- C! O) s                t2=t2+1;/ h6 i7 L4 I7 H' H6 ?
            end
. ^* V' s2 }3 M: W+ b6 \        end  
/ k  {# \( E* V: n" X    end  L) D5 V  ]: R/ _9 O
    6 }  ?" o: }/ a( K$ c# }; S* e. a
    t1=t1-1;t2=t2-1;7 A& D. F+ h9 F
    DPQ=[DP';DQ'];  %功率失配量矩阵/ ]7 ]/ g- f  o$ |! N# M
    for i=1:t1+t2; U( g  Y. I% x8 w3 b# z
        if abs(DPQ(i))>pr  %收敛精度判定
& d1 e3 M& X" V- Q. E( E        : C) A2 l# D" [3 |
            IT2=IT2+1;     %不符合精度要求,进入下一次迭代" |6 M$ ?& t) I
         end   8 _: `8 s$ N+ r# G% |* S
    end
( ?7 [- y+ q6 B& ?% X3 r, Q5 z) X6 _1 p% @
%---------------------------求分块雅可比矩阵模块-----------------------------
$ ^* G" A+ `4 j. j1 O" D0 Z' S. p3 O) ~7 }
H=zeros(n);# `  O& E5 B' F9 x' e9 w
N=zeros(n);
  a) g7 `* W/ d# j3 L6 H4 p. [1 DK=zeros(n);
" ~' @) N0 h  Z/ TL=zeros(n);  %初始化分块矩阵
  O+ T; O& S* l+ |6 w; u) E  N5 vfor i=1:n' |& }& h8 j# @
   for j=1:n
/ B( j+ ]" t7 X/ I       if i==j- ^/ _1 f7 M4 t/ ]
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
. c& _! z9 N7 g0 h7 ]$ Q6 v           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));& n% d6 D5 y/ o. D" J
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));6 D* Y/ P% G8 M8 h& e2 A7 d( F
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元4 E/ R3 W% u6 T8 u/ ?; e
       else/ H  L  y. u! J2 [* n
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
9 u" E* y6 \" K- e          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
6 V4 g$ E3 _$ k, v1 h          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
2 t, @" S1 F; y$ j! M1 [$ K+ w          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
9 Q6 r% V2 x! h. Z5 Q! P7 K! O       end
4 H- I/ V+ i1 y% h$ `) d- ~   end
; j  w" C2 h; F' k! Y7 t  {end
) R! R9 B2 x2 B0 d- b5 n# L6 b: @    0 _+ d- S2 n) {; V# d
%----------------------------求雅可比矩阵模块-------------------------------. l: D  [; F& i7 E! e# o
" N9 v- {* a2 O( g$ m% M  t
J=zeros(2*n);  %初始化雅可比矩阵
; D. }+ @; G" Sfor i=1:n
  e& }( j6 U; ^1 y# s5 u    for j=1:n6 _, G5 y  D1 q2 v/ {% V
        J(i,j)=H(i,j);7 x7 f) _) t% N+ ?. L' ^
        J(i,(j+n))=N(i,j);! f* U- a* X5 f; G
        J((i+n),j)=K(i,j);
2 [. |0 r; M& v5 a        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵2 I, K" K: o. h8 B  b
    end
3 l3 }; v0 A6 t# i" `+ E* s  Yend/ r- x4 Z1 W, y. j: {

5 E# s+ s; T$ K* bPV=[];
4 g4 h% p; W8 n9 o3 c) Dfor i=1:n
9 @* W9 }4 `4 [3 O    if  B2(i,8)==16 W% a# s$ B! _( E/ }
        PV=[PV B2(i,1)];  %记录PV节点的标号
# {) h/ z2 h, ]- J& E! i5 e# |# ?  a    end
0 M; F+ R3 V0 ^) e+ {& N6 F3 send  
2 c* G8 w; W3 @. A/ F* t: z' V4 B# J. {* x7 p- g! l, ^: M% ]
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行6 q# ]1 o' k* i
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列
5 S. ?* J# y* c& F) ^0 O: [8 M. d/ W2 H. q& i0 w: j4 g6 R
J;  %最终的雅可比矩阵2 k1 A- s8 K, \0 M
7 r0 P( y/ P6 j% V1 g& K4 H# O
%------------------------解修正方程求各节点电压模块--------------------------3 N; f9 E: a- z  J" q+ b# ~
  
4 `" q% }6 X: q% Z% K: y    modify=inv(J)*DPQ;          %各变量的修正量1 N* V- M) U& T: l8 J
    Ddelta=modify([1:t1],:);    %节点电压相角修正量
& I- p- D. h0 C1 \) u8 E5 h9 [    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
% M4 [  r" ^* L( Y. Q+ `. w   
9 ]' Q8 X& Z/ T! U) {! c9 T    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
( O7 l: }3 Y' Q4 q& u6 z# T    t4=1;, l, a$ n9 {, m9 e
    for i=1:n
. `& J0 k# V" K( n, n) H        if B2(i,8)~=0
0 Q2 t& W; q/ Q8 m7 U        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角
' |9 y/ o7 j. x! X5 @: k2 X6 P' c        t4=t4+1;
$ P" y6 z8 I- a% _0 I        end$ G" c* p& |6 ?% ]8 u& u
    end
- @4 e7 s. g/ E- ^2 i$ Q- R, J$ T& a6 P' d  F7 n( i+ r% A
    t5=1;7 j9 a/ y) |! d# z! _8 Q9 J  e3 _! a0 s
    for i=1:n. ], P' x/ \# o' M* Z1 ~6 _
        if B2(i,8)==2( c! ^9 O7 [2 f' o/ T; E4 D$ G
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
7 h" _4 R" ^6 M  t  k        t5=t5+1;# F$ B; ~! }' [! Q8 B) g
        end* g1 K4 N" B# t
    end, Y( l& ?+ m7 @% D& H
    NUM=NUM+1;  %迭代次数9 H% }8 T" e# H5 t2 f# V
    if NUM==1   %最大迭代次数判断# o6 c  b. m# ~
        break;  %超过最大迭代次数,跳出% @; m! `; N& p6 \; Q. @4 Y
    end   ; \4 v! V# `0 e, q* I+ b
end   
& h- d( }0 j) T4 k
3 O' ~) T5 B! t%--------------------------------输出模块----------------------------------) ~: S0 m8 [- k- A4 T. i0 D  G- G

. n( l6 f9 Q! @disp('------------------------------------------------------------------');
, _' F+ \( ?0 l8 Udisp('各节点电压U幅值为(节点从小到大排列):');  m3 t4 i7 n4 Z+ u- O2 V7 i- |
disp(U);        %输出节点电压幅值
' _" M  D3 d3 d) ?8 n" Ldisp('------------------------------------------------------------------');7 L4 g5 |. f$ J2 g! T
disp('各节点电压相角为(节点从小到大排列):');
/ L, W  e  l8 B0 w8 I2 w) S" E# wdisp(delta);    %输出节点电压相角4 v* N: s. s' @! L' _& d3 f
disp('------------------------------------------------------------------');
3 h+ {2 W. |" P7 L8 g/ [disp('迭代次数:');
  x; F  C3 f  Y* |0 \7 l# Bdisp(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 | 显示全部楼层

    0 }  H- o# W5 u, ^9 X0 x' z) M! K- Z+ X
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 : l9 W1 o4 b1 T( G6 J  v
    不过说实话,个人觉得这本书除了用上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 发表 1 q9 O: t, s5 D/ N9 L1 E" j( ?
    孟祥萍 编著 电力系统分析 高等教育出版社
    5 I  ]5 J/ l9 M- l9 L! y不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    7 [! x" M; J, |+ P  m' K, s, A
    , X4 n7 q" ^" |( \: X- ^' J
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表
    4 T. E" _  S. n; Y/ B我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    , m  u4 I% w  u. A5 c(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com8 b& e, M) o# B) E. j$ b. P
    n=5;4 g1 a* Y. Y7 A6 X- S& O
    ...
    1 n) z& {/ L; f, G7 F0 ?7 G8 H
    这个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 发表
    ; T- q( ~3 A4 M$ i! A# p) [) @( V' u
    2 a4 s  A$ C; |- Y9 g1 B; a这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    1 H" n# x1 V1 @- f. l1 i) s; u0 K! D6 H
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-7-5 18:56

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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