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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢4 {# A, C/ t/ D
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com6 f0 z& w3 g3 I! i' q
n=5;
0 t+ z* ~. c" lnl=4;
. ?4 K" ]' k9 U# g, ]0 k& sswing=1;
/ z7 v) N' o2 tpr=1e-6;
2 z3 O3 t6 a' _- ]B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]3 o, [1 P: {' U3 W4 H. Y6 h5 ]
    2 3 0.01+0.12i 0.04 1    0;% r* K  B; _, m' p
    2 4 0.2i       0    1.05 1;8 l1 O% z+ l1 r) W+ W! r2 Z
    2 5 0.12i      0    1    0]- E$ H. V$ w, N6 Q
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]  Q8 C9 K, i) G6 [- W. ^2 w( V6 X+ }
    2 0    0  0   0  0   0   2;2 m' v# s0 }, Y" P0 e
    3 0    0  0   0 0.9 0.6  2;
* S8 M& Z) i3 h* c/ m- t. `    4 1.0  0  1.0 0  0   0   1;
2 {; z" Z, i9 A# t+ @    5 0    0  0   0 0.8 0.5  2]
+ A6 v. q8 i5 L7 k6 p4 f9 n3 ?5 UX=[1 0;%[节点号 导纳]3 Z+ i! C5 A2 c! C* p6 l' ?" S9 ?6 {
    2 0;" G: C* Q, _2 s; Z+ i4 o
    3 0.1i;
8 |) L4 |/ o" i0 E1 D& F9 |    4 0;6 K! ^1 M$ _% f$ q# S$ b
    5 0.1i]+ M; Y# {7 _, [5 \
Y=zeros(n);  %初始化节点导纳矩阵
3 T$ }" Y# u2 D% zfor i=1:n
/ w& P% T- k* J/ l* |  m    if X(i,2)~=0;
8 k- H9 W9 R8 Q* T+ U        p=X(i,1);7 e: o+ k3 n) ]! B. B" Y0 E! z
        Y(p,p)=X(i,2);  %写入节点对地导纳! a; T' @  ~  |/ Q8 I2 M
    end
3 r8 |# S2 u3 e. ^. L6 Jend& h9 x- K# A- Y0 U( I4 \
for i=1:nl3 R0 e: W: I6 G  l
    if B1(i,6)==0  `4 y" k; P! K( d% x0 \
        p=B1(i,1);q=B1(i,2);) r* @# \, ]/ \8 f7 D7 `
    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点7 G' \, b# o( ^9 v* Q
    end
' _; `6 ?7 q- G+ l! f    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
; x3 `5 F; C9 k% Q    Y(q,p)=Y(p,q);                                    %互导纳
+ e; x& @4 w4 k1 O/ l2 |    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳
, I5 y  o: e+ d& @: I& U$ s    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
  I. \4 j( m+ P  aend 1 b# x& m- V' E& w, w0 p
Y
8 P* _) f4 n7 N! w    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角
* d5 C! L; l" e. ~- y0 f% m( Q: j$ e  W0 z5 J' x
%--------------------------电压及功率初始化模块------------------------------
7 N- b( s. {- k2 |" t9 ^% G' ?. g/ J- i
delta=zeros(1,n);U=zeros(1,n);
2 R' l. P3 t7 q' i! Zfor i=1:n
1 }, I, S- O8 F, [- K. T    delta(i)=B2(i,3);  %节点电压相角初始化4 R  a; o- S5 {+ [( B
    U(i)=B2(i,2);      %节点电压幅值初始化8 w  w' `6 C3 q8 g9 e2 u1 Z6 r
end
7 l5 r6 [! p0 C7 ?. W* j# H4 G+ p% @
P=zeros(1,n);Q=zeros(1,n);6 i' c3 c. @, o& K
for i=1:n5 c: J! O/ ]! Q5 h7 t) A
    if B2(i,8)~=0' ?7 o% `8 Z8 ~# w5 X+ g$ J
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化* m% x/ ~$ O3 o! Z+ W5 u) ^6 G6 u
    end1 D. b  j7 C- w; w- |1 ]) e
    if B2(i,8)==2
# h' w. @* T6 Q0 Y" Q) K5 Q       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化* G! [( F: d% {+ }0 J
    end   " `4 a: ]; Y  o2 g' H, p
end8 }( Q+ N. f' V/ W3 O5 H" [" M

6 C* q# V! d( f  C$ Q) s% g8 f# ~8 D$ N% Y" Q5 i
%------------------------求各节点功率不平衡量模块----------------------------% o$ ]% _: u8 l% A1 \$ I9 I$ u
/ H. G+ E$ i8 V9 S3 h+ n& i
NUM=0;IT2=1;  %定义循环次数,循环条件标志7 u! V  C" L# i7 t7 }: c
while IT2~=0+ N+ Y! }* M  ]' @0 V# ]
    IT2=0;t1=1;t2=1;
