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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢( u& f# t( }) G  m! X8 ~
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com0 R) Z# e: ?4 E- c% P
n=5;
  u6 P, e" e% y: u- t3 F5 R- c. mnl=4;
: H# F, _( P5 V3 R! d% v0 n% _swing=1;
! Z, P6 b; t8 @5 ~pr=1e-6;
& g# o! n; r- k9 F% g  p' YB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]
5 R! J) W, M# {1 _; P- {( Z    2 3 0.01+0.12i 0.04 1    0;' d" ~8 x# m7 ]2 p0 T) D
    2 4 0.2i       0    1.05 1;) E* e5 @8 a$ k* c, O( i5 K2 m( |5 I
    2 5 0.12i      0    1    0]& Q  F3 @$ G8 U0 `, q" G/ q
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
6 z$ m, v0 \/ ?6 j% N" a    2 0    0  0   0  0   0   2;
" J1 e/ ]7 U$ I' M    3 0    0  0   0 0.9 0.6  2;
* I3 B4 y5 N* V! s9 |% ~/ ]  j    4 1.0  0  1.0 0  0   0   1;
1 ]8 x; H5 G- ~    5 0    0  0   0 0.8 0.5  2]" _2 O1 g7 E/ s6 ^
X=[1 0;%[节点号 导纳]
/ T2 g  W) z) a, D0 b    2 0;
5 a! Z/ }* E$ ~9 Z4 R( S- q    3 0.1i;! _8 m" l/ L8 @$ O  S4 x
    4 0;0 K; Q- d8 g; v, ]
    5 0.1i]
# ~  I0 T) K& k. B; I9 mY=zeros(n);  %初始化节点导纳矩阵5 N8 c- U" k. Z  f
for i=1:n
5 f* u. X! H/ ^, m    if X(i,2)~=0;$ p3 }" D% y- ~! C
        p=X(i,1);
: v4 f6 v8 B" h; l/ ?( c        Y(p,p)=X(i,2);  %写入节点对地导纳
# B6 C# G$ n) f# B" O    end7 b) F' ]% v& v! c1 T. a
end
# l8 k1 ]( n: A+ g( A! ~# Sfor i=1:nl
& K) z  B0 r5 S* V    if B1(i,6)==0! T/ h1 P4 v& s' G' a/ I3 A: h9 ~
        p=B1(i,1);q=B1(i,2);6 J! T% K1 V0 o1 K3 M8 C9 o
    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点4 D; I2 w5 B6 e0 e
    end: p9 i; ]  b9 ^: J0 p
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));$ r9 D" t/ D3 D0 g: G9 E# }
    Y(q,p)=Y(p,q);                                    %互导纳
5 h4 b+ r6 _, v  [' z* u# \; g3 u    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳
2 }9 b( p2 {# q$ M* H; \1 Y8 r# q& |    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
7 \! ?/ m" @' d/ ~- ~end
$ {+ t; K5 j5 N5 D7 q5 R- j, aY' \$ `- X1 G' n7 u6 _
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角
" j" \0 `1 ~! p
) a! V% |: l7 O2 Z%--------------------------电压及功率初始化模块------------------------------
+ b; a( N9 r# c, v, Z; s
# Z6 h( V1 \8 t+ d; @6 I; Bdelta=zeros(1,n);U=zeros(1,n);7 S  y& Q: @8 k
for i=1:n, F5 G, w" V7 N% o2 m! X
    delta(i)=B2(i,3);  %节点电压相角初始化- c) a& y8 {& J
    U(i)=B2(i,2);      %节点电压幅值初始化: G% d/ n0 y) Y( m4 K; ^  I4 |
end
3 P7 Q% M+ B8 x) `5 \1 z' u) O7 F* n5 j' d. V2 c
P=zeros(1,n);Q=zeros(1,n);( o- ?# C; e5 R
for i=1:n
; Y! e; I7 d# E    if B2(i,8)~=0
  L; t$ n) u+ _" @% R' S( T       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
2 ?' M5 [/ k& M) b# P9 g0 `  S    end3 Q1 A8 E, T; A: [' R
    if B2(i,8)==2
0 c3 _" S; y' T, |# \" t       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化! I2 j+ _: i  J$ d5 v
    end   3 r8 _! E4 k! M" ]
end+ w5 ]3 ]9 b" }) h3 X# x

