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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
- W1 ]# g! C" A5 A( B8 N$ v(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com/ D6 `1 ?" j+ J: v" [) i) v2 O
n=5;; y" t, p+ a( E
nl=4;" c. {7 D5 n0 b% L; W) L" B( h; ~
swing=1;: ^$ x5 u8 q" b/ K& [
pr=1e-6;
# ~# C) v4 V- W7 Z+ z! q9 a- sB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]9 _& ?( s* E& c3 s
    2 3 0.01+0.12i 0.04 1    0;% @) P3 ?$ i# Y( k( o/ y4 _- I
    2 4 0.2i       0    1.05 1;
  f! N' s, G0 a+ s# p& I    2 5 0.12i      0    1    0]+ ~2 X& g8 A# R- X' q8 K
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
( O6 w" \6 j5 l    2 0    0  0   0  0   0   2;
" ?! D6 ~+ J4 J+ W) I    3 0    0  0   0 0.9 0.6  2;
9 w0 U- p4 E4 i: v    4 1.0  0  1.0 0  0   0   1;7 R/ n: f" D% l; k2 i2 H; X
    5 0    0  0   0 0.8 0.5  2]& }% Y4 g5 E3 c. K
X=[1 0;%[节点号 导纳]
2 e) C# J7 a" f$ N    2 0;- C. _6 x. a+ I2 U, [" m
    3 0.1i;
6 F* v' m* V: G    4 0;: Q' {  z# h1 L) F; n& {
    5 0.1i]
0 ~; c* j* p8 W3 c4 o: DY=zeros(n);  %初始化节点导纳矩阵
0 f( M* \- A; {( Z8 Gfor i=1:n$ H4 v& s( _9 H/ E
    if X(i,2)~=0;$ m. s2 |3 Z5 l2 g: P& o8 r
        p=X(i,1);
0 p* i8 l8 R5 Z( E1 B5 U+ i% q( M        Y(p,p)=X(i,2);  %写入节点对地导纳) r% }  c. ]5 a" T
    end
* U8 _. G4 W8 D7 d8 [, nend
1 Z  x2 `, Q! afor i=1:nl. l5 [  J: t5 b! e) `
    if B1(i,6)==01 t) J% K) U# b* _$ C1 \4 A0 R2 v( j
        p=B1(i,1);q=B1(i,2);9 E8 x, }6 ~0 B5 U( Y+ ]1 B
    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点* w" Q( I8 k7 |
    end
/ H4 i2 ]; {8 `7 e+ ?  |+ @    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
! I% O* A1 }4 d5 d    Y(q,p)=Y(p,q);                                    %互导纳0 X- j2 _! e( P" M$ o' ^
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳; f3 G) G* X4 O4 W
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
% f! ~! G0 h, Y4 V% \end
; \+ {" E* k6 u4 oY
0 e. C; [. y" I/ t; I) M* q    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角3 z& R) Z$ Q- Q" F1 c4 m% d0 S0 `

+ H' T5 y% h1 M& u" w%--------------------------电压及功率初始化模块------------------------------
* a* ^/ h# ]( r6 L( p9 W: c% {  c6 E2 X! S' m
delta=zeros(1,n);U=zeros(1,n);
8 g2 Z: X, z/ `5 o! J& @for i=1:n" e) `. U% x3 w
    delta(i)=B2(i,3);  %节点电压相角初始化3 b2 E8 G% R2 S7 G# T7 e8 J* U$ S
    U(i)=B2(i,2);      %节点电压幅值初始化
5 d2 t4 C2 ^9 r# H' U# qend
  C* z7 |  K. [- a6 w9 n5 ?' t7 A. r. y6 _. @/ a' u; R
P=zeros(1,n);Q=zeros(1,n);0 U* M/ n2 E' O# Z* B
for i=1:n
; @2 Q- l, x; R- A/ G7 ~9 h$ d    if B2(i,8)~=0
5 e: }8 K. D; |  g* @       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
  {( p6 A. E  R* q    end
) v$ F) P1 W- R: |: s! T5 r    if B2(i,8)==2
! u8 \5 X. ^' X# O. y0 P9 s  d8 o: g8 R       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
/ t! F# U" r& x" @- C    end   5 f* P6 H, d" D8 S! R
end
8 C& M, U% I$ J
0 V, y* Y9 f  T- r! l" H% [  Z1 p0 v+ ^* m& ]3 S5 I
%------------------------求各节点功率不平衡量模块----------------------------1 c  x5 k; k/ S2 F* ?/ O4 G, O

% Q" ^& j3 Q+ o* h5 F* W2 XNUM=0;IT2=1;  %定义循环次数,循环条件标志
8 w. H& o9 u! p0 b3 w# ^while IT2~=0' n: ~+ i$ @9 v# b5 a  N
    IT2=0;t1=1;t2=1;
" Y6 {7 z9 J' k4 G& ~2 I/ x    for i=1:n
7 w  v) u9 Q1 m& {# b6 Q2 V           
5 ?3 B2 n) c6 `( L7 T7 m/ M' n- j            C(i)=0;
0 ]* p4 [( k2 F! q, f            D(i)=0;
; }0 I3 ?$ `% _            for j=1:n- Q! y" D$ s  J2 |3 F2 c4 s
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率/ i% O) T7 u* r. {) X& R
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率; b5 H1 I' h4 l: l
            end! p1 r3 N) _6 B4 \$ I; m/ f' ~
        if  i~=swing( z) n  V4 A* I( B. i6 `! i* |
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量1 r1 L0 z# i# P2 L! K! j- x
            t1=t1+1;
4 Y4 @) m+ l  `& Z5 E: ~) R" E9 K            if  B2(i,8)==2
5 r4 C" J3 i4 H' k2 n' S                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量. j- k7 A  v0 j$ Z5 m: F1 V. Q
                t2=t2+1;
