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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
' G6 y2 h8 u  d5 \. ]* C7 g(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
+ `" r2 R( M  X8 _7 T% On=5;
! X2 q2 @6 h0 [' ^nl=4;
# a; Q  p& l! H1 }+ dswing=1;
' {! M( Q" X7 ^* Gpr=1e-6;
. e8 O# I5 i2 W3 w, e% GB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]% }0 s0 a! E( X3 J, O$ l$ @
    2 3 0.01+0.12i 0.04 1    0;. ~% y0 G; S& \/ D
    2 4 0.2i       0    1.05 1;
! j1 G$ S* W0 H, s& Z& P    2 5 0.12i      0    1    0]/ f7 [: d* C1 t7 s6 W8 `) F
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
8 Q3 J( ^6 q# s) Q, l    2 0    0  0   0  0   0   2;
8 [/ W) v, @" R( y; F    3 0    0  0   0 0.9 0.6  2;" m8 I& W4 P$ H) g. c1 G: S$ |
    4 1.0  0  1.0 0  0   0   1;
. V' z) ?7 n+ Z4 v, r8 j" v) j    5 0    0  0   0 0.8 0.5  2]
$ q! j3 ^9 U! D  S. aX=[1 0;%[节点号 导纳], @8 ]0 u; H6 n
    2 0;& R# m5 I: m  R0 T
    3 0.1i;
2 G, |) @- ~  @/ {% z% V  S9 @# Q    4 0;- I4 B- c3 b$ i& I) C5 d
    5 0.1i]! P0 W( h+ [; S. b% c- C1 Q
Y=zeros(n);  %初始化节点导纳矩阵
* z" C0 F2 f0 M4 L6 \1 _3 hfor i=1:n
! |# j' ]; X/ V0 F9 l$ m" l    if X(i,2)~=0;9 T  U* N- w* Z
        p=X(i,1);# z. [7 m. Y$ A
        Y(p,p)=X(i,2);  %写入节点对地导纳
5 `6 ?3 f# r- |1 Q    end
/ a2 F; l3 m5 X) aend
0 ]$ q, M. T' f, _( _" y8 }) }for i=1:nl
- Y/ }- Q8 h% b2 U    if B1(i,6)==0
: w+ r8 }0 c! V5 @        p=B1(i,1);q=B1(i,2);
4 o8 a' x& E. q1 Q: ?    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
& H: `: D& q  _2 P) d    end
' y' e: b, x6 e, O: U, E* r0 y    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));% n' C  `' y! V. [" |/ J6 m$ Q9 `
    Y(q,p)=Y(p,q);                                    %互导纳
9 ]7 _$ e! \4 {% b    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳. j  E* P: s& H+ t. A/ ]1 @
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
6 v6 |; G, w6 R  ^/ o( F, Jend
+ w  ?% V1 P2 M- D- gY
7 n& f1 b# q9 v    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角8 }" }, \0 t2 o- c9 c
  ]! L% ]! y$ ?6 F3 l! G) ]
%--------------------------电压及功率初始化模块------------------------------
! Q! ?' E) T2 P1 O8 W, H% U9 i! }3 p! x
delta=zeros(1,n);U=zeros(1,n);+ ?1 N: \1 T# i+ l6 J! p6 {% _
for i=1:n6 y- ]" g9 q$ I6 S
    delta(i)=B2(i,3);  %节点电压相角初始化( b, H% \  `, r8 B4 }" H, K
    U(i)=B2(i,2);      %节点电压幅值初始化
& i; G7 ~9 B5 ]" C, ^end# v/ E$ y2 {/ T
1 q  J- t. R1 ~2 n* r8 }4 j$ k' P
P=zeros(1,n);Q=zeros(1,n);
- ]6 u- V; {8 N  v0 U& }for i=1:n
4 i. ]: o# j6 o7 c( S$ J    if B2(i,8)~=0
( g+ x2 @9 j: ~8 B' G2 N% W       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
0 f+ _5 W: ~0 `9 M    end6 J" O7 d; S3 e: f1 q$ N
    if B2(i,8)==2) N1 F! \6 c7 |) C
       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
7 `% }0 z0 B  U7 M6 I    end   
, r( ~# j* c# a7 g9 i% f" q- Z5 v, Mend2 V' Z4 P7 P; l2 ^
! n  q! @7 [+ O5 `" U! b
: N3 }" S) d- k  L
%------------------------求各节点功率不平衡量模块----------------------------: @! v3 ~% e. P1 b0 c- P, c+ f# t
7 Y# k9 o. h, F0 V( \  h3 B, j
NUM=0;IT2=1;  %定义循环次数,循环条件标志( C$ b% ]* h4 T; p- t) c
while IT2~=03 m' g! A/ _! m1 S- n4 O
    IT2=0;t1=1;t2=1;
