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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢! o6 c1 [! v! E' Z# J' @6 }
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com* z# f) j9 r* e" W. w9 Q2 f0 [5 E" B
n=5;& S* ^, J. c) ?+ b7 f: k1 a
nl=4;
2 q# b4 _1 C  }6 s. Kswing=1;# F8 M. S/ Y, {6 f! Y" {) P
pr=1e-6;$ ?( X) u. a3 Y4 m% `4 i
B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]0 S# Q2 j- U* `3 c1 d: |+ ~# F2 ~/ _
    2 3 0.01+0.12i 0.04 1    0;
+ N/ x4 m! N# X# |) v+ k, r. x    2 4 0.2i       0    1.05 1;/ W0 `! m& p+ v
    2 5 0.12i      0    1    0]
6 u$ d  g$ l0 IB2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
4 {. m( ?, \: a8 ]6 B: Q    2 0    0  0   0  0   0   2;+ w: Q7 V) T8 ?3 `
    3 0    0  0   0 0.9 0.6  2;$ z* P8 D7 N# l3 m5 D
    4 1.0  0  1.0 0  0   0   1;
9 B4 v7 Z4 u) p1 b* `2 d: t    5 0    0  0   0 0.8 0.5  2]
3 g+ X' _2 m$ I. A# o- m7 ]X=[1 0;%[节点号 导纳]
: V2 ^( s/ a1 q/ O  g" V    2 0;
5 X8 f' ~  q3 |8 m) Q; |    3 0.1i;0 R, r' i3 r* B3 L
    4 0;
  R9 |4 j: W1 O4 q& }    5 0.1i]
2 _, g* f: I6 P6 W* i- SY=zeros(n);  %初始化节点导纳矩阵
/ g' U$ J; g$ ]0 Q! wfor i=1:n  j4 E5 [) e; o0 i
    if X(i,2)~=0;1 a1 _! c  K# J9 @& ]' W. m2 m
        p=X(i,1);* S# ?; ?: W! R; R
        Y(p,p)=X(i,2);  %写入节点对地导纳
; [. u' g& ~# Q# ^; d# b3 V    end
; m/ {( S. ^$ w5 B* ^7 m. {8 B2 hend
! Q8 W% r6 S. J4 ?for i=1:nl
; K7 P2 ^/ h. l: |    if B1(i,6)==0
' ~- w6 m9 i$ B        p=B1(i,1);q=B1(i,2);- k9 ~' e6 ?: _3 G
    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
# r# t; o& x6 i8 x1 F. ?* j9 C    end
& W4 ]% N! b) j; I  T    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));! v* L8 \) l. R, X& k
    Y(q,p)=Y(p,q);                                    %互导纳9 [: {! i9 W" h+ ?/ r! O
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳+ s, t+ G. o! [3 p- ?8 e" h
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
, Q2 P5 A& ^/ z  X( j7 A+ q4 }* Xend
: y; z) t7 _2 P+ qY- P, ]- G1 m% g0 Y. f) Q
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角$ c7 w) N9 g" i1 J

1 y# _  o/ e% v0 Y3 u$ e%--------------------------电压及功率初始化模块------------------------------! A( H: |* a  V; l
& Q. |+ E  x6 I
delta=zeros(1,n);U=zeros(1,n);, d2 x/ f7 n! X2 i, G
for i=1:n
3 n3 w) o. z4 X8 R* ^    delta(i)=B2(i,3);  %节点电压相角初始化$ p) a8 s( d( ]! j5 h; ]
    U(i)=B2(i,2);      %节点电压幅值初始化
  c; |# z/ l: t+ B2 t' g, E3 I9 ?  Mend
5 K( y; e) F+ K: O
: @5 x, M# q: f: s; OP=zeros(1,n);Q=zeros(1,n);
/ m" ~3 N" c  B# f- `& `0 \for i=1:n: o5 j" g$ s" K, y: u
    if B2(i,8)~=0
$ Z+ C' k% {/ n1 D7 U+ n5 R       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化$ r! H& _) `2 c
    end0 L" }4 W& _1 x4 w" k% ~8 M
    if B2(i,8)==2
" Q8 _0 t5 z6 r- w5 A& O7 Z; q; O       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
5 q' T4 g- |7 T5 B+ s    end   
+ ]4 I5 r% Y5 B& N$ O- R% O0 eend
! z; O7 r2 e5 M3 q$ C+ X$ R; g
; X$ ~. ~, N4 @$ ]
  p9 J4 P& |) \7 v%------------------------求各节点功率不平衡量模块----------------------------3 I. w2 c' v# E7 G  B* q

7 z* k* x# W0 e; S' C" }" _NUM=0;IT2=1;  %定义循环次数,循环条件标志
& y! K5 U" S7 T* w. nwhile IT2~=0- P6 O. n: Y% A
    IT2=0;t1=1;t2=1;