' @. m& V; ?6 [  Q            end : O5 ~" ]2 H3 d5 L  m  _2 }6 M
        end  ; p. c* d1 Z6 G$ b& u4 ~4 O9 T
    end. V5 y0 Z3 C& W
   
9 a) y' c" b7 y" V1 b: @4 z: l    t1=t1-1;t2=t2-1;2 v9 s2 n2 Z- V, z) d6 o4 `
    DPQ=[DP';DQ'];  %功率失配量矩阵
) a; r7 T$ P! r: e    for i=1:t1+t2% _; m4 A- ?3 r1 m
        if abs(DPQ(i))>pr  %收敛精度判定
& {3 Y0 ]* q* }1 p, R7 _( x        ) {: ]  v# w" n, p- O& t
            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
4 K  }: v% N% r1 U" d6 y! |8 O         end   
* ?0 E2 u$ h: c! x- E/ }9 D8 M+ @  |    end
: }! s9 r9 [  m% Z* L) h7 G8 {- i' N' ?
7 F0 Z/ K" i9 S( J8 @2 S%---------------------------求分块雅可比矩阵模块-----------------------------1 M7 q) X6 Q$ C$ n. z7 T
2 ?2 \/ u$ x! H% c" Q7 H3 g$ e
H=zeros(n);- V2 K6 y+ }" ]9 p; W7 ~" d. g- O
N=zeros(n);. }8 R; O- {, M: _1 m+ Z. x  L; x
K=zeros(n);
/ M3 F! Q0 {8 M' ?: u5 xL=zeros(n);  %初始化分块矩阵2 t& m3 V- v1 X3 W: g3 J
for i=1:n
, H. \' h9 p$ i) E& Y   for j=1:n7 c9 ?4 P8 _/ o" ]) U+ x+ ~
       if i==j- ^0 G& q- `  f2 v8 A
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
( J. k& A3 Y0 T+ J0 z7 U  ^           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));- d& q' [" f# O* W
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));2 K7 a5 u/ ]1 Y6 H' z; h2 ?) Y
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
3 Z" f& X4 V8 E6 i9 v& |       else; k1 {2 Y. |$ z& ?3 |
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));( d* \. \% l: ?2 v3 |2 I9 i3 q
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));' y. B' i2 B- H5 p$ A
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
/ E* i  ]$ l. \9 n/ c5 x          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元+ R, T4 P% E( }+ P
       end$ g* `5 ?/ h; i0 K8 `. N
   end# g7 ~0 S* x9 V" {( W3 ^: t/ ?
end! e- k+ O2 [9 a6 n# i
   
6 r, A! `, V% ~! T0 A%----------------------------求雅可比矩阵模块-------------------------------4 D# [* G4 t' d5 l. X
1 f6 {5 V4 F% b0 m6 j3 n& P7 l
J=zeros(2*n);  %初始化雅可比矩阵
+ W- f3 w0 h7 ^& R% n: ffor i=1:n
- t; O% ^( b- ?  F    for j=1:n
% ]* T5 ^1 v' I0 g, ^- x        J(i,j)=H(i,j);: E2 y* G* f3 Q
        J(i,(j+n))=N(i,j);9 {7 K' u& b) |$ U, U
        J((i+n),j)=K(i,j);
& ~/ }! d8 t6 p- ~& x        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵3 J# D4 w  Y& t+ E) ~
    end
. B% _2 d& [5 ^) ^+ L! send+ f6 y! }7 Z% t+ q( p1 z
( E+ z+ q' x" t2 F
PV=[];7 k: e5 I+ m4 \% _$ {. x* G, j
for i=1:n
2 t" B/ s% B& }3 Y& B% t    if  B2(i,8)==13 O" I3 }1 K% Z3 a5 @, a- S
        PV=[PV B2(i,1)];  %记录PV节点的标号' C- W3 P# D9 R& U& x/ F
    end
, D  q3 o) j" E! Kend  
, g/ W5 q# g0 G9 P) W# B# I6 H8 ~. g% h! b5 x& f* U1 Y
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
& [( W* p0 ?: e7 t) {6 U& yJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列. v, z( y/ e1 R3 B1 u
! }5 {8 W7 R4 C$ p. A; a
J;  %最终的雅可比矩阵2 c- t1 a' o9 L2 _1 B- b. i  J) U- h
2 q6 o- M# m/ n' _5 f- h7 T
%------------------------解修正方程求各节点电压模块--------------------------
; O! h1 [7 X0 [7 U" ^2 p7 r  u/ B  ( j- J, b& L9 V1 }9 d' C
    modify=inv(J)*DPQ;          %各变量的修正量
8 [: E2 B% ?7 J5 _% P    Ddelta=modify([1:t1],:);    %节点电压相角修正量; y1 J7 Z  \3 }4 {) r
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量9 v4 f4 I6 o0 z) T% c
    1 @  A, W7 Q$ z% [6 U8 k+ ?( p
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值    & i% J) T4 i5 O; ^* t3 Z( O
    t4=1;
$ N  L4 M% A0 A2 I2 ^7 h/ d    for i=1:n
" ]+ m, A6 f% C, Z4 `8 l: |: H. m        if B2(i,8)~=09 L9 N9 R, i2 X! U1 M* t' \
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角0 N0 N9 T8 F0 h, I6 b
        t4=t4+1;
) D8 Y+ ^9 m3 m1 W0 [* e        end
8 g* }7 U, t& |2 h7 b8 w! R    end
3 U1 a! }8 b/ A1 B- Q' V$ S0 b; F% s% L" `( e4 b
    t5=1;
9 u% l" }7 A. C/ c8 S$ I5 @    for i=1:n/ q& i; Y0 `5 U4 r& j% Z
        if B2(i,8)==2
! Y7 E8 u6 }9 D        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值/ F  o) ^% s) ~7 h" a. r
        t5=t5+1;
) J+ T; H+ G% \' _; t9 F+ I        end
- E: R) v/ Q- ^  `    end
4 B7 H/ X/ ?3 z7 {    NUM=NUM+1;  %迭代次数* l7 `  b! [  @+ @- f' r
    if NUM==1   %最大迭代次数判断
# t1 E6 X: |' n* I" \        break;  %超过最大迭代次数,跳出
. n' g2 @8 v- n% {' x& e    end   2 ^' W' }5 h6 B/ T3 J
end   
2 Y" K8 [& ], N( i' e9 C- h' g& b# V% |+ c) J: f/ G8 O9 v
%--------------------------------输出模块----------------------------------
& w( i' ?; L3 X; M# o$ l3 Y$ @3 v" p' X$ m" V/ P2 m& C; K2 [
disp('------------------------------------------------------------------');2 ?; G( A% W0 \7 B/ f
disp('各节点电压U幅值为(节点从小到大排列):');5 D) B, Q" ^% ?7 V' i
disp(U);        %输出节点电压幅值
0 U7 d" M5 g2 k. Q6 M8 g# O( W# gdisp('------------------------------------------------------------------');/ [8 b2 b( B5 W" k
disp('各节点电压相角为(节点从小到大排列):');
1 W. {1 b  h9 x! ^+ Ndisp(delta);    %输出节点电压相角( {; Q. F. H8 m
disp('------------------------------------------------------------------');
- ^7 N* ]# J  O' _0 qdisp('迭代次数:');  w8 f- T- Y+ w4 ]+ V
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 | 显示全部楼层
    3 l( q/ P/ \% r2 S

    : z7 `  u5 x8 S% ^那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    8 W' z' P, [" C1 j5 ?+ c不过说实话,个人觉得这本书除了用上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 发表
    # f2 J8 v( r. a* F孟祥萍 编著 电力系统分析 高等教育出版社 1 e: x5 L% N  y# |4 `: p  h) x# M
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    7 C0 _; P6 w; z6 L6 B1 a+ \7 V/ v0 v; H; M# R
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表
    & X& D9 o" C4 S+ C. `, ~, I* p我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢  {7 [+ T* f5 `6 I
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
    & f3 j$ x; A, o- V5 r# H' \( q( p5 Pn=5;/ t4 e% {5 ^8 i- h
    ...

    ' O9 [9 ^4 O5 F8 D这个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 发表
    * E9 l" S- ^4 H, C( B* P+ Q3 q
    " |: F+ f+ z; c9 i6 q5 e: a  h这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    ' V" v( y! H# q5 n1 B6 P

    $ j( f) O# L/ i  K: s4 L9 R- P. ]有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

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

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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