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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢* k& O/ h5 `- d
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
0 _- N! h( I) z' L% S/ n$ V. P5 Gn=5;
4 O9 j" K  @* G- s' ^' Znl=4;. W& {# x& s6 c  Q
swing=1;; {. B5 A+ y4 C. _1 A. ]; m/ d, l
pr=1e-6;' E/ `1 ]+ r8 v5 V2 p
B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]
! X) ?- l3 F1 P) Y    2 3 0.01+0.12i 0.04 1    0;
9 ^5 K8 H/ F/ `& t8 L9 P8 d1 P    2 4 0.2i       0    1.05 1;
* c* B! C; a; o# O4 z    2 5 0.12i      0    1    0]! Y0 g! F& K4 g- ]" O. y: E* f- c
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]. |6 s% r# ^7 e' J
    2 0    0  0   0  0   0   2;: V! Z& }' @6 S) ~# t! R2 V
    3 0    0  0   0 0.9 0.6  2;
5 M4 w$ t8 W# i- a! O    4 1.0  0  1.0 0  0   0   1;
9 I7 z' m: c3 u( T: f3 P5 |. a    5 0    0  0   0 0.8 0.5  2]
( U$ B7 f  j- ?5 @$ eX=[1 0;%[节点号 导纳]' v* s" a2 w1 d1 \' D, j" y. P% ]
    2 0;* m$ s# H. C' h$ V+ \7 `; U* T
    3 0.1i;
+ X: L) ]% G- n    4 0;1 ~' N9 `/ m) C
    5 0.1i]8 g3 e+ B- u+ G' U. @+ O% O
Y=zeros(n);  %初始化节点导纳矩阵
* P2 k" D: Z) l! v3 m( q( ?. zfor i=1:n
: B4 \) U7 ?: P8 W' \/ |; Z( J    if X(i,2)~=0;
/ H6 y' a- \, `% R7 c5 E- f1 K        p=X(i,1);+ L3 A- {' `* S) u1 S
        Y(p,p)=X(i,2);  %写入节点对地导纳& P# H1 T6 U+ B. D" i
    end% }" T9 q8 z/ H+ w" j" o
end9 M8 |6 P! Y) o. ]5 V7 p
for i=1:nl1 ~  j9 \0 H+ r- ^2 J7 @
    if B1(i,6)==0" f. G) z3 k0 b% f) O
        p=B1(i,1);q=B1(i,2);
. N: Z& r* Y2 _! K- [    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点& e1 |6 \7 D+ x( o: z) A& {
    end1 C* U; c1 X, P* i- m9 f8 @
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));1 j2 A, o4 M) L. }0 \' ~, E$ v
    Y(q,p)=Y(p,q);                                    %互导纳
, L2 J8 `+ F5 z: H( w9 b: M# Q7 z    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳4 C% w7 {% Z8 a
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
5 M3 r, r9 Z) T# X& H" send
3 `$ j1 ]8 }0 o& b, F0 g! U/ lY
7 y& K; w+ M0 G1 W5 t  ~, X* w- B    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角5 x- t1 Z/ o" k# p* h

+ o: ~/ `% I! I2 r7 |/ c% v%--------------------------电压及功率初始化模块------------------------------% }3 ^3 f1 t5 {/ {$ u

8 }$ r# q. V( B5 Hdelta=zeros(1,n);U=zeros(1,n);
. h- N7 o/ ]8 Yfor i=1:n
$ K$ q( \1 s% z/ u    delta(i)=B2(i,3);  %节点电压相角初始化! R: {& s: o* t) h% y
    U(i)=B2(i,2);      %节点电压幅值初始化. t) l. X- n; J& z3 m
end8 b3 a' B2 Z) g4 b

* m* O3 U1 y8 v8 IP=zeros(1,n);Q=zeros(1,n);
& o; i2 d9 c  }! |8 V9 L1 w! k* O' ~2 Rfor i=1:n1 B. H4 z1 q. }  a) x' I$ w% |
    if B2(i,8)~=0
