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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
  P! C% s0 t% {2 {; p9 I(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
# ?" V7 N2 o$ C3 t* F$ s7 v$ Sn=5;3 `% r7 z% z/ M; {
nl=4;
# k0 q* N3 [3 ~0 p7 yswing=1;
' [$ Q$ W2 @4 U$ R, e1 ~. Jpr=1e-6;
, R, P; ]4 M7 {8 UB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]
0 P( r  @7 c% \" M) A9 p    2 3 0.01+0.12i 0.04 1    0;, ?5 P6 e* u0 Y& o& X/ t
    2 4 0.2i       0    1.05 1;
; L* q3 E) g$ K6 J' ~    2 5 0.12i      0    1    0]
) i! l0 v/ w. Y3 L# Y- uB2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]0 w9 x1 Q. F9 e# C; C
    2 0    0  0   0  0   0   2;1 q1 `7 S$ x' [9 H% L
    3 0    0  0   0 0.9 0.6  2;4 _! @# d& T9 L. X, A8 M
    4 1.0  0  1.0 0  0   0   1;5 v4 a4 \6 S4 S4 P; L/ q% D
    5 0    0  0   0 0.8 0.5  2]
- h2 U# X: @- V. |) V6 DX=[1 0;%[节点号 导纳]
. W# g1 O4 l) b' f# t1 x7 A3 ?: h6 S    2 0;  H4 z# f: B7 n) ~8 T/ D- P% x1 y2 I
    3 0.1i;) s! P% k( e' l# x
    4 0;8 F% {8 s1 Y0 p9 r2 [- y
    5 0.1i]- Y& y% r& P' ?" \
Y=zeros(n);  %初始化节点导纳矩阵
! I/ |3 _! p$ }1 q. Afor i=1:n
& Y4 E+ x2 p7 K$ c1 s$ C    if X(i,2)~=0;
: Q( I1 ^5 @. `        p=X(i,1);" a5 _% V6 i5 o# i8 I3 b: y# A
        Y(p,p)=X(i,2);  %写入节点对地导纳
: y; y/ ?- W* s/ v- G    end% A4 {, G- m' \1 Y2 v  A
end
: F# s6 ~* \( T# `$ x4 R% wfor i=1:nl- E1 F# i7 }1 z4 |/ |5 S. K- }
    if B1(i,6)==0+ i2 i5 ]2 Z6 ]# J
        p=B1(i,1);q=B1(i,2);
, d1 u& B0 R' P( A% z  U    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点2 }) _  O: Y! d6 I
    end* }- }3 x* o2 [# a
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
" p4 l8 U+ B3 v1 F, _5 l    Y(q,p)=Y(p,q);                                    %互导纳
8 l0 b/ B8 K5 H) ~    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳7 a0 z0 v- D" ~/ k# l2 U+ \7 P7 g
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳. K/ T7 s: e2 S, X
end
  E; k, n; K  T  XY
