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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
) n2 j" q$ q8 z2 f: N7 p7 {5 G(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
7 [2 c: q" P4 En=5;% u& p7 F" [9 D. q. p! T
nl=4;! h! F9 o, \, n* D( t! n' O$ ]
swing=1;; E' f) v" y" L' t
pr=1e-6;) S5 H) ~9 n* B4 e
B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]6 n' L5 @" L1 W. a0 P# Q
    2 3 0.01+0.12i 0.04 1    0;
4 W7 P8 ?; G5 I2 {/ y    2 4 0.2i       0    1.05 1;
: f, D' w% V- G6 {    2 5 0.12i      0    1    0]( \! D! e3 q" A) y5 n/ }
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]+ J9 _' e1 Y  n3 R( w: `
    2 0    0  0   0  0   0   2;
! Q/ `: j" }; H- K/ M& Q# F    3 0    0  0   0 0.9 0.6  2;% D6 f! A& }3 B- Z5 B
    4 1.0  0  1.0 0  0   0   1;
6 m. |( {# D7 s# s+ p    5 0    0  0   0 0.8 0.5  2]' b* I' _6 E8 @
X=[1 0;%[节点号 导纳]" o" a$ ]7 b" R! n* j9 G/ y
    2 0;7 o: B3 E3 t: z
    3 0.1i;1 F" c; h6 s7 T& f3 t
    4 0;
1 G# g# g1 J) O' j: B( M. B' s    5 0.1i]
; J! l9 `3 y" S8 ]8 J8 Q- [Y=zeros(n);  %初始化节点导纳矩阵
# Z, l7 w( Z# l8 f6 @2 Q. cfor i=1:n
" \7 X0 `9 s2 `' T( @    if X(i,2)~=0;3 |8 I* S9 c7 \1 M+ q
        p=X(i,1);
: Z; e, j% c' s) L! L- W2 S# w        Y(p,p)=X(i,2);  %写入节点对地导纳6 ^3 a( W* r, P; l
    end
3 @5 P3 X. \. a% M# d4 d$ ~' Vend/ X. Y2 w' Q  ]1 r3 B
for i=1:nl2 Y0 T8 ?; o5 L- W4 W0 Z2 W% o
    if B1(i,6)==0
