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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
; y$ e, p1 W9 q8 T(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
3 J  z6 I1 }) Z3 t# j' Y1 ~1 {n=5;+ D; k7 Q) {  P" R; q3 j
nl=4;
, Z- }' F' i0 ?( }" Y- @( A' Lswing=1;
- a" L' {2 l# q: E/ x) Upr=1e-6;  x" a' K. v3 q6 W; D7 r$ b( @
B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]; r% S4 q1 m) x5 H3 o7 U
    2 3 0.01+0.12i 0.04 1    0;0 z0 d% G7 M6 W; x/ o  Y3 _
    2 4 0.2i       0    1.05 1;  o( ?4 Z+ y0 N  v* X2 G# Y9 f& z8 y
    2 5 0.12i      0    1    0]
1 i& [; _9 g( {B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]" W$ I) o0 G0 Z3 F' C4 \6 S
    2 0    0  0   0  0   0   2;- k* R, J! V' X, _: x% `
    3 0    0  0   0 0.9 0.6  2;: v2 U8 V$ E5 o2 \% k5 X9 ~
    4 1.0  0  1.0 0  0   0   1;7 d# X/ L4 p6 P0 [
    5 0    0  0   0 0.8 0.5  2]% o, ]9 E* H; Q
X=[1 0;%[节点号 导纳]
1 y; k2 r: h# {4 N    2 0;6 l5 V% H  ~) J' R, e5 g/ V
    3 0.1i;
0 R& o8 ^( |  R6 K% w% D0 ]) f5 y    4 0;
- @& ?1 W/ y& A; E    5 0.1i]* j# a7 b: t- L+ Y/ Y" h0 O$ O
Y=zeros(n);  %初始化节点导纳矩阵
1 g" z4 p! M& X6 C9 \for i=1:n) s  N; }) {; p2 ~1 w/ j
    if X(i,2)~=0;
( e, {0 x. y% H6 p7 S        p=X(i,1);% V7 I! s5 }' K' m& e" t
        Y(p,p)=X(i,2);  %写入节点对地导纳5 l* \" o/ ^5 O+ F& _9 ^
    end# D& c1 h) x2 M& i$ \* |+ {, ]
end
! W" l5 A& o( N8 h+ e' Ofor i=1:nl
: b$ c! U4 U# f& M) p' e    if B1(i,6)==0
9 d# l* M; d* @3 C6 [        p=B1(i,1);q=B1(i,2);
# Y' V, \3 C' d/ M    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点! v5 S/ F# B, j' z! R, e) U, S
    end) I) j. v' A7 G/ }1 D  [9 B
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));3 }# Q+ U+ z, |4 {7 `: O* P; V
    Y(q,p)=Y(p,q);                                    %互导纳) F* K" c: {+ F- C
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳& f1 R, s& q+ ^/ B5 z! K7 M4 T: K
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
' Y, N2 T: k' C7 ~6 j& gend
- S3 \8 q$ _4 F9 QY9 x, [. y* W- Q1 H+ b% y9 I* j
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角- R+ P9 D8 S# S+ D+ f4 O  n

6 d0 o1 |3 ]) y$ U%--------------------------电压及功率初始化模块------------------------------) J0 W- R! v# G+ v; |