. K0 L4 K; \& Y; o& H/ ?8 w% R) q2 L
6 C; z7 M1 L1 s/ f- l3 Y- ?2 h%------------------------求各节点功率不平衡量模块----------------------------
, {6 G0 Q0 [2 k4 R# r) e* N1 P
% Z3 y3 M( H  T" p8 k0 B  B: ?NUM=0;IT2=1;  %定义循环次数,循环条件标志2 |% y/ c& j0 E( J' g) w
while IT2~=0
. l6 c- _: T7 R! ]5 ?4 @    IT2=0;t1=1;t2=1;: K: E- U% B. t7 `
    for i=1:n/ I4 W1 q6 v  B7 p  I; N" j8 H
           
  Z- I. C7 Z  a  n. Z            C(i)=0;8 d. h, I$ u$ l: H" q
            D(i)=0;# U. Q9 P& c, h! {, Q
            for j=1:n
0 _4 M( q  K( J( Q                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
+ l3 S; \( J9 u( o                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
) J. S* B$ i. V' ~& t            end# \) U% F) [- N( v  ?7 L- {
        if  i~=swing- s  b; @6 T/ c# H; q
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量1 ]1 B# e8 C. c' f6 g0 B  P/ w
            t1=t1+1;8 T. D9 E' U( {  q9 z
            if  B2(i,8)==2
! u6 i' [% X2 D, E                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
: u; ~; p7 d! |                t2=t2+1;$ j  Q' F1 B- f
            end : \- z( u: R. ]0 ^) V. M* J
        end  # h- _2 P9 d3 B% ~3 s
    end
3 j: f8 b' [  y! D& u    $ _. f2 }- _" n: s9 k3 ?
    t1=t1-1;t2=t2-1;
5 u6 a$ O3 f) E) g$ v    DPQ=[DP';DQ'];  %功率失配量矩阵
+ \3 g: p( a( V+ j) w    for i=1:t1+t2& K! Y8 F4 L( k
        if abs(DPQ(i))>pr  %收敛精度判定' e( s: s1 N6 J/ v" X1 A8 |
        
0 z: }* V* w3 W8 O* [            IT2=IT2+1;     %不符合精度要求,进入下一次迭代- p, w1 W5 L! ?  J9 o0 I' ]
         end   
' z. H  _: e% v$ R    end
' ^3 ~3 x8 d* Q2 w0 z& R* F7 z, K  C
%---------------------------求分块雅可比矩阵模块-----------------------------* B9 {# S& Z* \4 i1 a$ m: Z

; o2 R, [  G7 ~' S) }H=zeros(n);
3 q" Z# v' m+ }" ON=zeros(n);, H6 Q* B1 o5 c1 ?" a, p! ~
K=zeros(n);
# \- c8 V, a  F9 p) N& n3 h0 TL=zeros(n);  %初始化分块矩阵& `1 `* v% {  l8 P' u5 n& k
for i=1:n
& s, N9 q6 l0 `   for j=1:n
& z' l) r/ F0 J3 Z  A. ^       if i==j
0 `3 U2 _- u( D8 p; E" h6 K           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));+ m" T6 [+ n5 g- A* I: ]& p
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
* F0 A1 p7 E: }% l           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));  I- x7 z: z, C8 s8 m
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
0 I- P5 q* \4 q9 N0 g* D$ X1 P- M1 c1 X       else
  r+ f. D/ p9 A1 j- P/ Y          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
" _  M$ N4 E7 L1 a5 j: G1 P          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
* W1 [" q0 }4 ?; d          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));% ]7 ?/ g, B+ Q+ s/ y8 S
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
0 c% O3 E7 E8 \7 Q* x. y( w       end) q& \, q5 Y4 [, b
   end
6 Y2 T0 d& ]# L% d+ Q. Gend7 t2 v# b% @# g+ G
    " O( C) y7 D' Q$ O
%----------------------------求雅可比矩阵模块-------------------------------
3 F* Q3 F+ a9 |# c: y1 c  Y6 R0 m- `5 G7 F1 m
J=zeros(2*n);  %初始化雅可比矩阵! k  Q- X2 E, H+ l2 ~' P. m3 c
for i=1:n
; v  `9 d# o) @; {( t    for j=1:n
" z$ ]. u! ^2 o1 y) f. t+ n# o; ?        J(i,j)=H(i,j);
8 @' f6 P2 |2 \9 C+ a2 L9 N        J(i,(j+n))=N(i,j);2 k9 v4 p; I7 \0 H/ C, t' ~6 O% M4 F" W
        J((i+n),j)=K(i,j);
3 H0 K  \# \$ B; f" J$ E: D        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵% X! W* @' l4 \! q! x( W
    end% G) q) G$ Q; M& W! ~
end
, v/ V3 M4 X$ \7 i- L4 G
# G6 ^2 u& \& Y. j: y1 I2 pPV=[];
5 i, W" m5 M# Hfor i=1:n/ B; m4 E8 D8 [+ `9 h1 \) J) l
    if  B2(i,8)==1