- c4 K' A: x3 d3 M+ J2 }        p=B1(i,1);q=B1(i,2);6 f: `8 a4 ~7 A. {, ~* s
    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点$ \% G9 z" C) p4 W, [
    end4 J# m" f& r$ Y/ S; c4 G
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));( t7 i0 x0 w: O4 W, {' r: b
    Y(q,p)=Y(p,q);                                    %互导纳
1 x* A* h9 _; ~/ h1 Q  |    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳/ S6 Q5 a" W) v8 W# G5 V
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
; q. q( g. {# @% p- I' U' d1 V4 send
$ i, C/ ^* D& _3 k; I9 oY4 {! D2 z; N8 E4 n9 I" d- W
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角- c7 k1 R* F5 O2 P6 B

/ E  A  Z* ?- g* F" M4 s- ]! b, E%--------------------------电压及功率初始化模块------------------------------
0 w6 V) V7 i9 }& M$ N
" k- T2 A5 ^) d  v! L* g7 `+ ddelta=zeros(1,n);U=zeros(1,n);
# k/ g' T) B3 i( `3 }1 a4 Yfor i=1:n
; I' _: c& N3 Z( `% `% X    delta(i)=B2(i,3);  %节点电压相角初始化9 H6 p9 T7 o4 h4 x! ^8 R
    U(i)=B2(i,2);      %节点电压幅值初始化8 _/ {" F. D0 r5 C
end* R! s) [3 x0 J: S! G& ?: C

0 ^- W9 s8 K% u* J8 x: eP=zeros(1,n);Q=zeros(1,n);& O7 K, ^( G. J$ ~
for i=1:n
* h% a+ h, H) N( d    if B2(i,8)~=0
/ U; v& f0 c! x       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
/ y2 f* ?/ a+ A) `( R7 c! H    end
( w! N2 z0 l8 z7 T5 ]% r    if B2(i,8)==2
4 _! W) D5 T. ^       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
9 @8 r1 `. g$ P' ~- o    end   9 D4 g7 x3 F8 K2 C9 L% P, f) O/ U
end
* C5 {5 `: \7 S  d! N" `: i0 q# p$ N

5 E, l" A) U5 _%------------------------求各节点功率不平衡量模块----------------------------) a4 I! [- C& A" v
' P$ e/ h9 H4 Z" {) S+ d/ q
NUM=0;IT2=1;  %定义循环次数,循环条件标志
+ [( q9 m6 f: _8 ^2 m! v7 mwhile IT2~=0
, t( M8 O( p# h* g6 c( n- L    IT2=0;t1=1;t2=1;
' m+ Y5 r* l0 [    for i=1:n. W( ^; K4 F8 M' i. L
           ! I* [7 t4 n" ]# ^& T
            C(i)=0;! \2 X$ w: b# C
            D(i)=0;1 Z$ O8 q0 b# H( ^9 Q
            for j=1:n! X+ `/ X8 @2 E$ p" H
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率  l2 m  s1 W- c
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
9 i* }: P2 H7 f( U- J            end
5 m4 O5 f8 v) g- O4 |7 q6 i; i3 P        if  i~=swing
4 X1 u4 _3 R# R3 {" O% A            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
" j$ Q  o$ [1 z# E( m$ B            t1=t1+1;: w6 f  D2 C& P
            if  B2(i,8)==2
. \/ n: S5 a; F/ H9 e                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量4 t" v4 S+ O6 X, x  I' E
                t2=t2+1;; E7 c; D9 `8 Q7 p- t9 z, S( p
            end - J: F6 t3 B1 z
        end  
1 t6 W/ H& {, y+ x; g7 V    end" q1 B. T% N* r1 C/ c
   
* U+ ], E; R, c. f/ o$ g5 H$ k    t1=t1-1;t2=t2-1;
3 a+ x% S5 O: A. d% o/ H* ^  J    DPQ=[DP';DQ'];  %功率失配量矩阵
0 M0 i+ P% A% ?2 ^) o  l6 |8 d! _    for i=1:t1+t23 L- j8 c5 P3 r0 l' `$ S
        if abs(DPQ(i))>pr  %收敛精度判定& i; L' D$ a; p$ v* L2 A
        
& }" ?8 C, \) J8 \6 H  M            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
* l9 T/ V/ v- v8 q         end   
2 r) o# l; q, j* s2 A- s    end: U; _" o" A- K$ w

5 ]" ?0 r! k0 r1 g. D%---------------------------求分块雅可比矩阵模块-----------------------------% E8 X, e! Y. f4 \% O9 m
2 h) s* h6 [  c1 z
H=zeros(n);0 f3 O  w2 r) d- v5 F0 Y4 t
N=zeros(n);4 C2 Q! P. o- v& @3 I# R! S
K=zeros(n);
# G) b3 K' r1 n) OL=zeros(n);  %初始化分块矩阵; ]2 k0 U: Q. r. H) G3 W( k+ K; u
for i=1:n
/ y2 V' \& ?" x  k   for j=1:n8 k+ d6 E9 N2 r
       if i==j; Q/ X4 a0 M5 E, l, N4 x( F
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
6 j% D0 Q& q4 X, O           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));9 V9 m& n' B: P9 U. F$ R4 q4 E
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));" Y8 w0 G1 M6 a' J0 `! L! ~& ^; W
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元9 [2 Y; {/ U8 w: x: R$ ?# }  n" |
       else) x7 ~  ^5 W1 A2 L
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));& M4 p2 l$ F4 o" _5 G( P8 F' V- x
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
1 Z4 {% A5 l5 M; q          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
  V$ u  N' h$ d4 A& G3 w) T          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元$ J, Y! N. x8 C$ y" ~
       end
$ i: {8 Q. M" m/ _% B$ |   end* k+ M* c6 X% q
end8 k" x7 I; w+ J, R3 l
   
- l6 v; M3 ]2 C% v%----------------------------求雅可比矩阵模块-------------------------------7 k/ q3 ~" H; [" H: }. B5 j; H. ~

- y  y- W' P2 \/ Y5 L* \) g! u' @J=zeros(2*n);  %初始化雅可比矩阵. Q6 h) \/ R6 R! m/ _& P3 x# J
for i=1:n
) f! z" @3 r) ?4 r: l5 x& ~    for j=1:n$ L/ b5 x7 i  \, K' i/ \
        J(i,j)=H(i,j);% o/ F; }6 O. N% a
        J(i,(j+n))=N(i,j);
, m/ G* w; |# u* h        J((i+n),j)=K(i,j);1 f6 L4 S4 ?  h1 f+ Q2 N1 r+ N
        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵6 ?4 y! L; G& O0 F5 W6 l* @
    end
