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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
! a5 `8 Z( B/ M(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com) m# b2 P( k4 y* \4 u* Y
n=5;2 |, `: e4 s; R& P9 m% ]
nl=4;8 k+ s  q2 M# B7 s* K; e* z& o5 c
swing=1;
3 U2 e6 {* Y: j3 f6 U# I# ypr=1e-6;
9 v5 g7 r! z! g1 V0 ZB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]
" E) ^2 h8 B  C( T3 E    2 3 0.01+0.12i 0.04 1    0;
8 H% L1 C. ^7 a5 V0 Y) X    2 4 0.2i       0    1.05 1;
+ k$ m+ ^2 N, C1 g% h! E' ^    2 5 0.12i      0    1    0]$ H5 B4 T9 n% n- N
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
# p4 d, ?8 @* k6 X    2 0    0  0   0  0   0   2;
8 U) J& n0 n& ^, w    3 0    0  0   0 0.9 0.6  2;
2 ^3 v' m3 {. @/ P& ^" F    4 1.0  0  1.0 0  0   0   1;
) o' m. }( t+ J! T3 g6 a& B    5 0    0  0   0 0.8 0.5  2]
9 y0 D8 G. f3 O4 t4 \/ ^X=[1 0;%[节点号 导纳]; R, j1 Z) ]5 O% w
    2 0;
8 e- }5 X. X9 k$ _- p) I    3 0.1i;' X2 H, t. x8 d; r8 L+ I5 v
    4 0;: A' n1 [0 {8 e2 r+ H
    5 0.1i]6 I' Y/ C0 x4 g