* P( Z# U& ?$ Y5 J       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化4 d7 G& v8 i. F+ `2 [" l
    end
$ S+ y1 J' J9 w5 q7 [    if B2(i,8)==24 X0 G( w, d% W' c
       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化9 l; p3 _; Q* z' t) b6 `8 H
    end   & s" |1 j* D3 |" u
end3 q( b+ l  h) I+ O, o# b9 C
5 z  R4 J( D4 s- L* X
4 q; \2 z6 T4 C+ ~& J1 D$ D
%------------------------求各节点功率不平衡量模块----------------------------
; u( ?' u+ H4 r$ }; k$ ?% \
8 Y( R( w! S( l& u" i3 bNUM=0;IT2=1;  %定义循环次数,循环条件标志8 ~; a5 J0 @2 r0 L, A% |; a7 b2 b, @
while IT2~=0
2 G# Q8 ~( f; f+ O2 X    IT2=0;t1=1;t2=1;
# y' T$ f+ T9 o  A8 i    for i=1:n/ @9 Q5 a. ?. c
           : W' f2 F" y& e4 x
            C(i)=0;2 L/ S( D2 ^1 W2 f
            D(i)=0;
  v# q% e7 p$ F1 k. E            for j=1:n$ j% ?! L& }) @- p- \% ?) }
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率* m, F0 A$ h% t4 F! H, h
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
0 T% o* O) B' ~& z            end/ q2 O" M# o. }0 b: ]# o/ W! c: R
        if  i~=swing- d# |1 x5 d, V# u! L; i/ q
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量% c1 ^$ J; X3 c2 A6 _( Z: j4 N( A3 m
            t1=t1+1;
# O3 K3 y5 r! V) F8 m+ V            if  B2(i,8)==2
" p% U! g# }- L: B, A                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量0 o, n, z! y" n( Z* L$ k
                t2=t2+1;
9 m4 |" M: J; I            end
" o! N5 K) d, ?8 O' ^" O        end  
* w; s$ H0 X6 X0 q; v    end- g- t2 }' G0 v3 K
    ( ?6 i$ ^+ E9 R0 g8 s8 {
    t1=t1-1;t2=t2-1;
9 H! c5 _6 T  s9 A( k" i, C  p    DPQ=[DP';DQ'];  %功率失配量矩阵5 g' h$ l& B: X
    for i=1:t1+t2
; {. s+ t1 R9 a2 D5 B, w3 N. K& ~        if abs(DPQ(i))>pr  %收敛精度判定
9 w3 k) J9 x8 v/ j2 Q3 E, I        
" _1 h( j- i# g  ?; c( \- i: E% q            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
: e0 v& x& Y2 y: w$ C# a         end   
* m; Y" M. Q+ H: c# D" ?) M5 V    end) O3 ?0 z9 z/ T5 v8 G, M3 {0 H

7 o/ x& Y( E( \%---------------------------求分块雅可比矩阵模块-----------------------------
' H4 D7 K2 w. h# B' h
. v3 i# \, Z6 c" D  B6 x# PH=zeros(n);
) I8 J# P0 p1 ?# m, ON=zeros(n);
# \- J2 \9 u( P8 ^! s+ \K=zeros(n);$ h- |" x8 d  F0 ?# N$ l
L=zeros(n);  %初始化分块矩阵
9 K7 e' c1 j9 Zfor i=1:n) r( Q4 r8 \5 ]1 g# D$ O4 F% U
   for j=1:n/ }0 Z6 \/ M0 D& V; N1 ?
       if i==j4 D4 L; F: g2 X! `! w% o
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
( i2 d) |" O; _( \           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
' D" n, C0 G- i/ h           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));
! s/ m) i$ a  n8 l  a, r& p9 Y           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
( u! L9 ~- e# {3 O       else
* H+ n8 k+ q  {          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));0 }& l# [! x5 h' |4 u: ^3 z
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));' z' z& J' \8 o, a% ?) w
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
% t+ ^/ N+ E' x. B& Z0 j          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元6 \/ l1 ]2 A" W, A
       end
2 w: r0 j3 g7 }( R   end1 c8 v% h7 t7 U2 }% f  t
end
5 s' k5 a* `/ A   
2 o2 ^' m. U3 F7 C/ Q! e( A%----------------------------求雅可比矩阵模块-------------------------------
0 m: K0 V) {+ l$ M1 L/ k: w8 j4 K2 h
J=zeros(2*n);  %初始化雅可比矩阵
3 `+ V+ D5 D5 i( a; X, pfor i=1:n6 H6 W; W, R. G. Z0 x" _* |" \
    for j=1:n
# l+ y8 T0 s) |" L        J(i,j)=H(i,j);  a5 z3 P( u- f! n
        J(i,(j+n))=N(i,j);
! G& ?5 E; u" u- ^- ?5 O        J((i+n),j)=K(i,j);
$ r, y3 z% k* v* ^, m        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵6 }5 K: D( v! R" p; Y/ N+ y/ v
    end" d4 Z/ L7 D8 J; P+ |7 L6 P% q/ U
end
/ P' N8 W2 R2 B' P2 I- i+ ]1 _( O3 q& v
PV=[];1 G0 x; n: Z9 s1 ~  T
for i=1:n' g. A3 T% `2 n$ P
    if  B2(i,8)==1
& W/ @$ `( q& t  C( P        PV=[PV B2(i,1)];  %记录PV节点的标号
* T, f( i" b- h    end
8 g7 l. h3 u. Eend  0 v2 L; h% J( `
2 I# e; S, o$ }( W5 W1 d* H( T
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行4 f9 e; L$ F+ Y$ L! F0 `7 o" H/ U% ^
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列
: M/ A$ P. m: A" |  F
/ X5 O- y! ~/ u" N4 lJ;  %最终的雅可比矩阵
. t/ D7 ~8 L9 y# g: w& C
9 o! K. U- L* _# R/ ]%------------------------解修正方程求各节点电压模块--------------------------
- `3 k$ z0 Q: u( Y3 T: g- m  2 ~) R0 e2 C- \% X- K
    modify=inv(J)*DPQ;          %各变量的修正量
6 \6 V# D! Z! b( y+ o    Ddelta=modify([1:t1],:);    %节点电压相角修正量
' n* T$ Z# m' d0 c7 l    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
+ K, w7 I1 d2 d$ g   
5 M# |7 ?/ s4 \9 _5 g- ~1 s3 `    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
" G( @+ b& z: ?  C! s. _    t4=1;
4 j4 w  w4 ]( S    for i=1:n& W' n3 h" w  n4 L+ I
        if B2(i,8)~=0$ q+ z  k6 m- R; ]
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角
. W* w- C5 n5 F/ r2 r$ Q& q        t4=t4+1;
3 ^/ @  @3 |* ?/ l& ^+ {. u        end8 b3 f( l7 W: r: V" u' n; g
    end, i, C1 A5 ~( s* i- W5 [" k: M
, U8 I% }" n( j
    t5=1;
) L+ f$ U# g% L& _5 f. ]    for i=1:n0 t' r' ?1 }+ O* a& [0 b
        if B2(i,8)==26 @3 u0 s. `1 P; C: t2 U; a
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值$ S1 n8 r0 x- I2 O* d
        t5=t5+1;- o# H- x8 O+ r4 V0 M3 ?
        end" f2 B0 x" Y# Y4 n, J& v
    end6 V( @8 I5 [& e+ o
    NUM=NUM+1;  %迭代次数
$ J) X8 L+ [- W8 n1 |: Y    if NUM==1   %最大迭代次数判断* [# v" Z  O# _" [( Z2 ^0 w
        break;  %超过最大迭代次数,跳出
6 Q4 L+ }0 A5 |+ h- h( _4 J    end   
  q5 M( P0 o: N- C' |" V' d% wend   
- x4 D. a+ v7 n' e
. q2 a* h! l6 ]" y  F3 l%--------------------------------输出模块----------------------------------
3 s. W1 Z0 ~4 |+ a0 J" L' A' J+ m8 k
disp('------------------------------------------------------------------');
9 |/ i& K( E) J" ]2 B) Z! hdisp('各节点电压U幅值为(节点从小到大排列):');1 j6 b- T6 e3 c  `( c  e
disp(U);        %输出节点电压幅值
# O3 Q3 ~" N, o2 t; G+ kdisp('------------------------------------------------------------------');, s( a; j7 f& x' F2 q# Y9 S7 s! G
disp('各节点电压相角为(节点从小到大排列):');' a. f9 R6 I7 J5 Z/ V; h1 e! q
disp(delta);    %输出节点电压相角& t5 W$ w+ W7 ?" z* \
disp('------------------------------------------------------------------');! r. l9 s. A( d2 h2 e
disp('迭代次数:');
, `5 E$ M1 ]3 b0 Z  pdisp(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 | 显示全部楼层

    ; V# ]7 _0 n( b& z0 \& ~0 a/ [3 C
    2 j6 p! ]) e6 Q% ?" c- K( R那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    + N3 B6 Q6 ^5 d2 R0 S! `不过说实话,个人觉得这本书除了用上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 发表 7 L+ `1 ?* K# D
    孟祥萍 编著 电力系统分析 高等教育出版社
    1 Y; d: l& z/ ?+ D0 E不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    . a$ Q/ y+ d, D' E' c8 D
    ) N/ ?- G8 {( 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 发表
    " u1 `7 }0 G8 |我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    " P  `6 d/ c; L# u(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
    4 l& J3 t4 `5 E, O5 b: Gn=5;% F9 W0 K8 a6 q7 `
    ...

    & s1 k9 C' ~" G这个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 发表
    - I! C  ]/ v& b' E& {5 z) Q# M
    $ H; l0 j& K8 P, v, H这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    ) {( B5 }$ o0 I" j& \7 o" \% j
    / ?( y4 J3 Y+ M2 ~( f2 r& S
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2024-5-4 01:39

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

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