' B  m# _8 G/ ^( K    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角
: n- \  p0 ~/ [2 P
4 z: T5 I8 b' [5 V9 d2 V%--------------------------电压及功率初始化模块------------------------------
/ K, ]+ h4 s' q) g- I
! t" m, v- ^# F# `/ ~+ s1 s$ F. N6 Ldelta=zeros(1,n);U=zeros(1,n);
& p: t; s8 ]  U8 D2 K! L5 |for i=1:n
& r- P/ {5 D9 W" J& F+ d% T5 b9 d    delta(i)=B2(i,3);  %节点电压相角初始化
: y- J/ M- u& v% a- D7 C    U(i)=B2(i,2);      %节点电压幅值初始化4 y1 k; s) e% G" M7 @1 \
end
2 m% F2 _: _- M3 @1 f7 d' W$ s* i* z; k1 G  @- ^! F
P=zeros(1,n);Q=zeros(1,n);
* r& y6 I$ ?) I0 j4 dfor i=1:n
/ v3 o( Z2 f# Y5 P    if B2(i,8)~=0- i% R/ n9 z# U! |6 j9 f! R
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
# X! p! l2 b  e# H5 _) r# N    end
, r/ ~8 |0 T& ^    if B2(i,8)==2
  r! H( y/ c: U" `# O! P       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化4 N$ v' b6 f4 Y  R
    end   4 x! X1 j# n& l
end# Y& D- b# p' z( w! Q

$ ]0 Z: X0 R2 n  h' s1 {' N- L. }, a1 Y
%------------------------求各节点功率不平衡量模块----------------------------3 r$ Y2 g1 T6 [0 r2 g0 c: S0 [

% z6 [( Y% t$ F6 s9 gNUM=0;IT2=1;  %定义循环次数,循环条件标志
* ~0 C5 ?" L: T* S: B: W# @while IT2~=0; L3 w, k7 E  p! M# t2 k
    IT2=0;t1=1;t2=1;
6 n& p" a3 ^6 k$ i: I3 w# a    for i=1:n
9 r6 q2 p, G" Q  a4 F; }           ( y% z& k# N1 p# L. K: w# a
            C(i)=0;9 h3 E+ k) [8 T( X& L  N. U
            D(i)=0;5 a% c8 G1 |4 f* B) z, g0 D
            for j=1:n
4 @) p/ A; M9 ~. k4 j* v; W* T                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
% }1 h& H& V" k. H2 ]$ x  E                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率& ~) x* f4 R8 k4 j; F, g
            end6 h$ G3 @. k: I3 e" L
        if  i~=swing
& n$ L* k) D6 X+ ^2 d: q9 a            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量, M# W$ l+ o/ I" B9 H( j
            t1=t1+1;# |1 T' O; ~' U- Q3 E; |/ o
            if  B2(i,8)==2
6 o2 w0 S0 ~; O8 X1 d: I& A8 x, k                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量' K  H" p4 R) e& |' Y& h, I0 s
                t2=t2+1;
4 D' l# z+ X4 q) I            end
( X, E' Q" g+ m        end  + K& p( A" n% X% G
    end! n- {8 H2 P2 K8 K. n6 I$ B
   
. O  f- [( j" R9 x8 O8 H& E: b    t1=t1-1;t2=t2-1;
& P" m9 I) }  b' _3 q+ u    DPQ=[DP';DQ'];  %功率失配量矩阵# T+ g! E5 u$ q; c) J
    for i=1:t1+t2
& ~8 D5 L3 o: F" R+ y& N, f        if abs(DPQ(i))>pr  %收敛精度判定
7 s: \* Y/ y3 }        " W6 @2 J3 G0 ]2 c0 G6 @
            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
. u' Z3 o8 k7 r0 ~9 [9 l         end   
% o( L0 x% R8 X2 a. `& K1 B    end
9 t; ^' H8 l+ G
: _8 N8 \5 V7 y& @%---------------------------求分块雅可比矩阵模块-----------------------------9 e* Z( v+ d: y  H2 }

1 N3 n2 T: [1 H. |5 Q# J- ?0 OH=zeros(n);( W9 _5 w; P9 T: V
N=zeros(n);
7 A6 Y7 x5 F  l. }K=zeros(n);
3 A3 j: G0 i. [& Q3 \L=zeros(n);  %初始化分块矩阵
$ Z" G: o8 ^5 Tfor i=1:n" M( f) u9 d# g* O
   for j=1:n. p. q2 H; y& T  f$ N1 i: h
       if i==j
' i+ N2 p4 d5 D( Z% e+ O; R           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));% Z% Z9 h/ ?% {: ?# Z! D
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
5 f: c# P' s, d# d2 d/ u           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));9 a+ V  j8 r* b% S
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
! W7 N& N* j# V7 g# Q2 T: y7 e       else2 b+ `5 d& e) Y6 H4 G8 H- ~
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));8 F6 K+ I# z( p; k/ P3 D
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));: F) S* O: S5 h0 g
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
$ R% j; a+ m+ ~2 [" w, x  {          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元$ V9 v  O; K3 Z7 X3 `# C6 X. u
       end
7 Q6 t1 E# V+ B- C- o3 L   end+ y: N9 V3 @! [8 X- |
end( i/ \( o2 ^- x5 k2 S" y$ }
   
) u$ g- b* @# e! L%----------------------------求雅可比矩阵模块-------------------------------# T  ?1 X" C  C; h/ ~, R; I" C; Z

2 X& L6 X) t5 k! b  s8 LJ=zeros(2*n);  %初始化雅可比矩阵
  E$ C; _3 G1 R* R; \$ Mfor i=1:n
9 u1 T1 B8 `: P8 j    for j=1:n7 I6 K! n. d# O9 k, E/ i
        J(i,j)=H(i,j);& |/ \& ?  I" C$ }
        J(i,(j+n))=N(i,j);/ s) t4 Q6 ^) l1 `. ]6 _9 [2 @3 S
        J((i+n),j)=K(i,j);0 N: e( ~, r+ m) ^0 l" q7 _
        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
3 X: b/ G- P" G0 S3 C    end( r0 D6 R* u+ a' Z+ P, K
end
1 t( v( N! J) ~, U
& u- l; m; Q6 I0 Q6 p3 |PV=[];2 q9 }7 W0 E2 k+ U& F7 |- S
for i=1:n! p' b" o1 c& A  u7 Q% i/ C
    if  B2(i,8)==1
0 |' l8 L/ `! Z% a1 L5 O        PV=[PV B2(i,1)];  %记录PV节点的标号
5 e9 P9 H; G% @; b% Q; j    end
- D5 }+ ?: `" J/ xend    I; y) e. i; W
( j( }% p) t( x7 _2 S& q
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行" L" G5 \: n+ u- T4 {" `9 R
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列# X  E: l9 B7 m) h, T( P9 O0 a