! W" o6 ^6 Q7 t6 y( E, A- N    for i=1:n) `% m% Z2 ]8 a$ y% [: l6 z3 @# \6 z
           ' F+ M( a: L0 O: \/ S
            C(i)=0;5 t; @$ F3 D" w7 i, v! j
            D(i)=0;6 Q2 b* C5 b$ d3 \" X# v
            for j=1:n& f) M% r/ H* S" V* d8 Z. }; V
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
( v/ I3 j1 l) @& g! o) B) }                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
7 f2 H, @" Z' w8 Z3 {            end
, @  T: b2 P2 j4 E+ F        if  i~=swing% Q! w% C1 q4 Y, \4 a
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
0 {8 O1 |! o) h$ I; c2 L* @/ H            t1=t1+1;
( h, _  k4 D5 u3 p5 X% I            if  B2(i,8)==2! P. }4 ~3 c* j: H! T' E
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量! ~% _. U  M. o3 i
                t2=t2+1;8 x- y9 W! k; H4 J, |9 m
            end 0 j9 Y! C" M* Z; e+ ]% q
        end  $ Z0 c8 Y* J% J! `) f* b
    end
$ w. q6 s. E. m' O3 y   
. I; M+ `1 N7 J+ [    t1=t1-1;t2=t2-1;2 n4 U, r* w  ~
    DPQ=[DP';DQ'];  %功率失配量矩阵1 u  Z5 M: |4 i0 z% [) M: c
    for i=1:t1+t2* L* i7 c  |# ~  M
        if abs(DPQ(i))>pr  %收敛精度判定6 m7 D( L# G! S% C' b( L; q6 w
        
% c. P7 h% V. R8 t* d            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
+ A8 k* e; h# y9 D! a+ F, X# d( T         end   8 }. H9 m" C4 U% }3 x, c+ m
    end0 _2 K* g$ w; r" ?, y6 D
6 a$ P8 G5 o7 T, B
%---------------------------求分块雅可比矩阵模块-----------------------------
1 @. _: ?2 E* Z2 U. t% k  `; N8 |6 P0 L* ~1 `, F7 \9 r9 B" Q
H=zeros(n);7 ~) f7 y% ^! J4 n5 \1 P& R1 W$ V* [
N=zeros(n);# F/ J# S+ t% k3 }. G* P. ?3 x4 w
K=zeros(n);% q) S. K3 [# e4 Q
L=zeros(n);  %初始化分块矩阵" ~. t' k  u# n1 n7 ^. o
for i=1:n0 {( a4 H* U$ l; l$ f
   for j=1:n' D% B: F0 b8 B# m
       if i==j
' s, J6 W: E/ @1 P. s           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
6 [2 d' s9 ~' c# ~* ~           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));  t! S. n3 v1 `. l, W
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));2 w3 c, K! P- a9 A
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元, h/ n- Q8 ]2 C/ m, \$ l, s
       else- T  G5 p+ T8 D, E# C: O" |7 c
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
6 F. j! J4 u1 [$ A3 T          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));# o5 O1 R8 [+ F! U4 S# Q6 ]4 m
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));" r: O4 G" ^7 g, ~/ w: j( ]) W7 t
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元( V4 q0 p7 F. S9 o, Q% Q9 c
       end
( s/ p! D& E3 \" t% ]7 o8 G   end( I3 F* u# d4 H% Q1 b/ \9 `$ b
end' \  E: N7 W/ v- C, V
      x& Z( R1 s. }+ K' g& q2 l, q5 G: }
%----------------------------求雅可比矩阵模块-------------------------------9 [) I) T' K; q3 B9 r

% C( H: q2 [4 Z+ m9 UJ=zeros(2*n);  %初始化雅可比矩阵' `) k- E) j  ]7 U1 {
for i=1:n
8 E7 b) V! d( _+ @1 r+ d- U    for j=1:n
7 J: q% v( K% x) a3 O9 V        J(i,j)=H(i,j);
: N. F9 j% L9 R8 @: P        J(i,(j+n))=N(i,j);
; o4 m) n5 t3 j, i' h8 U        J((i+n),j)=K(i,j);
: E) S4 ^# t3 L$ k        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
/ t* G/ X' i( }& f% G( P4 r* [    end
  }1 `$ h1 V9 _( ~end$ o- w2 c( N5 [. I, y$ P3 k
( I( S/ W  q* @2 K' O- u
PV=[];
% y& x+ k7 ~5 }- E2 mfor i=1:n+ `1 e( K$ o5 v: }" p1 Y+ C  r! j
    if  B2(i,8)==10 M3 q# }) L9 j3 _  K/ Y; G
        PV=[PV B2(i,1)];  %记录PV节点的标号* x1 b$ n. }+ U/ G7 N
    end9 }6 ?; X1 l  m- ^
