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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢4 X# l/ K6 q& I( H5 v
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com. t4 a( V) y+ w4 U7 ]
n=5;
5 P1 n% e' Y# Y% H4 x4 j8 Qnl=4;
% n& q; M; s1 K* a. p5 ]- O  ]swing=1;+ N. S% Z% w  {# r( `. k
pr=1e-6;
+ b$ L! V4 L' V3 V& ~4 {B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]
5 z7 i( b; q# c9 E    2 3 0.01+0.12i 0.04 1    0;
8 R6 Q5 A8 r4 ?& V* f  z" P9 }* ^    2 4 0.2i       0    1.05 1;% g8 D; O7 w2 y& f" ]; y
    2 5 0.12i      0    1    0]
6 ]8 A/ [& J1 L* H, G. `& KB2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
! {. T/ F: X8 p) A! l) U    2 0    0  0   0  0   0   2;' I* x! R3 J- W) |
    3 0    0  0   0 0.9 0.6  2;
4 ^" z% I2 ^$ g; A! P9 H$ K    4 1.0  0  1.0 0  0   0   1;/ U: [4 H9 b0 ?3 X
    5 0    0  0   0 0.8 0.5  2]
- {# S8 i4 G7 ]& O& r  \# TX=[1 0;%[节点号 导纳]* M3 W# p2 H- x- k9 [: o' B; v2 S2 J6 o
    2 0;, r( k7 `* o+ C( w4 T, `
    3 0.1i;
; A. `, v$ J" f7 F8 o+ c    4 0;
8 u- E- q. g* K3 u6 S1 P6 }    5 0.1i]: o7 Q1 Q8 X$ p: _
Y=zeros(n);  %初始化节点导纳矩阵; i2 L  t6 ?- R/ U6 ^& Y
for i=1:n
' t% e- X& A% I    if X(i,2)~=0;" F+ v0 Q; V/ T2 V0 A  G( j, @) o' q! u
        p=X(i,1);- s: [; }. z5 t& l7 ^& ~% E/ |
        Y(p,p)=X(i,2);  %写入节点对地导纳
  f9 Z, W2 m2 w2 T5 ?9 T    end- y, h; N; X1 ?0 q: P6 U! o9 D* R$ k
