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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢9 v2 E8 }: k& A+ M6 |, i8 P1 j9 A
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
7 p: I$ w# q1 L' ~- r! a7 mn=5;
" b- Q" A  v& F5 R0 K9 T% cnl=4;
4 K: q9 ~8 M1 W/ L1 m/ t/ Jswing=1;
. R6 o  c4 `) n+ S6 A0 Upr=1e-6;
: i" w' E% Y( y7 t, uB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]( n2 Q' j) O4 p# J) e) g9 p( V1 t4 w# T
    2 3 0.01+0.12i 0.04 1    0;. x. n* W! t; }/ x
    2 4 0.2i       0    1.05 1;
6 F, |8 N; F* u  ?    2 5 0.12i      0    1    0]
. v. J+ k4 m$ }B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
- n* |9 W+ h8 x( M: @) J* }  v    2 0    0  0   0  0   0   2;0 f4 A# Y1 N& f- j8 L/ j) ~
    3 0    0  0   0 0.9 0.6  2;
0 [9 s! O0 B  b; S% N  i    4 1.0  0  1.0 0  0   0   1;
8 o7 Y5 {  P  w, V3 r# L    5 0    0  0   0 0.8 0.5  2]
  C5 L* ]$ p# Y( e5 p  q9 YX=[1 0;%[节点号 导纳]
+ u, `9 @' j. B, M    2 0;: x; h! M  ]: M/ m, ]3 S, m) K
    3 0.1i;
% O8 |1 T5 S0 w. _- P  k    4 0;4 n# c# a3 `$ S2 z8 a7 M) T8 I4 M
    5 0.1i]9 [4 p5 W* ~: a9 t6 L
Y=zeros(n);  %初始化节点导纳矩阵' o3 N# n/ X5 O2 G% e% V
for i=1:n9 {" P; G5 T, l
    if X(i,2)~=0;
  `% j2 E" {% w- d5 h        p=X(i,1);
6 r$ U) t0 G% i$ c        Y(p,p)=X(i,2);  %写入节点对地导纳
6 W2 F! O/ W) Y7 i    end
5 X: [3 `( U. K- d$ yend
: d# T2 R) q+ ~4 A+ kfor i=1:nl
- O+ O! n  A- k    if B1(i,6)==0
: n- D. k% k) B! v  |; j7 l        p=B1(i,1);q=B1(i,2);
/ Z2 o" a# }: |% L# |1 h! _    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
* y/ }8 x  R) Q" N8 d$ s' j6 q    end
* r0 A; E. k3 z1 V& Q$ G% ]    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));& s; w' H/ v% G7 G5 V! ]
    Y(q,p)=Y(p,q);                                    %互导纳