end  ; O! y6 u3 Z4 C5 X& k

8 M7 g1 u/ k+ M2 p# r! V2 f+ h  jJ([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行! \. b& f/ T8 A9 [' R
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列3 n6 m, a& J/ W% o" _+ }! S3 V% ^2 u
% p5 L( {- r8 T1 B9 Q
J;  %最终的雅可比矩阵
7 G5 N/ R( d/ [! m  _; V5 }# `6 R& B! s8 h
%------------------------解修正方程求各节点电压模块--------------------------+ ^/ h& g3 J; ^& J
  1 u5 P2 `% a" U" T; {
    modify=inv(J)*DPQ;          %各变量的修正量" M% V6 s9 V- e# Q
    Ddelta=modify([1:t1],:);    %节点电压相角修正量
$ Z) Y: R. v, D2 a6 M! e& `    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
1 v6 _2 w% O4 ?0 ?0 v   
/ g, W8 i( p$ S+ f6 N    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
: T- q7 @1 n4 ^    t4=1;1 b8 n8 [3 Z2 ~5 x5 e
    for i=1:n
2 R0 I7 ^, |9 E  W        if B2(i,8)~=0
5 I" y7 Z8 u# T5 p6 ~        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角9 B9 T, g7 ?- B% b0 P
        t4=t4+1;
7 G& ~: g4 }& T* t2 ]0 ~; o3 T        end. y. E5 Z( O4 \) e1 z  h
    end
0 e3 s4 W: H8 m0 u3 j( Y  |! b4 j* Q* j6 }' W
    t5=1;  Z! \. Y! b2 i# u8 p# c
    for i=1:n
# o- e, r, |% x9 _        if B2(i,8)==2# I, B2 h0 U( x
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
$ H# U  m! \# Y, B& ^7 _7 _/ I$ k        t5=t5+1;
* r9 Z6 v( X5 q$ Z& ?- X        end
  X" o$ Q* w: u2 m3 G  S    end
/ V- _7 y. ^" A0 g+ u& i+ F    NUM=NUM+1;  %迭代次数
9 H1 d% q" a/ z% L6 `5 Q    if NUM==1   %最大迭代次数判断5 \* V3 M6 w, C$ ?" L! k& w  N
        break;  %超过最大迭代次数,跳出
: B. q5 [: c4 ^) z" t0 i+ f: i    end   
; t2 G0 P& A1 o8 {9 Pend   , u6 h* ]+ F8 l

) I, F9 k1 |! B8 M%--------------------------------输出模块----------------------------------6 M/ z0 ]) E3 v4 Q3 u6 W
% a$ v5 f. R9 I: G9 `/ m- w
disp('------------------------------------------------------------------');
& |/ `/ I* d$ l, A) {0 Jdisp('各节点电压U幅值为(节点从小到大排列):');4 f9 F8 L" N' g4 L1 Z; @
disp(U);        %输出节点电压幅值
- o" [2 _: n" z! ?5 _! H  A# \disp('------------------------------------------------------------------');* g4 _! n9 y  |
disp('各节点电压相角为(节点从小到大排列):');
) c1 A: {& t! @6 G& I9 k7 pdisp(delta);    %输出节点电压相角
1 S! K* @2 ?" L/ C3 _+ l! z  {disp('------------------------------------------------------------------');
7 z3 X/ ]" n8 g7 Sdisp('迭代次数:');
1 [! d/ D7 s- M# n2 x5 K. vdisp(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 g+ X4 u( h* K

    7 U' \3 N4 L% g1 S5 I$ n; k, ~那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 # O3 B) j; b7 W0 s' c  J% R
    不过说实话,个人觉得这本书除了用上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 发表 . S; N! {4 M/ T8 e- ~% J" u
    孟祥萍 编著 电力系统分析 高等教育出版社 & X( R0 X2 S1 a0 _" T
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    + _  x" ~$ I: D. v2 e4 `1 x5 P! |7 g4 @5 e0 v. b! p. a3 D
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表
    ( ]- N0 W0 b3 K  [* X$ T8 E我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    7 O. Y6 G! O5 i5 p: @$ Z  N(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
    6 _3 b, C+ a* V# V+ n& z; un=5;
    & {0 r1 v* ^% D3 `. F ...
    / l; K7 D0 ]# [' S& @  p% @
    这个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 发表 * H$ Q9 Y  l2 ~9 U: K/ Z

    , x4 N) G) S) w# f这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    & g- n+ p' {7 D/ K9 v. u

    : w: X9 {& L, Y: b! S) n有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2024-5-18 08:09

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

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