: v; ^! t% e( Send
+ [8 G* ^# I4 o2 j
* {  E4 r0 {! `4 y: v- iPV=[];& h" t* {- C5 \/ Y2 k* w
for i=1:n
. T8 i8 m( Z' ?6 a    if  B2(i,8)==10 J! @  G/ V3 h' `5 `4 q5 }6 v
        PV=[PV B2(i,1)];  %记录PV节点的标号
' C1 I/ h& M' T: L- u4 X    end/ C" n1 l. V( b2 j) I
end  
0 U+ a" n" k$ s$ }  M
$ p9 d# @6 b- M: i& rJ([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
8 d0 i. ~/ m* w. r  Z  rJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列) X2 g6 g- {. D0 g- i; E! s9 V

/ b4 i+ ]+ _( EJ;  %最终的雅可比矩阵: n( e* Q4 N4 v0 x( A/ l2 ~5 P) ^

) J5 R0 s7 B# j0 u) l3 \0 |%------------------------解修正方程求各节点电压模块--------------------------
) q2 l+ S; O- D$ t) G4 r2 X+ k  3 d4 P' D& m' ~0 Z" `1 A. O
    modify=inv(J)*DPQ;          %各变量的修正量
* }' k8 b" u2 r: j) x) P! [    Ddelta=modify([1:t1],:);    %节点电压相角修正量
3 K! u: E. j  {' U& O- u) d& o    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
# Z  \5 R% d0 F; X5 l$ v. X2 d   
5 o5 Y" C- n% y# H0 Y' ^    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
$ g* {* A9 Q" B1 D% k    t4=1;
" C. Z& C/ a4 s    for i=1:n
( g* U* c0 L+ K. p3 l5 e        if B2(i,8)~=0
8 D: H  g4 G  _% U$ |        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角8 {. e. d% t) N) c
        t4=t4+1;) C3 J  S2 {8 V# H
        end
( x) H5 u- P( f    end
- ?1 U" H2 E5 S/ t0 y
1 u+ P8 d  `8 C" w: p) D    t5=1;
2 z+ @: N7 D3 g9 }, P; U. K  ]! L    for i=1:n
5 P! x: h2 Z7 t6 e1 I8 f$ b4 g        if B2(i,8)==2
* J: R7 }; g( B3 I        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
9 V$ V! T' u5 G  U! \        t5=t5+1;$ K& v. T+ R5 C( m, C
        end
1 n+ P+ k: s( m7 `    end
5 g; n+ _2 c9 h9 a. W1 o6 x( K2 n    NUM=NUM+1;  %迭代次数
- k2 C3 E. c# f, a5 J. K& o7 s0 {    if NUM==1   %最大迭代次数判断
# l! [2 |  T& A$ T- ^        break;  %超过最大迭代次数,跳出( O" f0 ?; d3 U; s
    end   " I3 l" R3 R  k" O: o" u- T6 @
end   % [- D$ l+ q% x  D
$ K  _5 `9 C$ s. k0 j
%--------------------------------输出模块----------------------------------0 C! n+ d4 ?8 w8 d: p+ R! m
+ y5 O7 q3 O" s# _! ^
disp('------------------------------------------------------------------');. l# j2 N' ^1 U' P1 s
disp('各节点电压U幅值为(节点从小到大排列):');$ u) @; g6 D) J: a
disp(U);        %输出节点电压幅值; d' `7 Y3 g. i8 u0 E( e7 U  k2 i
disp('------------------------------------------------------------------');, V" Z, l5 w0 ?: J! P
disp('各节点电压相角为(节点从小到大排列):');/ ^, u8 M% Y5 J6 C
disp(delta);    %输出节点电压相角2 M8 q- A# |6 e# }# R4 N
disp('------------------------------------------------------------------');* T" g, B( ~9 \- Z7 X+ ]5 C4 I  e) G
disp('迭代次数:');, W3 y: P0 y/ r5 n7 `& i3 q" U
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 | 显示全部楼层

    6 }6 _' e6 C9 ]! }3 d# s! r/ u9 C6 s' \, G3 E! x# e: S* g
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    % a4 X) l4 K9 u7 }0 ~6 s- n不过说实话,个人觉得这本书除了用上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 发表
    2 y: Y/ p1 V. `" e4 J# Q" [9 y0 Z4 C孟祥萍 编著 电力系统分析 高等教育出版社 - }4 A, X* D+ t" J1 L
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    / z: Y- v% x- w+ h
    # E) z! r/ m0 t" s3 [哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表 , f, ?7 B* o6 w& N1 \$ K
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢: {# ?7 g& w) E( K
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com; w  q. e6 M: V: e3 t
    n=5;
    8 n4 S- s& Z  ~& F, N* \ ...
    ( w$ ?! t0 W* ^  p
    这个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 发表 1 D# n+ @( L6 t% }2 J

    4 X2 Z8 [* f& o, |% @" m这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    1 I3 a7 k# ]5 p9 V
    : `& [  M: o* e
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-10-10 08:32

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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