: p) [. P& p; |$ K( C; n; oJ;  %最终的雅可比矩阵4 s& B+ Y! `4 j) b8 H8 T

- X$ E( T* ~- c+ K! e* g%------------------------解修正方程求各节点电压模块--------------------------
$ ]2 j! y% e0 [  ) V  V( O" J3 O& g1 `
    modify=inv(J)*DPQ;          %各变量的修正量
% w* E- x/ ^3 j1 O9 W    Ddelta=modify([1:t1],:);    %节点电压相角修正量1 m0 N+ u+ U* M3 n# X3 |5 P- n
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量# e2 U3 [3 {6 J5 m: L8 i
    0 a6 M3 B" S/ q5 I2 ]/ \! z
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值    8 s- }! T3 l- z: x" e3 K7 p. y! y
    t4=1;
: A2 R: p! R; w4 i' V+ O+ [! `    for i=1:n: t( g: X5 J! T' `% G
        if B2(i,8)~=02 }4 b& c$ \0 q3 T/ {/ [
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角, ~* {1 Y: ?. ~/ ~
        t4=t4+1;+ v6 @( S) F/ n2 P6 A$ Z
        end8 v( e  W' M$ H: h6 |
    end
" `: f5 d' M' m- C
9 F) h  ]% E+ e- P    t5=1;
. l) q9 e3 n- v  ]' \    for i=1:n2 N  p% L5 ~6 m! _
        if B2(i,8)==2
9 U- |+ T6 w9 U0 y0 d        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
1 N6 n& V- Q4 x        t5=t5+1;
: [3 i3 x& u6 l  z        end
+ e9 L" J( t" Y- p  q& k    end# b1 D. N' M2 H8 r" o
    NUM=NUM+1;  %迭代次数
6 Z+ V. G# D) p1 N  G6 f    if NUM==1   %最大迭代次数判断
4 W  z' I) `/ Z$ \) g0 L" m        break;  %超过最大迭代次数,跳出! e! j; f% p# V9 H% M9 V
    end   $ x4 ]  U/ L0 F/ g1 m
end   
( f+ }% K: y3 e4 Q
& V4 ~5 r# a  R3 w7 v# z7 X" u: u%--------------------------------输出模块----------------------------------7 U2 f1 Z$ t4 w* N6 k

. T4 H4 e& ~. U% G( zdisp('------------------------------------------------------------------');# `8 h( l* Q; E3 p& N4 w* d, \
disp('各节点电压U幅值为(节点从小到大排列):');
; v' `- J  x" w8 Xdisp(U);        %输出节点电压幅值
) K( j0 T1 i, }3 ^disp('------------------------------------------------------------------');# O- k) u% ~1 J; ]8 p* h
disp('各节点电压相角为(节点从小到大排列):');
* a, `, @# l* L' zdisp(delta);    %输出节点电压相角% D: U! }# a* C% ], I$ ~6 ]4 q: g
disp('------------------------------------------------------------------');) q% u* m( Z* n8 k* Q( D( u
disp('迭代次数:');4 x6 t2 P; m$ I5 B. }
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 | 显示全部楼层
    0 h0 ]5 S1 F! d) r- O* s4 `2 r4 o
    . N' V. y- t! K& f' X
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    ( W/ ^1 V& L9 y; o$ b) \不过说实话,个人觉得这本书除了用上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 发表   t, Z7 J9 Q! \  n/ [6 V
    孟祥萍 编著 电力系统分析 高等教育出版社 ) V6 O& I7 T: R9 N2 y1 a& S
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    1 l. a  U* @; p4 i  Z
    1 c" Q& F5 B) {
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表 . }, x2 [) H- p; ~
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    ( ~7 A/ |" b" L) d(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
    - Z2 B5 q% u5 {  ~n=5;* `" \4 \) f2 }! E( z( z$ M
    ...

    $ l+ N3 R9 b8 t5 R6 M' @这个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 发表 9 S; r. D7 |/ {6 g

    $ o6 o6 H9 M0 b% U- X8 N, r" e这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    % v# ~, r, J# P6 `* C5 \: ^1 [  l! I2 j
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-10-24 14:50

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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