2 R5 y& V# Z" ~3 o- \delta=zeros(1,n);U=zeros(1,n);2 l. @4 m  X: Z" m& ?" x- G
for i=1:n
/ s& \) b) D3 p( S% \( a    delta(i)=B2(i,3);  %节点电压相角初始化
! i" ~1 r  Q1 k: H1 H    U(i)=B2(i,2);      %节点电压幅值初始化& H$ y" [- c% Y; j: w
end# u1 O/ C. S/ H+ Q4 Y
' {. I* J" @. l
P=zeros(1,n);Q=zeros(1,n);
& A7 J3 B& a/ e7 `+ q+ Q$ r% Tfor i=1:n7 Z- L: d0 Q7 \" I, M) S
    if B2(i,8)~=0
. c3 ?7 @- q$ u! A' O6 a       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化$ }$ C3 N+ c" F) D! _/ b$ l
    end) M1 z/ P7 F- k& O' d
    if B2(i,8)==2* u* S$ K. M: `) o9 n" K
       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化0 c* u; G/ ?2 r# I/ _
    end   0 H+ Z( V+ m+ X+ E, g
end
3 W1 e  E; q" n+ S# z$ o$ c5 y
3 W- \' s& `8 }1 f8 b9 E
, T$ s8 X. ~& m' B%------------------------求各节点功率不平衡量模块----------------------------8 E- J/ Q$ c4 o7 K  T5 m

# C1 G% f+ I! a/ ANUM=0;IT2=1;  %定义循环次数,循环条件标志7 }& Q1 {2 x: f% D) e- F* y4 c
while IT2~=0
0 k5 w( Q, G2 T$ N' Y5 G6 T0 [    IT2=0;t1=1;t2=1;
  U" ^! o3 ]4 Y  H% p1 x, ?    for i=1:n
* F) j1 @  \8 Q) ?7 [           
' y5 k# S6 e* o1 ?7 d            C(i)=0;
# o* w! u; C! X3 r3 }/ S            D(i)=0;
- J, p1 J0 I+ A; X0 @            for j=1:n9 D( m, B+ z! O1 j6 h
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率9 I" f( ~$ ~8 K( a; \/ @5 M
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
' J. K. F: |4 j9 A  \            end' a1 p1 w! B3 ?. N6 o
        if  i~=swing
6 X. E. O% q9 e" I+ y; J1 ~0 c            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
$ k5 j. f/ K1 i# ]5 I/ h            t1=t1+1;
: e8 q1 z+ E  |/ i( G            if  B2(i,8)==2+ Q' e0 p& T! h+ z2 e
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
0 ~) z; _& M. Z/ \( x% w                t2=t2+1;
% y. Y4 m6 k+ V8 B+ b2 [5 ]' h            end 2 p! Z- r3 E: u
        end  
* m% V4 G# M- c* h# `5 G! k    end
2 e$ M: n- c$ X2 d    : c, Y: m# X; \" X/ a/ c8 Y+ b
    t1=t1-1;t2=t2-1;" ^( G& s# P: k
    DPQ=[DP';DQ'];  %功率失配量矩阵2 f+ F0 q# H' Z
    for i=1:t1+t2" ^  S- o$ n5 x( b( O2 e% j0 H
        if abs(DPQ(i))>pr  %收敛精度判定( t. A% w! x4 I' g! K# s
        
0 F/ m! _+ `+ }6 _            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
+ f2 p! E9 r/ A# P+ u         end   
" E+ b7 d5 u+ w8 w) _9 Q    end* o" a# R6 y: t: X# g

2 m, [: h7 P3 q! W2 `" E: C%---------------------------求分块雅可比矩阵模块-----------------------------4 K' c9 f0 q& m# H4 _# P4 [2 k
( a2 u: ^1 l% N$ E
H=zeros(n);
, a( r2 e0 A/ y' a* y7 Z2 j5 `N=zeros(n);
. K3 b, j8 {" j2 ~K=zeros(n);
$ R6 _  }4 t: e3 D1 M7 lL=zeros(n);  %初始化分块矩阵
# I! F. i0 ~/ G; w$ F7 p$ E6 C  Z) {for i=1:n5 \0 U$ `0 E& N8 q$ @- M
   for j=1:n% C0 k$ i1 i3 l5 @/ }
       if i==j
8 n1 E) @0 G/ ~           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));; Y. G* {1 Z; p. |5 O4 M4 p
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
! N. p+ h+ u0 g2 Y, O: V           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));1 s. @; }/ l' c9 X2 Z9 A6 K. t
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元; v' g% d# N* h- D3 b, g5 u. b
       else- {/ }* F5 k; \) S, v0 r. @* B2 E
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
! [% x- s% B. U0 \& |. C! o: _  T          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
. ]4 E; B: C* a8 p          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));7 }$ C! D# [3 @  J! n
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
7 q# y' ]; c/ C0 e8 Z0 s( t       end& m* g) h& Q( B) |
   end
- [9 b% r. N. M+ [& Z1 g) Jend
  Z- Q5 X9 \1 m* }    : |5 F5 f2 u/ ?! C2 X$ i