; x, M8 b1 [& l) w$ {) R+ ]$ g    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳/ Z" W+ x, U% p( M( f& S1 l
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳% z$ s: g$ w, x4 X0 e# f9 q: b5 j
end ; T8 L9 U5 f! |7 ^
Y( x: ^+ f# u  l
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角
. ^* B% y& t& a$ U; y0 A. D* [6 `& s! ^6 E
%--------------------------电压及功率初始化模块------------------------------
- ~" ^" U5 V) c6 X+ ~  c3 M
& y7 ?# Z7 R% }# a0 `8 adelta=zeros(1,n);U=zeros(1,n);
: _7 U$ b( B. C# Y/ W$ w0 m6 qfor i=1:n
4 x2 r' K6 r9 J/ l, C  y    delta(i)=B2(i,3);  %节点电压相角初始化
$ ~& F' M* a; ^6 d/ X3 w    U(i)=B2(i,2);      %节点电压幅值初始化
  C% ~; E7 N! ~# W- w# |7 lend1 s' U) W5 S, q8 F- k; Y
2 p6 m4 r& x! B
P=zeros(1,n);Q=zeros(1,n);$ h) E( {2 @- g" Z% O: W
for i=1:n$ V! E8 M% u  r. ~( P* Z- W6 E
    if B2(i,8)~=0
" t0 ~3 A& O( B; h: Q/ T       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
; a  d2 T3 N& U/ r: z# h/ y    end
; J3 F" C/ Y' ]1 }    if B2(i,8)==23 ^) X2 W0 j# V4 w: P# d: j+ U
       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化) f' w! d) ^4 q' D/ f/ e! l+ O! K
    end   
" [: Q* k/ _  }' {& [1 I' E% |end+ K1 P8 R+ @( w1 n! g6 K
. i% _3 Z" O/ q  v
* r& e9 F) B9 r& ^! L. C
%------------------------求各节点功率不平衡量模块----------------------------( J, y" e) i' `5 a6 t, n

# d7 z1 E! i( @$ xNUM=0;IT2=1;  %定义循环次数,循环条件标志* _' T; @2 O: b% u1 p$ o
while IT2~=0" ^2 f& D! s0 |- S8 D8 [
    IT2=0;t1=1;t2=1;) `9 ~: d0 u- n/ r7 J
    for i=1:n: P' b$ a6 J' [1 V. U
           9 G: Z, K% ?1 A( o" f- T
            C(i)=0;5 H( a2 q- G4 \2 a' m+ j
            D(i)=0;
0 }3 y( W. ?4 ^. }- e  H            for j=1:n
. N( o9 t& K+ @2 g/ ^                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
+ A. f3 \/ o( j                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率$ W1 B; d: }  j% \" X
            end
3 I( r' c. \' s8 `) ^5 i        if  i~=swing2 [5 O4 H0 U+ Q3 j
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
. t+ S5 w" W4 H+ l            t1=t1+1;" W5 L- e2 I8 r( o" s+ z" Y
            if  B2(i,8)==2- j( L/ w2 q( t% \2 W& H* k  Z
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
# K( S5 R' V" X- V# h# y                t2=t2+1;6 F  Z/ J2 B, w7 z$ f2 S
            end 9 C; F9 o# ^) [  u
        end  
+ E# s1 Q1 ~5 F: A8 B& }    end$ q- I' D: r# v0 X1 w3 e. `
   
3 I% T6 v5 M% W% k    t1=t1-1;t2=t2-1;1 K+ U2 y2 E( Y3 V& w* t
    DPQ=[DP';DQ'];  %功率失配量矩阵( f( \$ \+ R, T8 d7 S0 k
    for i=1:t1+t2
4 X1 W- o0 M; M/ w7 R        if abs(DPQ(i))>pr  %收敛精度判定' t) r( w5 p2 O! m& j* ?9 O+ @
        
6 Q* f+ s' \, B            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
6 W9 W/ T* {. X9 f& L         end   
# ?( X3 A# x4 u( X  R2 {    end
9 J9 l2 y6 u& ^- Q1 l" Q1 p: w, d5 P6 V. x5 G
%---------------------------求分块雅可比矩阵模块-----------------------------7 S6 {" p" W" J: ~' o
- E6 l/ {. ~; J# k$ E/ M
H=zeros(n);
; R+ d( ^; y) I' Z7 ?N=zeros(n);$ W* {( Y1 U5 c, S+ G2 Y( F6 k6 c
K=zeros(n);
5 A2 j: @, O9 h  o! W" ?" R( O. HL=zeros(n);  %初始化分块矩阵
8 w1 c# K2 y3 D* Hfor i=1:n0 u7 b; Z+ s3 R6 _
   for j=1:n
% F- S5 V( }+ ~' u" }+ t       if i==j+ p* v8 h0 X7 H
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
" U5 A9 N) ^2 e           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));+ h0 C: U% b9 \( l' V& w" G
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));/ c* v& g7 y; X( Z
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元% Y- B9 F  t, t& J0 _) T- J
       else
& A5 o8 A* q! A          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
8 \4 a6 K& M7 M- S          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
( V  q8 K3 x1 j- t* R2 _          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));, y3 v' v/ \9 K
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元8 \8 U* S5 a- j
       end0 V. G( l* ~& m6 `; b" \
   end+ Q* v5 P9 ^, P, i# \- M
end' K$ ]  b1 I2 v+ I  y& e
    % _; t7 o: z. k+ V- u$ b7 W
%----------------------------求雅可比矩阵模块-------------------------------
" k4 d+ Q4 D" T& }; V4 o; \+ [: e$ G" F' f
J=zeros(2*n);  %初始化雅可比矩阵
6 C0 L8 T& T) o; L& v' w, u, C+ tfor i=1:n/ v& `& |7 C; h, @& d! P. M9 I6 c
    for j=1:n: H. T8 r3 W1 D# W4 b' {6 a
        J(i,j)=H(i,j);
  i8 a% e/ S6 J/ M* C! v! b- [        J(i,(j+n))=N(i,j);+ h/ g9 e( [) U. p( W
        J((i+n),j)=K(i,j);# O! P, [8 F' M9 w+ h: E6 p5 C
        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵# c% Z. W1 T1 ?
    end
" B; o/ |+ z% E$ n9 `end
9 w4 Y2 y" l' H6 W( g; @, c0 |$ J; N) h! L, L8 y# L+ B, t
PV=[];0 T& R: P6 P: a( [
for i=1:n6 H& y5 d% R  _3 p* u
    if  B2(i,8)==18 v. Q. K7 n( [2 t8 j
        PV=[PV B2(i,1)];  %记录PV节点的标号
2 M& `9 c) `2 [0 N) s    end: H1 r0 w8 s) [! Z4 ~0 F6 r1 O
end  : m, {+ T4 H; I8 h! U

& ~" [- E4 Z$ u8 i- U  pJ([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
" N2 i, {7 _# PJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列) h0 l, f% S7 m# u- ~+ G
! k2 k# p. e1 d3 F' S7 U5 p
J;  %最终的雅可比矩阵. C: a0 ?1 A# Y

* m- A( l' P( f) w3 A, p0 H. T0 {" m6 a%------------------------解修正方程求各节点电压模块--------------------------) G  b- M' ~: \, q1 Q' i9 X
  7 D+ n$ w6 n" W2 M8 [/ S8 J- d* W# ~  e
    modify=inv(J)*DPQ;          %各变量的修正量& u+ ^% s" y) H8 e# s- Q2 G' C
    Ddelta=modify([1:t1],:);    %节点电压相角修正量
% W9 u% A2 _' g7 I# r( A- E    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量1 l5 O0 a6 ~: x2 ^' H  p
   
$ n5 q) E5 k7 M8 K3 P$ m    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
; ~( n4 b% z0 ]0 b* {    t4=1;0 A6 z9 e, {: D4 F- X( r
    for i=1:n2 k, Y/ X% z! S2 t' k
        if B2(i,8)~=0. `( o0 I# t. J* ^- i/ n" _
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角
6 s( y( t8 x' G8 A8 o        t4=t4+1;
  d9 e6 k" N  T8 N5 h9 S        end
) e6 ~% L1 _( v+ ?    end) ]3 s" Z. [1 r+ F2 ]- B+ P8 ~' K
; I9 [% d$ L( |  j7 u& t. G; y
    t5=1;
. C/ y3 g$ Q, d4 \    for i=1:n2 Z; |3 C& r, u; o4 M* _/ d
        if B2(i,8)==2
: x* c, t/ h4 ]& Q* x        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值3 H8 b$ R" v- L% }
        t5=t5+1;" ~" G0 A' C2 w# S- u1 q% A
        end
: a) Z- T1 n6 P7 s$ h    end' w8 c8 D1 E* \# @- a7 |
    NUM=NUM+1;  %迭代次数% C. t0 Z+ M  M+ W+ D
    if NUM==1   %最大迭代次数判断
( k4 q  E. D% F$ g$ Y: r        break;  %超过最大迭代次数,跳出
" w; d# w, N+ z. z# j6 b5 Z    end   
* ^- y/ z5 [: o: A. G$ {; gend   # c8 ?# g9 B% A+ G" Z

) g2 T5 J$ `6 e" {. ^%--------------------------------输出模块----------------------------------
1 r% s- l0 o5 \* g$ R% p- F% N% B9 K) ~+ S4 k! _; d) e
disp('------------------------------------------------------------------');, ^4 t- Y, {6 `  _! c
disp('各节点电压U幅值为(节点从小到大排列):');
2 o9 J, A9 d4 v6 J5 s% I2 [( {( idisp(U);        %输出节点电压幅值$ s2 Y2 P5 n; n
disp('------------------------------------------------------------------');
: Y) H0 t& h; m5 a% bdisp('各节点电压相角为(节点从小到大排列):');" R. U& g, d( P+ D% S4 g/ k
disp(delta);    %输出节点电压相角5 B$ h# l3 x' k' M  B, }  E) ^' m: \
disp('------------------------------------------------------------------');
# H+ u3 Z5 e% X7 E# }disp('迭代次数:');: A; b5 Q$ w- F  r$ ], w
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 | 显示全部楼层
    / ]+ U" s. b" i$ E' y2 \6 e
    ( @4 |, n! ^: h6 o1 |( q
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 / |: S: u- e: E, v% N# j
    不过说实话,个人觉得这本书除了用上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 发表
    1 W. }' X2 d/ G% f孟祥萍 编著 电力系统分析 高等教育出版社
    6 P+ N: }5 k4 t7 s; J不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    ; F- J9 |9 T2 K/ D
      E4 D) z( w% |! s" 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 发表
    + g5 E8 a+ y% h1 Z我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    4 D  E/ k7 t' L/ m(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com) N9 f0 E8 l, N, T% ^
    n=5;
    ( v) _$ |5 N* ?* ~+ _  W# l ...

    % F) S# V. j7 E0 D3 T2 |9 v这个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 发表 - N: v+ ~' }+ B% A7 H% k

    5 O% y* p: o1 q( @. n# C& D这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    $ z1 Q4 P1 g% i

    - P3 P4 y( a# M4 e# W) k' t有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-3-17 02:11

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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