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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
) l+ G; H/ ^: V' {' j(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com$ u" W- {! v4 q1 Y  T
n=5;
) k& k4 I8 O- }5 W  C, H' x/ Rnl=4;# H0 V2 ?% S6 e5 c( ]8 W
swing=1;& W* x- A, b2 Q  {
pr=1e-6;
# S( Z* b( d4 ~5 C  T% I3 _5 }B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]
' l; R" O' G8 N6 c    2 3 0.01+0.12i 0.04 1    0;& F2 C7 u1 l6 b# U8 p
    2 4 0.2i       0    1.05 1;
+ [  ~( c4 _: M    2 5 0.12i      0    1    0]
$ s! D# [* M# h" BB2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]9 I- _0 F3 R; r5 o2 t1 {- Z
    2 0    0  0   0  0   0   2;
3 w5 k- z* i" Y$ s) _: y    3 0    0  0   0 0.9 0.6  2;
. N6 E8 S) `. L' r5 o- J8 H3 {    4 1.0  0  1.0 0  0   0   1;  v# W  @/ z: h% T) R5 g
    5 0    0  0   0 0.8 0.5  2]
* Z# k3 M8 ~; sX=[1 0;%[节点号 导纳]# Z; ]3 @4 _$ }4 _) O/ O! |
    2 0;
& n  a3 x9 M  S4 i. X1 ]* o    3 0.1i;! `0 L# h: e, d: a
    4 0;( x& _9 F8 @. r) k& D
    5 0.1i]: ~0 O! f0 b$ ]3 R5 _
Y=zeros(n);  %初始化节点导纳矩阵( G" e- z0 D$ d1 |" x, _* l% r. O
for i=1:n( ^  E/ q. _' c4 Q
    if X(i,2)~=0;
6 P' S' E( N, e  P* L: N        p=X(i,1);
4 h' z; f, U; F' }! t# }        Y(p,p)=X(i,2);  %写入节点对地导纳  y+ ]3 L! _4 R7 ~* R6 E  J
    end9 [0 i/ s' t( ~+ _9 k
end
) Q# J+ ?" x1 \) ^for i=1:nl
: J4 _  W  Q9 m, M2 _( D    if B1(i,6)==0- ]3 ?9 A- b) m) s/ A  `; C- R& `
        p=B1(i,1);q=B1(i,2);
, G. i! F+ m( O/ \: h    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
9 s; h5 p8 [0 J) E- x( J# C& I    end
; ^* c# S/ L2 E2 n/ X( I    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
/ q5 `8 X% i- P* C    Y(q,p)=Y(p,q);                                    %互导纳" V- J9 p1 F& Q- \: i. W
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳( u' w4 _3 K, _1 R
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳+ j6 y2 p  P4 C( P8 z7 v
end * Q9 C7 \6 e- ^: ]6 c
Y8 o7 Z7 L; E( L3 N5 r
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角
) H5 Z+ g' n! k2 k- t0 U) x. e* a* q
%--------------------------电压及功率初始化模块------------------------------
: m" }! i. k# @0 u3 y* Y
8 X# x% y" `7 ?; }3 gdelta=zeros(1,n);U=zeros(1,n);
. m( Q1 `' u0 o- sfor i=1:n
6 O9 h* J5 e8 v2 Y    delta(i)=B2(i,3);  %节点电压相角初始化: ]& @+ z  U" H/ f+ k
    U(i)=B2(i,2);      %节点电压幅值初始化0 e5 ]" G, H+ ~3 R# ^+ R& x
end
5 B7 `# V8 H1 a$ k7 p* F0 w" u( m( q
P=zeros(1,n);Q=zeros(1,n);1 M5 F# ]4 L% ~
for i=1:n
6 U  u8 }2 H8 N3 H    if B2(i,8)~=0% c  r+ E- ]# ^/ O: c
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
5 C/ d! L0 ?$ [9 P. U5 S5 u& n    end; l- V: V+ y3 g2 F) A- v- f
    if B2(i,8)==2; _  F+ ~9 f$ Y' |, O% \
       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
1 |5 I& X3 u! T( ^+ ^$ ^- c, x    end   9 M  ?% u7 w4 r$ |
end
) a; N  a6 L" K# b8 {1 W2 `, }2 m) N5 R* w4 \

% O; S) l, l# z: ~% n# s%------------------------求各节点功率不平衡量模块----------------------------
, Y4 |! l8 s9 H0 y1 ?, O* r# t, F* \, i$ M. N' u
NUM=0;IT2=1;  %定义循环次数,循环条件标志6 R. u, k4 u% Q* M
while IT2~=0. k2 R9 j5 c6 O: w0 @9 U7 i$ a$ l
    IT2=0;t1=1;t2=1;