%----------------------------求雅可比矩阵模块-------------------------------
) G" }" w$ N2 a5 D( O- K, @
; K) q) x( h5 eJ=zeros(2*n);  %初始化雅可比矩阵9 r7 a7 N- v' v  O
for i=1:n
8 z7 h. \$ F  a0 O7 l# e2 L4 i5 ?    for j=1:n
8 V! g( D+ ?8 U* [2 j        J(i,j)=H(i,j);
: u# Q  k6 W8 H( e        J(i,(j+n))=N(i,j);
7 A6 N) u; U* q" ~4 o8 n        J((i+n),j)=K(i,j);5 m4 o( b; B+ N  k. k
        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
& U; z2 f/ [- T+ z" H8 E( M! a4 B    end$ {3 H* V# E1 C
end3 k, q  P6 r% }4 m3 m

. ]' p  w4 f4 y/ xPV=[];; c7 U- v' s9 q
for i=1:n4 C- H& x# A2 T2 g7 |- \
    if  B2(i,8)==1
7 m" p$ R$ J0 _2 L' u  A( C/ r        PV=[PV B2(i,1)];  %记录PV节点的标号
# i5 g* K1 D( O9 G" G    end
! m0 W0 `1 M) z4 ^0 s1 E9 o! f, Gend  
1 M/ d2 Q) ?+ e/ o' p0 T# x) Q; f2 Z0 E. A9 F5 B
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行% Y+ I5 u) [. H" I: B+ v
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列
! V) F* O% l' p/ m$ p/ I: S& u* Y) A
J;  %最终的雅可比矩阵
+ v# y; B& p$ P9 B. B4 ^2 p3 r% x1 O% \) _
%------------------------解修正方程求各节点电压模块--------------------------, O* L' t: m. g2 P; V3 O( n0 B
  . |' z4 O6 o. @/ B- R- t) g3 i" k
    modify=inv(J)*DPQ;          %各变量的修正量) R) V" R  D" R: J
    Ddelta=modify([1:t1],:);    %节点电压相角修正量8 l7 G7 q9 U" F0 k
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
' g0 x& N  ~# z' j4 H7 E" i    - \( K! `3 o2 W- j
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值    5 y* _% g. @2 ^; s6 K% _
    t4=1;1 L$ x5 H3 a; j7 j$ G% T
    for i=1:n
+ A) x; O" G3 W" C; |6 ?        if B2(i,8)~=07 {3 ^& n/ ]; _5 _
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角3 B1 O$ M; ~1 O4 \
        t4=t4+1;
: o4 W3 Y4 Z+ G3 M+ W9 [' b  o* h        end# M% V/ ]5 q2 e7 i5 j
    end
( t- K. m3 u1 x, c) W4 Q( J# C; o0 x2 e9 K. ~0 B
    t5=1;
8 U% I! M, a& p    for i=1:n4 I" L6 O* k3 W( S3 e1 C$ k, O
        if B2(i,8)==2# b/ D/ V7 D& a" B) a- r2 Z
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值* O; z* j6 q) ^: ?
        t5=t5+1;
4 }8 J7 f- d: R! a1 G2 x+ O        end
5 F" r7 g+ @) Q6 Q5 H    end2 W2 {. h* l# `( `# t4 H) F
    NUM=NUM+1;  %迭代次数
% b" F/ Q9 U; g, S    if NUM==1   %最大迭代次数判断- ~  D3 J& z# E* O$ f( R
        break;  %超过最大迭代次数,跳出0 [9 L6 M8 q- m
    end   
0 u6 d; i( w# _( }end   5 ~$ y; x/ w# j

% {. V3 X) C$ g( Z! h% @* c%--------------------------------输出模块----------------------------------3 D1 T0 w9 I5 Q+ r$ w5 [6 ]
4 P0 F- w% @5 r  T* c9 w
disp('------------------------------------------------------------------');
. i0 }  I/ G7 ]8 Q: Idisp('各节点电压U幅值为(节点从小到大排列):');0 C; g' {# ^- `0 x6 h1 v7 \
disp(U);        %输出节点电压幅值0 P  D2 X/ ?7 h& O
disp('------------------------------------------------------------------');
4 A, K3 r- p6 k! I0 \/ G/ ldisp('各节点电压相角为(节点从小到大排列):');
; E# L: x  E/ [) jdisp(delta);    %输出节点电压相角: w7 p& l) W5 |6 Y& v7 X) o3 ?( P
disp('------------------------------------------------------------------');
% t; q, K  S. Z6 P" W+ K$ ?disp('迭代次数:');
1 p) D4 k3 s0 j" k" Edisp(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 | 显示全部楼层

    8 y5 f3 ~' |5 j
    0 d& d# O) Q, y3 M& Q那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    6 }2 g' Q9 J1 y8 P/ J# Z' a不过说实话,个人觉得这本书除了用上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 发表
    % V* R9 N/ e* n* r, c孟祥萍 编著 电力系统分析 高等教育出版社 $ v0 F* ^  Q) U8 @9 d
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    ' z5 R2 d- g5 u% Y) W. S' N$ ^8 g: \% U! j& ^
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表 ; i: F, @9 x0 w
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    $ H: n* @  p1 T. ]. x$ r- B2 ~" z. |(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com( }4 D" g7 `2 ]
    n=5;
    5 T) Q" }8 W7 ^% a6 s  }+ y ...
    3 t- j4 k9 _4 S) B: ?7 u. x
    这个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 发表 % i4 S& S! {0 m

    0 P! h9 m( c. t/ H* o' C" Q这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
      y3 \* T2 H( H6 r
    . m4 L! Y- F- B
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

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

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

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