2 w  N6 {8 e8 }# H- k* m    for i=1:n
: G/ e1 N) L  b           ) }2 G  u5 n) v: f
            C(i)=0;. q1 z( D( s1 d- x
            D(i)=0;) ~  w' _3 B& Q; M0 F: a
            for j=1:n9 v' u& I5 J: B7 C1 l
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率: r- Y" j9 {% P/ u* I' G
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率+ h' l/ t8 H2 P3 h
            end
# w$ o* {3 y- ?6 ?7 }+ W( g        if  i~=swing; |( b# ?5 ?3 c
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
8 l  T) L; G8 ]9 R+ J; V            t1=t1+1;* }# ?) ^9 }( M
            if  B2(i,8)==21 k: m0 J+ A/ l
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
# d8 D* i1 [4 [" e                t2=t2+1;$ ]+ B* r6 U5 S4 A6 B" S
            end
9 M: {6 i* i# u! l7 {/ v+ b        end  $ r6 L' _+ r. A; b) W
    end
  T" n, ?9 R: L   
2 u) S- N) @. F! T) q    t1=t1-1;t2=t2-1;
" l8 C5 E' J- l6 u( {    DPQ=[DP';DQ'];  %功率失配量矩阵8 r$ \  ~5 K6 u& D3 r2 ^/ d
    for i=1:t1+t2) m  f  T+ K/ [: ~. o  p
        if abs(DPQ(i))>pr  %收敛精度判定0 S, N9 ?- N- V& w# f, c
        
9 k6 R3 q3 Z3 p* \4 z  b- X            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
5 R! p) C  W1 ?+ X4 s: K         end   
0 M0 Z; _3 m. {/ z  A6 w3 _1 k  Z    end
0 F5 `) D4 T" {6 K' K% ~8 S0 M; X& Y0 K
%---------------------------求分块雅可比矩阵模块-----------------------------
# ?! ?8 Z% ?( D9 y- ?
$ z% U4 \2 \; ?- ?0 B: j/ LH=zeros(n);
; d" h8 x* D* zN=zeros(n);6 r" L$ X( V- \( [/ u4 @; D. ^$ ^
K=zeros(n);; L0 S6 }( ?# K# U; y* q8 J. l
L=zeros(n);  %初始化分块矩阵
* \  y- C; _' E% ?for i=1:n
) N' s( T5 o+ _   for j=1:n& q! I! D1 J* J4 @3 K
       if i==j
" w. K; F5 @4 {4 G: }( h! _( I& x           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));& r5 r' g, ^8 }8 \6 V
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));! h: O6 n/ A  f6 e' V5 `% @  I- Z
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));; q' y2 f; P- V6 t# M" X
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
, B4 l8 ~1 t' F- {; _0 ?" w9 @       else
1 C6 P: z  M+ s1 k7 B          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
; K6 N+ b( P: N8 m* b: G  O0 K          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));: R3 U8 V: O0 @! l% V% p
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
- m+ G0 L! E4 J9 V          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
+ I+ n. _6 s) o       end
3 @) \! K+ Z. O& |   end4 [+ W2 X1 x  e, Y0 C
end
% a- M6 M2 L$ M    * o6 z. K" @' X. [% Q3 L
%----------------------------求雅可比矩阵模块-------------------------------. z* m$ r1 M1 ~! M

9 n" G" K+ ]3 k# z9 g+ KJ=zeros(2*n);  %初始化雅可比矩阵
3 i2 \4 B( V1 yfor i=1:n
  `& l$ [! a9 H0 T, a' Z8 @$ N' K    for j=1:n9 H4 J, B" `3 _' n4 a3 T: Q
        J(i,j)=H(i,j);
: ^" j$ m4 @$ F: i1 u$ a7 {" z! e        J(i,(j+n))=N(i,j);4 ?- j- f) `7 y
        J((i+n),j)=K(i,j);
- n" f; H7 O2 w        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
% ^1 m: U0 N& j    end
$ I. D) t- g; t$ O3 A/ ~  N# i! J" ]end
3 U8 X5 S% s( h" W1 }: P/ g0 n! z
6 F- T& q* w* e) s; d. WPV=[];( V4 Y: J+ D" [* E0 l2 g, I5 F
for i=1:n6 v& v: J! k* Y' ]
    if  B2(i,8)==18 {2 B) p# H! ^+ q8 X
        PV=[PV B2(i,1)];  %记录PV节点的标号
: A1 w: E* G- g+ W- L# X& |0 s    end; _1 x8 R; N% q2 o% S2 b
end  
( y5 ^/ y# I6 [. b3 @$ `+ ?7 e' T! I$ q+ e+ G; `2 v6 d2 y8 Z
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
' b* u0 t/ m9 h6 z) Y+ q' tJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列
+ G) S2 X* Y- f- L+ V* k9 I
3 X" c8 n& G, o* e$ o7 SJ;  %最终的雅可比矩阵/ F6 q) `( k. z