7 c. o/ I/ d6 f2 _2 l+ t    for i=1:n
5 l% P6 t& b# U% l           
( L. M1 V, [6 t# N- c5 P6 c            C(i)=0;1 t  u# I0 B# f( {3 [
            D(i)=0;
0 w- R. C$ X7 s4 t  w: X% a) h9 |/ l            for j=1:n
1 Z, k0 b3 J2 J& V4 r) Z7 _  J9 ]                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
% n1 M) g/ `( E                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
. J6 ^, s! Q9 p/ h            end
3 |6 H1 j1 W2 z0 n6 o! N  m        if  i~=swing
9 x, @5 h: L. ]- p) d  k            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量. T/ }2 x; G$ m& z
            t1=t1+1;
& N- _; _5 k, p3 a            if  B2(i,8)==2
% M& e" e* Y+ {1 Z7 `4 m$ K                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量/ H( u0 D( v4 m6 {
                t2=t2+1;# @; w  Q3 v- B) m6 i+ x% L* U
            end
3 k' z, O/ F- _9 N4 S7 X; P        end  . F* h6 z0 I1 D! l8 [
    end
* j% R1 j2 F3 Q5 m& Y0 k4 a   
5 T7 s5 }1 [% ]' O0 o. u    t1=t1-1;t2=t2-1;
) E  Z* q- j, h    DPQ=[DP';DQ'];  %功率失配量矩阵, e% l; y* Z9 o8 }5 T
    for i=1:t1+t2  @) @; @" m9 X
        if abs(DPQ(i))>pr  %收敛精度判定0 A0 ^& ]& ?- l1 h, S
        : d0 @/ X( t; ^; k, t" p, c. V
            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
: |: Z% {) l3 a         end   
' k* v" s- Z- b# d: _( y9 e    end
% Z7 I3 P* K' @: A+ k" H; u3 d0 I4 i: Q$ }
%---------------------------求分块雅可比矩阵模块-----------------------------' U( `# y2 ^1 M0 d) V

+ _, `: k( u" F/ ?H=zeros(n);! z3 {( b* R, T0 p# X
N=zeros(n);7 g6 y5 M. H1 G' R. b
K=zeros(n);: s% J# @4 t6 q
L=zeros(n);  %初始化分块矩阵
5 u7 t1 u$ S4 W0 Afor i=1:n8 L3 I- W8 c" R$ s& E' o
   for j=1:n
) r: v* i( a0 _, ~4 g5 v6 w9 K       if i==j, {: m0 n8 {. B6 k. ^
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));3 M" e4 q9 n$ Z- u. e) Z; P1 @
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));8 W- n. \( k+ z5 v/ Z* V
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));; m+ L' X5 h- ?- N+ K/ @) U/ l
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元/ C+ b. ?: h+ g; C
       else& `% ^7 ~6 m1 Q* o# h8 z* G4 I
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));# V% d) g5 C' z. j1 X6 t7 S4 n2 z5 e
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
8 ?9 A% u3 R; |" C          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));4 m) w3 m  l, ?
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
1 t! N; n. r1 M       end
* e  U! z  L. Y/ o3 m8 D4 o   end% s' [6 y1 j6 k* E& a3 T" u
end0 f3 k$ a9 }$ s1 S' f% j
    * i# ]4 H" |5 s7 {/ m