! n4 j- B& d  @8 H4 n    for i=1:n
( V( b+ c8 y2 h9 i: x6 D  G           
5 h" N+ p* D' ?6 R' s. C            C(i)=0;+ m1 j& A6 e* T, x4 b1 u
            D(i)=0;
, ~1 [( d, `% ]- I' _" g4 J            for j=1:n
$ E9 j+ R, I% c* u$ B( X                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率) w- E# T, k! \! a" C: [; D
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
2 W- t6 a( T- X4 Z4 f8 Y            end
) Z' p6 }# y$ s  W: r        if  i~=swing" q1 J" C* D; v3 Z# R
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
8 N- G: q2 R4 n/ j            t1=t1+1;
2 M2 K. v/ ~8 R6 F  k            if  B2(i,8)==21 y/ F6 ^& v+ V
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量+ R3 {( W$ q* u8 i& u1 b- o
                t2=t2+1;2 r# ?: Y$ L: E% A  e. h1 ~9 `* `
            end / I4 A5 V" ]% G; ]) ~
        end  
3 _# x5 q/ m; C; _    end
* _: b2 I* B$ A# @; b   
2 g3 r. }% D7 B7 P! ^5 Q3 ~! [    t1=t1-1;t2=t2-1;
8 g7 k; {7 f! L3 A    DPQ=[DP';DQ'];  %功率失配量矩阵
/ Q. `4 m( q. M' l9 ]9 t$ b: z- E& O    for i=1:t1+t2
: F1 s% |+ ?1 t) q% c: c+ i        if abs(DPQ(i))>pr  %收敛精度判定
7 v. _$ l+ f# }( R$ M! ?* Y# A5 z        
4 _& P  F$ e9 B1 K3 s# |            IT2=IT2+1;     %不符合精度要求,进入下一次迭代+ b( c' M8 m. D- k: r; M
         end   
# Q( g0 V7 O2 W! k- X  R    end
" g( `4 E, k- s+ e, K
8 m% [: Z% _! e+ d/ h%---------------------------求分块雅可比矩阵模块-----------------------------9 n3 _% u4 ~( |6 h2 R/ |) |% n

, T" r8 k; r7 r  }H=zeros(n);
) x3 R" V0 K4 ~. y4 L; m+ \! zN=zeros(n);
8 N/ s  ]6 i4 T# Y# n$ p: Z5 WK=zeros(n);
* i8 x% X8 b  R3 N6 S' m" z3 S7 ZL=zeros(n);  %初始化分块矩阵
( [  q3 e% w! hfor i=1:n  P; w* S& L' k
   for j=1:n
3 {3 q4 g1 [3 m+ B; G2 C       if i==j! _9 X& q& p1 V1 ]* W
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
' c2 s4 {, C) L  q1 T% u; E           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
0 ]- u2 t8 A2 N- r           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));8 z- R$ B8 U* ~
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元6 F% [6 x: Y0 b* J2 s) c& L; d
       else
5 T: B) T# W1 \2 a3 A1 T          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));/ Q. }! H8 J/ g0 S
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
8 D& v$ o* ^+ t0 q6 r1 g          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));- U$ S6 L) \6 d( x3 V
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元1 ^1 Y; o# b2 @# V* K2 {8 ?
       end0 h3 ?% ~! c4 |+ u
   end
7 [$ I. e# q( vend
- N5 l( Q8 T  {# [+ k   
( T! M- d6 G) P* o7 w; y%----------------------------求雅可比矩阵模块-------------------------------
% k! W: S1 F7 z/ k$ h* b0 i3 D$ `1 P2 s( a3 u, g: f
J=zeros(2*n);  %初始化雅可比矩阵. d* a$ R4 X8 C/ F6 L% @" n# p
for i=1:n8 A6 B' f) \+ s& k$ e! L8 D, ?, \! o
    for j=1:n
& D# A' w8 I7 {7 j* W" n  ?9 p3 I        J(i,j)=H(i,j);2 V% i: [' R# K* B( P$ t" B1 y2 U# x- P
        J(i,(j+n))=N(i,j);* [: v# e; Q9 j3 t" |3 X9 `
        J((i+n),j)=K(i,j);8 t9 q" r3 }5 P7 H0 d
        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵/ ~, f+ Q' u+ K0 g. t0 |
    end
. O# {5 v8 C2 J( j0 D0 v8 Q- kend
) |3 j# o3 {& Z+ R' k1 ]9 L- o
6 M2 u  o, ?0 H& Z# ]' W" [PV=[];
' l4 Y- P( f, z+ e6 S, wfor i=1:n
. [  ?' R+ g0 @- [0 X    if  B2(i,8)==1
( u$ |9 e6 R0 J& P5 R/ r. O        PV=[PV B2(i,1)];  %记录PV节点的标号  f, B$ N$ L% E/ O
    end
2 T. d- t9 w7 w5 Xend  
( [8 _8 j6 N  d  g: n4 q. [( T
* s; t+ X' q3 v: xJ([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
8 a4 j/ Z  B4 l( G" n; I- MJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列% g% ?  t5 z8 w$ q

' v4 R, o# |, }* `$ y. GJ;  %最终的雅可比矩阵
, y6 ^1 O$ k3 I+ v4 |% _1 z# A, n- c/ r% O/ E+ `0 o2 ~+ {
%------------------------解修正方程求各节点电压模块--------------------------
6 y3 Y4 `7 O0 G4 a" ?% Z" a) j  ( A4 l: `9 K- ?% c0 {( r& a
    modify=inv(J)*DPQ;          %各变量的修正量
! E# S/ [/ O, z' u0 s0 r" a; `    Ddelta=modify([1:t1],:);    %节点电压相角修正量/ A- C% H  z! C* D7 J1 q
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量1 p: ?9 N# |: D7 [3 N. I
    ! ~; [4 O- U* P  u7 [" G# _+ S& T
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值    6 v7 M" v5 ?$ x% V: L
    t4=1;
) D1 _) y& k: Q' z% U, r* ?) r* G    for i=1:n3 N; O" }* F. }' e2 q1 x
        if B2(i,8)~=0* ~6 s3 X' R9 u- {* O1 p: V
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角% r7 s- a5 w; B0 q
        t4=t4+1;
" C/ g8 R* _6 b( S        end$ u# I# N+ k& v. R$ {
    end
/ Y# z6 E6 ~5 _# q. u2 U6 K5 H7 K" T' V' d) r, W: b3 l" t7 B
    t5=1;
. [5 C) e, o& _2 x% a; q8 n+ j    for i=1:n
* e1 M0 r7 \! g: O        if B2(i,8)==2  s  B8 D2 T( u& B/ S2 {
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值" @  o/ D0 q; K# i  K& I
        t5=t5+1;
' _; H7 Y: f- b- ?+ e( ]        end
) \' K  z! `5 k: \    end2 e; h. Q+ `" }3 q$ x0 c/ K
    NUM=NUM+1;  %迭代次数6 d5 p  y* E2 D# E
    if NUM==1   %最大迭代次数判断& m% m, q& J6 f/ b$ G
        break;  %超过最大迭代次数,跳出
  h+ `$ z& V$ Y* o    end   
! j$ Z& \; x7 m5 o: kend   
4 p! c* l; x0 t$ J7 J
9 v6 {- s6 X7 w$ S0 }4 P8 X0 K%--------------------------------输出模块----------------------------------! f0 q7 v8 m' @, I  \6 _* w* h
* u. y- o( Y9 Q7 t; V
disp('------------------------------------------------------------------');/ o- z( J) h1 A
disp('各节点电压U幅值为(节点从小到大排列):');
1 {2 K! e8 ^, `6 X- ]8 P" R5 W+ s& odisp(U);        %输出节点电压幅值
( k& b5 B+ W3 ], t* S! J+ Vdisp('------------------------------------------------------------------');
1 I9 P' z, u/ G! _4 fdisp('各节点电压相角为(节点从小到大排列):');( p; _% W& g2 }3 D. g
disp(delta);    %输出节点电压相角
1 V. {0 U0 K% y' E: w" Rdisp('------------------------------------------------------------------');) ~8 M; r) s0 [# x# y* t- M2 X# A
disp('迭代次数:');
+ H# y4 k0 }; t/ {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 | 显示全部楼层

    9 }7 U6 q- P6 T4 e/ ?/ d, H9 f. f# _  a
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    ( \# E3 t9 R* U不过说实话,个人觉得这本书除了用上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 发表
    " h, x$ w4 @5 \8 Z+ d/ `+ E+ l2 ]孟祥萍 编著 电力系统分析 高等教育出版社 ; y0 a$ b0 k  {7 u: U5 A/ S
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    0 Q: H- e$ ~& Z
    + b# E. ?" V$ }8 ^
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表 * Q5 C, T* {! e. }4 V2 ]5 Q% x
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢4 L" Y! K4 G" b, D! Y* F
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com9 }7 B2 [4 X+ g; G! ^0 \
    n=5;
    8 L9 {. c6 ?% O4 T, }7 Z" E- ? ...
    0 q1 `$ p/ R1 F8 ~0 J0 g3 g' m5 k( Q
    这个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 发表
    & }* ?- d7 i! [! }7 J+ a* n. V9 H5 ]# ~8 {; r' K$ |  Q; W
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    & d7 I( J4 I! i$ r4 a1 g" Q
    ' c/ S9 r  W7 R5 i/ c有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-7-7 00:39

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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