end2 L; g& [1 e) [
for i=1:nl
* H3 `$ F( V" g, B- D% {2 g5 V7 E    if B1(i,6)==0' B8 L$ ^; O- F8 G
        p=B1(i,1);q=B1(i,2);
- Q6 T5 j+ }3 ~& J# H    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
) @. w) y1 b0 N0 X/ ~. m$ b    end
1 G8 `6 ], z; R& m    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));; M2 b3 m' ], `7 D
    Y(q,p)=Y(p,q);                                    %互导纳5 L$ b  M; u  A# `4 p0 d5 G
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳  O2 E# ]' N% V( S  k
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
2 ?* \( C( C2 \end 8 g7 U0 ?* d( V+ S
Y: S; K0 o0 i  ^9 ], H
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角3 o3 F) b5 \3 G# D' j; F% Z
. B0 [5 w# N$ ]" }; u$ a' {" s
%--------------------------电压及功率初始化模块------------------------------
6 y8 J3 G7 ?1 o" x% S8 z$ b5 ^5 N: Q5 z; O8 |! C& D$ a
delta=zeros(1,n);U=zeros(1,n);
* Q7 ?& O6 T$ E( [* W9 nfor i=1:n
0 w8 t/ V) _2 f3 q5 e0 m% n( w    delta(i)=B2(i,3);  %节点电压相角初始化
( D$ O$ ]' G9 j4 H+ Y5 l7 ?    U(i)=B2(i,2);      %节点电压幅值初始化
" O* `- z/ \) t. {end: u4 G: o/ |/ J; g0 R
. S4 V: R" _2 q
P=zeros(1,n);Q=zeros(1,n);8 V6 @, ~( J: `& g  O) f3 Q3 [
for i=1:n" x7 r- ~' }* i3 P& U( c* l
    if B2(i,8)~=0
8 P5 n. i5 @6 S4 P3 i8 j* l  f1 H       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
, R& {6 Z: \* e! I2 |    end
' H; \. B2 g, ?/ }  K) d    if B2(i,8)==2
5 E; g9 [- b; @, H1 l, S5 m( s' E% M       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
# U! U+ q& @7 \    end   
9 K" `* U( s  F3 w% m5 c1 Bend# n* d2 ^- D! }3 N
9 W2 u( d. v- }  E& E: i
( O9 x! |* \) S
%------------------------求各节点功率不平衡量模块----------------------------7 r) [: e; y0 N# A# E, T1 G
- m2 d7 z" S: F( M
NUM=0;IT2=1;  %定义循环次数,循环条件标志
0 m2 b$ R9 c" C( L2 i. t8 rwhile IT2~=0$ N! L& ^6 a, p; t' w
    IT2=0;t1=1;t2=1;( `( Q  ]& q5 S4 N0 @0 l/ K+ ~: P
    for i=1:n
! @0 X: ]' E# ^% Z           
3 [& U- D& F: g! A2 m- g2 a            C(i)=0;# g7 @' K! N1 Q( J: n, |$ X
            D(i)=0;( W2 F( L$ l* `" W2 ]1 t' c; x
            for j=1:n
; w! m. z* Q( p0 G- t                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率) k* P5 ], e( J4 M6 s' z
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
& \( k. V1 u1 p& Y            end
- A* a. F' O& b3 |. v        if  i~=swing
  j. I4 B1 i; ?; r, [, b( Y            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
! C, p8 C8 j1 C* K* a            t1=t1+1;7 f7 U# @5 q, k5 n9 b4 O
            if  B2(i,8)==2: {. E2 r6 a- t( x+ Y; o* Q+ H/ [
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
/ |( {0 S2 E) H                t2=t2+1;* k' N2 u, g4 e! G- o8 \8 S/ ~* f
            end
! r, p8 M" @* B! {6 X1 A& X3 W( |        end  * Z8 R  M% [" |9 o3 S, ^( ^
    end
! a( ~9 Y2 E: W/ G    # X" N  l; v9 ~* ^& ?/ g
    t1=t1-1;t2=t2-1;2 l9 S# k+ F% L$ l3 q1 E: x
    DPQ=[DP';DQ'];  %功率失配量矩阵3 ]* w4 c. _; I3 T3 Z
    for i=1:t1+t2) {6 Y8 z+ C0 b2 [8 D
        if abs(DPQ(i))>pr  %收敛精度判定0 l) k8 \/ d! m" M0 c, R
        ' [9 k5 A& o  W, x+ F
            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
" S5 @* b* N3 B+ o         end   
3 I4 i# c6 U& J+ z" E    end  N, W" x. q  c9 |/ W0 h8 q1 D3 }
) X  P' N  D3 }- j% l' [
%---------------------------求分块雅可比矩阵模块-----------------------------
9 S- p0 Z; l8 A  [1 c: X7 k
& H4 e, |2 p7 Q& T$ kH=zeros(n);' X2 T& z: M) R! m0 M
N=zeros(n);
8 F$ M9 F: R1 w9 KK=zeros(n);
! G) I# C- }! F7 E" X$ h3 fL=zeros(n);  %初始化分块矩阵& A) U$ G, A1 G, m- [/ T7 y: m
for i=1:n3 t' k8 }6 ?/ ~" q" f0 e$ {+ ]* l! y
   for j=1:n
9 j1 b+ v- D- X- x       if i==j
$ b& X; B/ J: d5 r" {* B+ B" @           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));% r7 l8 X/ W' U/ E# c1 O$ V/ n2 _
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
+ j9 f0 {# q( K- \. t* n0 Z; r           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));1 e& [0 ]. `8 Q' y( [) |4 r
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
  Q5 I* M; y% g2 i4 o3 {3 c       else
' ^3 t) }  o  \+ \1 I          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));2 W9 N) c; J3 S* Q
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));8 k. s8 N+ k- y; t( v, v; H- [- O- X/ |0 m
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));* Y) w1 x8 F/ b3 }+ f
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元, X2 b; R3 m3 M( x: a
       end
8 X& M& q7 R0 ]   end0 |. S0 o6 @7 S$ L9 X0 }
end
. r: g3 S' g3 o4 Q& t, l   
8 V8 u2 f- L- [: P4 _%----------------------------求雅可比矩阵模块-------------------------------6 W9 I' O$ l3 E4 {! f9 v5 F" C

7 g: K. C) z) j3 R3 MJ=zeros(2*n);  %初始化雅可比矩阵
3 x6 v8 `3 h$ }* z1 {for i=1:n  a7 v5 j# F* I% N
    for j=1:n7 T. t2 `  x# d1 p, U; w
        J(i,j)=H(i,j);9 U& S6 L3 }% e6 L6 g
        J(i,(j+n))=N(i,j);8 L  [9 n( C* c. X) B
        J((i+n),j)=K(i,j);
0 L& M0 E0 K+ {# N; ^9 ^. `        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵; c# I% W$ f+ @. R1 ~
    end
2 c& ?0 L) w) M6 B/ [) Eend
) _6 f3 s! p$ \: Z) J( _/ o* s. X3 n5 J
PV=[];
. I0 o- I: ~' rfor i=1:n
' a- {: i$ D% G    if  B2(i,8)==1# Q5 g" V& K. v! v( L
        PV=[PV B2(i,1)];  %记录PV节点的标号) \( h; U  u0 u9 N' P; b
    end) s0 F3 m8 t0 v) c) M2 }
end  $ e  k: o8 D$ O  B( k
+ S- S) `& P- K1 y$ T
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行6 T' i% B, L  t; V/ o; t
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列. D6 V' Z4 w: s8 r/ }; {

! n' h' O/ Z. ]4 \+ l: [/ R  ?4 g5 DJ;  %最终的雅可比矩阵3 L; q  \+ L) G4 L; T) `, t

# |# c: Z: U$ i- r, z1 H%------------------------解修正方程求各节点电压模块--------------------------
/ f+ A( M) {0 x* K1 f% C  ) |6 ^' {3 b( p4 M' n5 U" s
    modify=inv(J)*DPQ;          %各变量的修正量
2 C4 @: ?( s' D: P    Ddelta=modify([1:t1],:);    %节点电压相角修正量2 C% @! `4 a9 l
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量# M. J5 |+ U  V# E
   
! k4 y" _0 k6 `+ A) W/ m    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值    6 B8 g5 P' m6 o/ ]' K8 k  w
    t4=1;' ~# Z0 x6 ?: I- j0 ?
    for i=1:n' h1 L+ C8 m4 Z( y$ H- u
        if B2(i,8)~=0/ R4 \5 |% \+ h/ [
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角% x6 w" N$ m: X$ u# c
        t4=t4+1;- U9 e" [. W" N
        end$ \' B( ~: E5 E# ~, n1 u8 K
    end  M1 x0 i) w* [( _; \3 O
- l( m& v& k  ~& ^, R
    t5=1;
5 b2 b& l) ]# R+ E3 s    for i=1:n" x- t# q5 V7 i) h0 p2 R
        if B2(i,8)==2
( W( ]! W! u( L        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
4 d# w! \* ^- q        t5=t5+1;: V4 ~* A* U6 M1 ^1 B0 k
        end8 g* S+ p1 I* `
    end4 Z8 j& ~" [( x! o
    NUM=NUM+1;  %迭代次数2 A$ T+ }& E: z9 C& @- p, ]) e0 k
    if NUM==1   %最大迭代次数判断
- [! l' \" c( w8 B  {. |. m6 c* N        break;  %超过最大迭代次数,跳出
/ k; h6 {0 A! ~! P5 O    end   * e. h/ f9 @6 g' T. x' M1 z* w
end   7 W0 Y! C$ h+ N. v2 l

7 q% J1 |: b6 f) W%--------------------------------输出模块----------------------------------7 C) _6 c- ?3 h) B$ r4 d
( C# V+ S1 D" f. ?* L
disp('------------------------------------------------------------------');
& p" A8 Q3 ~! U4 J4 Udisp('各节点电压U幅值为(节点从小到大排列):');
- U* F5 U( M* r: K' Bdisp(U);        %输出节点电压幅值
# K6 `7 l2 x, f) a2 A+ V% gdisp('------------------------------------------------------------------');
/ l7 [% Z) y7 F9 n2 s5 D! Ndisp('各节点电压相角为(节点从小到大排列):');
7 M9 E% Z  e/ W3 h4 N0 Adisp(delta);    %输出节点电压相角& m) l2 L8 B$ N5 s" B& X# [4 i) H
disp('------------------------------------------------------------------');
1 W6 i& b) R! m$ T; @disp('迭代次数:');
4 t/ {& n3 L* y+ @+ b& M, J: ^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 | 显示全部楼层
    ; ]3 i" W2 J( P, }8 d

    ' L) j/ W/ n$ Z8 G3 D那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 ! Q3 S1 m3 Y% l7 y7 H
    不过说实话,个人觉得这本书除了用上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 发表 9 U, G8 ]1 x) o1 ]  t+ P
    孟祥萍 编著 电力系统分析 高等教育出版社   W  [2 B4 t, K6 }. M+ ?4 F
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    ! B0 _1 f/ V+ n; s6 ]
    " ?  {+ D! f1 L# X
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表 + `/ F2 \) `( B( k0 v, |9 J
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢- L- K1 `+ w' M
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com& `" t) ^9 L, ~% g
    n=5;0 F' d7 f4 t8 I: n8 U
    ...

    ! @2 }; T5 M* J. I5 J* A这个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 发表
    + R2 t$ B7 j- Q; b% D0 H: |9 ^, T" Q9 P, |
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    4 A9 C! ~( r4 m8 m% [. h+ }/ s; k- r  I9 ~4 J
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-10-31 16:30

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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