%----------------------------求雅可比矩阵模块-------------------------------
  }6 S, a1 l: f! l( F( e9 v5 [) T8 ?+ M- `; e$ j
J=zeros(2*n);  %初始化雅可比矩阵5 Z2 l$ k2 Y3 j) {% N) w: T8 @
for i=1:n2 E1 T9 a9 P: Y; O
    for j=1:n( Z5 W# A1 v7 _, u
        J(i,j)=H(i,j);) t& G9 ?* S( G2 I. u2 |
        J(i,(j+n))=N(i,j);
8 |1 B: e$ r  n        J((i+n),j)=K(i,j);
; a' W) }& r7 N: _7 X$ d  O        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵% A6 t; Q9 F# T
    end
; x1 s! g) q% N# {1 Tend" u: ]6 D8 _- k5 l; y) B

6 j7 x* I+ Y0 [/ T2 K  W& SPV=[];+ u+ z" F" i- s* K' z
for i=1:n- @3 \' n" u$ V& u. `
    if  B2(i,8)==1
$ h3 L4 r& Y, W' r& c        PV=[PV B2(i,1)];  %记录PV节点的标号( ~* a/ s: [4 N# U/ z/ ^
    end, w5 E9 y) v; _: b
end  
) Y) i9 E8 `% s$ i, J7 d1 X/ O" D+ i: g$ q) r" V
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行/ ^% S: ?5 S; N7 v" `+ m3 H: n
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列) s0 o- [# v$ h, w
' p3 G- T, G7 F. s% Z( `6 k
J;  %最终的雅可比矩阵
$ h3 s6 v8 H2 P( y9 Q
- S+ `4 ?3 z; k4 @- X%------------------------解修正方程求各节点电压模块--------------------------4 ^8 F, M, T4 G( K0 @3 W: m2 k' d+ r
  
9 a( X+ ^: ~$ p7 z3 T2 o    modify=inv(J)*DPQ;          %各变量的修正量( v8 U5 i! ]# Z/ M4 @* R; \
    Ddelta=modify([1:t1],:);    %节点电压相角修正量
' A1 I6 ~6 \" i7 e( F" D    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
  U% ?1 ~5 y4 n! E# m! a. y   
2 ~* w3 I0 t9 x5 K' Z! [1 v4 C    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
; z0 b9 F* q' M0 k% P    t4=1;8 e8 [8 R" Y- {
    for i=1:n
# W, R0 o/ b( L2 M) C* V$ R        if B2(i,8)~=0
4 b: A3 r, i0 X, o        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角4 j4 \. J; Q7 u9 e
        t4=t4+1;
- |) A; z0 o- F1 |9 b        end9 h( \) R5 Z( n2 A+ R
    end
0 z2 G; w1 G( [( M" |: h
* W- t9 h, Q! K6 w+ K/ y    t5=1;
% ~. ?* U3 U  ?! i    for i=1:n) N0 F/ I: N0 w3 d  g7 L, Z
        if B2(i,8)==2
1 W5 U; H% G# V& W* Q        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
3 L) i% z( q* B; l" w* i& E6 i& }        t5=t5+1;
8 s1 u  G9 W2 U! r$ B( j6 s        end
$ {% F! Q, h( n# G& P" L6 T    end( Z- O, i# t7 [8 Q& c4 y$ Y
    NUM=NUM+1;  %迭代次数
8 v& A( Y  S; n6 p" j7 }# T    if NUM==1   %最大迭代次数判断
$ @4 K' N  |$ S2 R/ C' i; m4 ]* Q. z        break;  %超过最大迭代次数,跳出" c/ Y4 E: ]) B) d8 a* S
    end   
5 [8 L6 C# P6 d" iend   
- g9 O. N$ q% u( I& R. I- C1 [
) E" F* n- q/ S%--------------------------------输出模块----------------------------------7 e) s- K; F/ m: J; d

, r' K. F( \5 a: U& w7 N! k$ xdisp('------------------------------------------------------------------');  H- q1 j$ T. V2 v4 F9 Y1 n$ V
disp('各节点电压U幅值为(节点从小到大排列):');: L3 z; E* y6 [4 J/ j
disp(U);        %输出节点电压幅值. O4 u' O/ ^  y
disp('------------------------------------------------------------------');0 |% M. B( A9 A
disp('各节点电压相角为(节点从小到大排列):');
( B" N0 O" s' t0 d$ Q0 }0 L6 fdisp(delta);    %输出节点电压相角
- j/ O/ t. ^: H& p& b9 J7 Sdisp('------------------------------------------------------------------');
7 J9 z3 M' u, ]( Jdisp('迭代次数:');
( N- T3 s# M7 @0 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 | 显示全部楼层

    # {1 u6 s( n1 M% W" z9 ?- P& ^" t
    2 [, O6 c3 K8 J# F) m+ B9 d那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 ( t2 Y- k& ]3 c/ r) r# 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 发表
    - ?3 [" M: c& m( ~0 `孟祥萍 编著 电力系统分析 高等教育出版社 $ u9 \6 i2 c- y8 l6 d
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    8 _: c3 a1 o" h' b/ ]% L, z
    # k- \( [' A) U& Y- M- B
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 d' U3 M) `' M" _3 [) M我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢) _" \% N. f; b" n# l
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com$ \# ?; ^7 L) u, ~) x
    n=5;
    / H& U( j( {7 H; {+ T ...

    % x4 o# s+ a7 U3 a3 N) a% [1 q8 E这个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 发表 * w. M" \* a7 L' [

    7 t9 ?0 p' S+ _* \# Y0 L3 {/ F这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    , T" t& U" L$ ?: Y

    0 Z8 ~: Y; X. W( c2 p; d/ a  {有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-3-17 02:26

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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