. l: v5 C" `( j% Z        PV=[PV B2(i,1)];  %记录PV节点的标号
# [, d$ h1 B) ~3 C    end
/ n) J( l) d" ?/ s. v5 `% g, V, Q6 J, Rend  2 X5 C; g, q+ h) u- r
  k* s' u& z. H. X  _8 T
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行+ J; ^* G( ^5 s% Z+ ^  ?
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列  A6 q, r3 j8 v

. R+ F% V( A1 ?7 NJ;  %最终的雅可比矩阵
  ^2 d' o- i( N( W3 a/ u5 o$ I2 E" p0 E' B+ y7 \* X
%------------------------解修正方程求各节点电压模块--------------------------7 {: g4 L3 _  }4 e
  
, }9 T6 Y4 I" M" u$ _( `3 m* D    modify=inv(J)*DPQ;          %各变量的修正量
! _2 @! W# z6 q, \3 B9 @    Ddelta=modify([1:t1],:);    %节点电压相角修正量9 u) B6 J" p  h* Z
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量5 v, G, Y8 x8 O9 `; H
   
$ W2 X  K- m" H# d9 w# S* Z/ S    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
; A% f. d( |7 S! B) f2 H    t4=1;
' p3 o( V# R* V* Q, F8 Q& h2 [    for i=1:n
- u5 t) n' V( V# {+ o, a5 O) v        if B2(i,8)~=0
% X" ?6 {/ a6 `' k1 Y! P( N& ?        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角; m  X: B# z: v  r
        t4=t4+1;
1 b( G1 U9 h6 ?2 ]7 }# K        end
( f. m  U8 ]/ Q4 w    end
2 b" o" J# i6 k! C2 S9 j. i7 n; S6 t, _+ X1 D2 ^
    t5=1;
$ [. ~: o8 u8 l( |7 B+ Q0 I    for i=1:n( i& a4 z  B6 }" y  E' `
        if B2(i,8)==2
2 L2 k/ o' \, r4 Y# Y( v        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值) b, v0 g$ c+ n! K' t
        t5=t5+1;3 H  `. i- @' S2 L9 C7 r
        end
/ x3 [/ U6 i0 q- }% D/ E    end
3 g7 q: e" S# U) g/ W; [    NUM=NUM+1;  %迭代次数0 v- }) s" _3 i8 [2 N7 v5 V4 G& g" e
    if NUM==1   %最大迭代次数判断  c( `/ K: c8 f7 J. j9 T
        break;  %超过最大迭代次数,跳出# e' u) Q. r  @) t! d9 G" @
    end   5 ~2 Q- O$ I7 V+ [) Y4 I* U
end   $ M6 e' E/ a8 |  l
( K3 Z9 x! n8 C+ ?/ M  ~- u
%--------------------------------输出模块----------------------------------
9 w$ e+ F% h# j! j* Q$ d. B2 m( l( h% H! S
disp('------------------------------------------------------------------');2 A  W* _3 a4 b/ Y
disp('各节点电压U幅值为(节点从小到大排列):');1 @; g& _  T1 o8 E6 ^& a( ?6 @
disp(U);        %输出节点电压幅值
9 f* @8 M, k' @2 K& Ydisp('------------------------------------------------------------------');
* h. u9 T4 z" E$ f7 z7 q& |4 hdisp('各节点电压相角为(节点从小到大排列):');
# k7 m/ t/ j, s( e8 Q8 Ndisp(delta);    %输出节点电压相角
" P/ d" w- k- Q; Ldisp('------------------------------------------------------------------');. V# u; K! E  F" c* H
disp('迭代次数:');
7 K: `( N1 B+ p4 t0 f( ]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 | 显示全部楼层

    : Z, b5 h% A8 P. g& K
    ' ~) |4 P! ~" n" G. c  V那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    2 W& C0 V1 A& C" r6 k: v4 a+ i4 r9 }5 E不过说实话,个人觉得这本书除了用上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 发表
    5 n% [( {$ P  P( v孟祥萍 编著 电力系统分析 高等教育出版社
    5 w* c  A: }( m" h  e- k不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    ( ^1 w! z% ~8 \& {
      i$ g. x2 |3 {5 g
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表 6 j+ E$ w' s+ M8 ^, J
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢* H6 @, A* m1 A  u8 v
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com5 D" m5 l$ u7 `* S9 a6 n6 S* z
    n=5;
    0 Z% h" M5 R+ x8 ^3 \4 ^0 l, T ...

    " S, t/ u+ C) h4 k这个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 发表
    $ h0 o- m' P* ^/ q, a+ O6 W/ p% }; P- a5 v5 f
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    ! a/ i0 f9 h" n1 j5 ^4 |' b  v: m$ _
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-3-17 08:31

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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