, T3 Z  S6 X& S' X%------------------------解修正方程求各节点电压模块--------------------------
" p- ~; w7 [" ~) K, t, k  
$ E! W& a. e* o; R0 U7 ^    modify=inv(J)*DPQ;          %各变量的修正量- w; Q; L' R: ?* i/ z
    Ddelta=modify([1:t1],:);    %节点电压相角修正量2 d1 s* w: A  j. t% B( `
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量) P; k. L1 {9 |* \3 h3 I
    / Q5 z. H. c( G/ S: c
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
' Q& \" Y1 ~1 Z+ K# x    t4=1;
; e. e  J: s% k& ^6 F    for i=1:n
9 Y7 e/ b! g# g' d        if B2(i,8)~=0
" V% c& N* L3 z4 N' n, b+ e        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角
) E6 I! s. d5 J+ f        t4=t4+1;
$ u$ }2 U/ ]) _, P& _5 }        end+ U- u" _; t6 y/ c4 j; |' t) Z
    end
( k) K% g; D; G9 e7 Q. y$ q: e- F0 g; f+ g. u
    t5=1;2 T8 r1 k  ]% G6 K, O4 n# M, I
    for i=1:n9 t. p! C, N3 `3 C, _% h1 g$ S" }
        if B2(i,8)==2  F6 d' G, }  `7 T
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值( w8 `% \0 r  V8 j: s" J/ F0 T( H
        t5=t5+1;- b. ^' x, [/ n8 w/ G
        end
! V+ A" v% J- |    end
. @7 `/ l# a! h! m    NUM=NUM+1;  %迭代次数
. l$ {% @3 q* }: H3 r% t    if NUM==1   %最大迭代次数判断2 C3 i  l% E% O3 P# a: ^
        break;  %超过最大迭代次数,跳出# [! s$ C$ J1 N9 \% h9 P
    end   
6 r6 [, l( e4 V3 V# yend   / ^7 r# B; s6 h! s  |

' `5 y. Q, _( K! `# M%--------------------------------输出模块----------------------------------2 ~/ I$ N" [/ J
* j) J% H- V+ V
disp('------------------------------------------------------------------');
- w5 Q: W0 h$ C3 T: Odisp('各节点电压U幅值为(节点从小到大排列):');
- ?' J$ m* M% g) s& {" `disp(U);        %输出节点电压幅值
* n! _) I* L, \5 b: ]( Ndisp('------------------------------------------------------------------');
  z9 i$ u. F5 c6 Z4 F5 ]- Q3 g; B9 L% ?disp('各节点电压相角为(节点从小到大排列):');# d, ?3 o" }7 b( f& A! D
disp(delta);    %输出节点电压相角  p% S, s' E, }/ p$ ~# _7 U! L
disp('------------------------------------------------------------------');: @# p, x/ t5 T0 Y/ t  l
disp('迭代次数:');' X5 |: |0 F3 [. y1 G# S
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 | 显示全部楼层
    , ]& v4 |8 K( m6 M+ B" s1 H" ^
    * \8 Q* n! C' d4 T9 o
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 1 o. d5 ?. `- q
    不过说实话,个人觉得这本书除了用上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 发表 ( V- v% E# b. |! Z. Q( A
    孟祥萍 编著 电力系统分析 高等教育出版社
    - j+ h5 l% q  _- ~: F8 }不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
      K7 I( \% y! T' B
    ) X+ j7 p6 t: a1 ]/ a
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表
    $ Z$ f' ^. I( L" F. d我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    ) M$ _4 i# B; B- z(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com! H1 V  M) Z3 ?& ~4 K
    n=5;: D: a; g, @  i! Z
    ...
    # \2 n  m$ I, S# d8 G2 i
    这个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 发表 ) q- ^" b# w5 r* k! A1 b
    % v5 F, O, C* L) j, f
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    ' o1 U& O3 m/ L: F! t! t% z8 c! u0 ]+ V( F# p" C
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-10-10 09:11

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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