Y=zeros(n);  %初始化节点导纳矩阵" [% ]& y: ~# K
for i=1:n
2 e; n, L6 e3 a3 o  j0 F- I; }- a    if X(i,2)~=0;: R4 V2 H. Q% K4 d. B0 K8 b
        p=X(i,1);# M) I- H* Y" R4 D  ]$ W2 z  a
        Y(p,p)=X(i,2);  %写入节点对地导纳" y( D! p4 [9 z9 w8 g
    end2 R% [. e9 _/ k: d1 y4 h
end, a" B  T1 a, H$ ~3 ]4 @' L3 r0 ^: [
for i=1:nl1 n8 n9 U* \7 y, o: e
    if B1(i,6)==0, o. b! H: P& C( {1 ~& t* R
        p=B1(i,1);q=B1(i,2);
: x; j% ]5 ?! T2 q' d    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
5 U% t! p# B5 R# |. D    end
6 f+ V- S" L/ n* G$ U    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
% V& u9 W& s1 Y# V% q5 S1 S! D    Y(q,p)=Y(p,q);                                    %互导纳
1 [* ^9 {* l9 }    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳
1 J" ]/ y! S6 ?) a5 v. T" h, _    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
; N% T% N# y. q; Send 3 j! ]! q, n0 N3 ~: _4 g
Y/ L: H8 e/ S/ {1 ?" r' c  ^9 f
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角8 K, C9 d. _7 ]

' j/ {4 j- X$ _- S- F%--------------------------电压及功率初始化模块------------------------------
# c: j6 b  R6 s9 D. X2 B& G% B  Y
7 v. U& y3 i4 n' Q* t) \$ zdelta=zeros(1,n);U=zeros(1,n);
5 \. g" \0 `! Yfor i=1:n; _. t* \6 n  ?' n6 c5 j* ~# x
    delta(i)=B2(i,3);  %节点电压相角初始化6 k; m; i  K; E7 d* ?7 _
    U(i)=B2(i,2);      %节点电压幅值初始化9 o7 l( F+ @5 W: q4 n" i5 [7 R" f
end
8 a. I; a' t0 ~# ]( z, @! U
3 f* V  p. U" B8 x' HP=zeros(1,n);Q=zeros(1,n);
4 _0 O. o' M. U: ^$ z( K, xfor i=1:n
7 b+ ^( {& W$ j1 Y4 N; P    if B2(i,8)~=0" c' ?, l0 `8 F7 s! N, B4 r/ I
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化! a; x: {! |  G+ }# q$ e
    end9 y& o4 m) t0 w$ L5 a, ?7 }* [
    if B2(i,8)==2
2 o& ?0 p1 o: G* d# ~" X9 v( ]& O       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
. w; a" x: M- q; x5 U    end   0 \7 \9 L- ~+ p$ `
end* F+ c, l; d' l! U! [6 U8 I9 [
& h% ]4 }$ L1 E. Q1 D

% n4 }2 T! Q8 ^2 \$ ?8 S2 Q%------------------------求各节点功率不平衡量模块----------------------------
; U( Z# [6 u" |! [7 ?
" }9 ?1 V+ J  l! _8 R6 R6 @; E3 BNUM=0;IT2=1;  %定义循环次数,循环条件标志
% p- t, d7 X6 f8 Zwhile IT2~=0
; P5 M8 b: X. x2 ^    IT2=0;t1=1;t2=1;: x0 H5 A2 I4 e1 N* f5 g
    for i=1:n" l  i6 L* x+ f* b
           8 l0 _* B/ p# U, T
            C(i)=0;
4 _! ]4 b. B6 ~9 O5 Z, g8 Q            D(i)=0;' {' S* O1 X+ f4 K- |
            for j=1:n
2 a( S, X; W' [5 V& ?8 F                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
. T! |" Z7 C+ @7 W9 |$ R# v4 X/ d                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率" h' Z! ]8 f3 U& M
            end' ^0 ^2 ^/ Y& j$ B
        if  i~=swing( L5 N2 A. T$ b9 F( V
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
2 q! W% }: x9 u7 q" I' i3 \            t1=t1+1;) v/ ~& X* E7 e( N
            if  B2(i,8)==26 Z! @2 T+ U& F. ]) e
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量. k- d% V' t2 ^
                t2=t2+1;
9 \3 z. H. O9 d) W) a  p            end
) \3 S9 b( S. _) w$ m+ s1 M        end  
3 _2 g: b$ I7 B$ j# Z    end& |& N2 ]. f) m9 ]4 D" u0 p! \" u
    5 U6 N* H9 i. ~/ s1 b
    t1=t1-1;t2=t2-1;2 @- [3 I, Y- A% a  s# _  H
    DPQ=[DP';DQ'];  %功率失配量矩阵
5 L9 d8 s( n1 y* c% M    for i=1:t1+t2
& M8 n( ?+ }* K# {- d3 b        if abs(DPQ(i))>pr  %收敛精度判定! T6 u1 m, h9 Y+ H' R" i1 W
        
0 p9 r- C) \. b. ^; R% Q% p            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
& y9 n5 r: ^/ `6 B         end   ( s9 a4 k& V9 m" d% M3 O
    end
" R/ h- H; u& _' }1 A& t* y+ `" M. U1 q8 d6 n
%---------------------------求分块雅可比矩阵模块-----------------------------
+ s: |1 D. L* o0 f4 K8 I
' C4 y' F" g5 \: G) c( C# ^& TH=zeros(n);
5 I2 Q0 J6 r; B, Y% B4 ~- zN=zeros(n);
6 W( d( C7 M+ C5 K( ?$ {, E4 N* F7 dK=zeros(n);
, s! u( n2 N9 Z$ Q/ c$ M( E% E% tL=zeros(n);  %初始化分块矩阵+ d/ b$ D! M& o  w; Q1 p# i2 O
for i=1:n6 l: u+ P' N7 n0 r2 g' f: T; v
   for j=1:n
4 s6 C% Q! T; t) _6 M9 ], H       if i==j* {  k6 v; d8 z1 h
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));' u8 p) Z% E# c0 Y- H3 K1 P2 t8 y
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
/ e  b3 g" I, j           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));
+ }9 z/ d9 E7 i: E8 T7 f           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
0 r2 W. f+ V5 l7 r0 p+ A       else
: i$ h! x0 d5 X6 A# E          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
5 Q5 E$ Y/ e* Q. d3 [          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
& x7 ^+ N% p5 a! @          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
  J) `' L% m; V) S( C% e' u) o/ h2 Z" p          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
" S+ c9 I# }' X- A. L       end
) R* D( l+ \2 t, O   end
) J+ g: C% e: f4 Y: P$ L2 s6 ]end
# b" N$ i+ X; Q; a7 J* z   
$ H( g2 _" @( P7 @5 H7 l, q) u%----------------------------求雅可比矩阵模块-------------------------------
! ~1 V6 ?1 ^, p% h  x+ a  s  x1 l9 ?
J=zeros(2*n);  %初始化雅可比矩阵
4 t2 J+ p! F9 Q: c9 ~: p7 j9 n! K1 w7 lfor i=1:n, O# X4 J5 M3 |0 Q3 |- l6 D
    for j=1:n& q) `, T8 b9 b- e3 {
        J(i,j)=H(i,j);9 J9 ~0 l/ q' g# [! }0 t( S) S
        J(i,(j+n))=N(i,j);
" |* p% t+ t4 W& N6 e; v7 F. `        J((i+n),j)=K(i,j);
: r# e" _; B$ a8 a# Z; t: O6 G3 Z5 c        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
  a9 o" e' x$ x0 I! c    end4 K- M! @% y. U5 t: p+ ^5 w& ~- k
end
, }4 k* v, x; _% X2 b
/ G1 q0 ~! n5 p; \, ~" gPV=[];
( D; i) J7 X+ Mfor i=1:n9 k7 j% D! [6 X
    if  B2(i,8)==1: {1 g6 z: N  @, f& k  N
        PV=[PV B2(i,1)];  %记录PV节点的标号
$ o2 ^  `- F8 |1 t  z, D& g    end
+ L! c9 \6 M. J5 p" G8 a5 ~' aend  7 x; Q0 y/ ?" q6 n0 |. i8 x
# q# ^3 Q3 ^! N5 }
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
7 W' D: L8 J% QJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列+ C% D7 q, f) f0 i
) L' f6 P/ Q" Z' L' x7 m& I
J;  %最终的雅可比矩阵
3 D- P5 G4 s* G# _" c8 e4 c6 @* j% ^/ V
%------------------------解修正方程求各节点电压模块--------------------------+ N7 X/ y! v: e( k/ X
  3 t1 ]2 d2 I- r# h
    modify=inv(J)*DPQ;          %各变量的修正量0 ~  p! B& i4 S+ E; D" H/ a! e
    Ddelta=modify([1:t1],:);    %节点电压相角修正量
& u( c# H! q8 h) d5 v    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量0 H2 H2 e6 t9 M
    # X8 }# i5 J! e8 E: \/ u
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
( G8 z( [. q0 O; j; b& T    t4=1;  Z6 J% Z# B# H( Q
    for i=1:n
9 W; ]" M8 n+ s# N/ H        if B2(i,8)~=0
: V# d( y- v. b, y        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角2 m$ t) w( X0 J* N$ m# O
        t4=t4+1;" i8 o+ J: Y7 ?
        end/ _: W* W4 W) W+ H8 T4 g' O7 t1 ~* j, _
    end
" v# E6 }# Y4 {7 O3 ?( l+ f) |( [, t& B$ j# d8 x7 w: N6 B
    t5=1;& {: g: u7 h; [5 h! o
    for i=1:n
$ ^2 n" H) B* Y$ Z  y' u! c" `3 c1 h        if B2(i,8)==2+ j% S7 U* p" I
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
' b  D  m  m9 R$ C. E3 F        t5=t5+1;
5 b4 J( j6 h& \# E0 y, h; |. z3 R        end/ ]  \" ]% @0 u) U9 G
    end+ q( q' A. v! W* p- V$ j$ r8 O
    NUM=NUM+1;  %迭代次数: q2 ~. z+ U) V9 M  O& U' x
    if NUM==1   %最大迭代次数判断' {7 d2 V, g8 T5 `7 X# p/ ?
        break;  %超过最大迭代次数,跳出% a% F$ e! P0 C8 Q% {! v7 q
    end   
8 E6 @& C0 E" g0 y, w, z# xend   - M1 ^, v2 \  N+ D/ r( ]6 C

" C3 G! i$ S# H( j: ^* O7 Q%--------------------------------输出模块----------------------------------
( v+ v' F. F! l* [  f7 v3 f) Y2 {- v8 R0 A0 l
disp('------------------------------------------------------------------');
: e. _# ~( E% C- r5 {" mdisp('各节点电压U幅值为(节点从小到大排列):');6 t+ T. o% e. c. k- A% f  `
disp(U);        %输出节点电压幅值
. W; e0 W3 z# H8 C) V( Y  Sdisp('------------------------------------------------------------------');7 `( N9 k  ~: S; _3 T
disp('各节点电压相角为(节点从小到大排列):');1 S, i: {6 n2 f( D, {, i5 h
disp(delta);    %输出节点电压相角
4 H, \9 C) I) f' P( l+ qdisp('------------------------------------------------------------------');
/ Z- o. r3 ~% Gdisp('迭代次数:');
( m# ?* {4 y% |- c! Rdisp(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 | 显示全部楼层
    ( g+ P* l8 D: r  w! h) h
    / {& |4 D# n# F3 P' R, U/ k
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 * P2 e, z& x3 Q9 i; C# d
    不过说实话,个人觉得这本书除了用上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 发表 ) N8 T9 c' Z, z  W( G4 F2 w$ P3 k7 O* [
    孟祥萍 编著 电力系统分析 高等教育出版社
      a% X8 W. E6 ^8 L, G( ?" k8 n不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    ( y/ \" L6 E1 ^% j$ N+ h$ w
    : ]% C2 Y- M/ O+ u+ v4 m
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表
    ) i7 D5 U( g1 B& n; K7 I+ M我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    / {' G3 f/ U: K; A# s(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
    ) n* S. x! F! K% D8 b9 xn=5;
    8 k. ]+ c2 @: A( f8 G, M; F* t* d ...

    % o1 A2 o, Z& H1 ]这个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 发表
    ' N" p* E3 Y% i4 p2 s$ V0 j
    6 S7 T) C  n8 X6 x8 p这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    ( H" J/ p7 U  v* o  a" ~6 ?5 o! R# l( m4 \9 v( X" j  k
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2025-5-25 07:00

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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