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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢* _7 c. o0 ]" j- d7 a
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com+ W  J7 i/ A  {& }' M0 T8 ]$ m
n=5;
6 g- [0 E  e& ]$ D: k" Qnl=4;
4 Q6 B8 p; b* c3 H" uswing=1;
/ M/ v: i% R' _2 e8 m) Spr=1e-6;
, h0 e/ P* R6 b1 U3 o# Q- PB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]3 P9 [) ~5 `/ _7 x" D/ f
    2 3 0.01+0.12i 0.04 1    0;$ V: T7 V5 ]. N$ V/ Y
    2 4 0.2i       0    1.05 1;
  u3 @1 f- }$ D1 B    2 5 0.12i      0    1    0]( y! v3 a* A, [& b3 m
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]6 A  C9 q& x/ J: j& v. s- [
    2 0    0  0   0  0   0   2;
6 g% Y/ Z) D1 T5 d    3 0    0  0   0 0.9 0.6  2;
, R0 `! F* v2 e# `8 l. a    4 1.0  0  1.0 0  0   0   1;, W- o* u! T# h9 I. U/ }8 D
    5 0    0  0   0 0.8 0.5  2]6 K7 N' d6 W' y" T* t& F
X=[1 0;%[节点号 导纳]
8 D5 T& S, }/ r    2 0;7 d7 F5 j4 H( P8 A' E* a
    3 0.1i;
! A8 w  q8 l; C) _4 D1 v  {    4 0;3 h: S( Z! N1 \$ |  ?
    5 0.1i]
/ R! T: D$ R' I$ ~: r. c9 [Y=zeros(n);  %初始化节点导纳矩阵, {# j! u! G: R+ H& r& C# e/ ]
for i=1:n4 \8 c& ^+ D% v
    if X(i,2)~=0;
& s; `- }5 l( D) z9 ]0 j4 P        p=X(i,1);
4 F- ]& I4 @+ d; d        Y(p,p)=X(i,2);  %写入节点对地导纳; W% I1 D, c4 n: B/ L0 r+ C
    end
6 R* C) J% C% D! |6 k/ Uend
9 Z/ D1 Q' I, \% jfor i=1:nl
/ l) d6 `) O2 w* t+ V6 T. y    if B1(i,6)==0" c0 D6 T8 B0 s! u" X2 a3 `0 n
        p=B1(i,1);q=B1(i,2);8 u$ O- ^1 I7 ^2 ^5 u
    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
! \' O; {$ A/ g3 @2 ]' j    end7 E" E7 t' q& g/ F
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
: F& y2 Y8 ^  N9 X: @0 X! Z8 _    Y(q,p)=Y(p,q);                                    %互导纳2 g6 h# O5 l$ A4 |; e6 m5 F
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳+ a" ^2 E, P: W5 p6 i' i
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳* E, _, d+ ~& }% p
end
0 t0 a1 }2 W1 ^1 |Y
6 W& f, L5 {! k) o' w! J# N    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角
$ @! d, Q8 b+ E; p
  T- a% S" c4 A% ]7 x+ p%--------------------------电压及功率初始化模块------------------------------( X8 g  \$ `0 B8 m( a
4 S" ^/ ~0 g. E5 A. t9 l, R
delta=zeros(1,n);U=zeros(1,n);
/ A1 T! C4 ~$ g. Vfor i=1:n; p" n' K+ x( }: y
    delta(i)=B2(i,3);  %节点电压相角初始化0 \$ l* k4 W  Z. O$ j. @4 N3 v
    U(i)=B2(i,2);      %节点电压幅值初始化+ {9 Q* o5 b* P1 o# F/ ?
end# }5 p( {% b& n

0 a: @# J$ Z9 \& b: ~4 I( H' ?+ CP=zeros(1,n);Q=zeros(1,n);
$ r" ]# C# a0 c+ f; ^- K* Ofor i=1:n
' ]6 G# y+ l+ p# }. O; p# K# y& J    if B2(i,8)~=0: o- T! |' o3 M/ Q4 I
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化- ?" s+ ?: w0 ~# b
    end0 t' `! ?' x4 i9 _
    if B2(i,8)==2
, E" q  V) u( I" R       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化. A' u# g0 y) d! l( \
    end   $ _8 a( o0 O5 T
end2 E/ o  }1 d0 T& Q" g

; l3 k9 q1 X$ C. c( p
2 q, V0 y# y, \) e5 Y%------------------------求各节点功率不平衡量模块----------------------------
; N+ ~+ w0 s5 @. ~$ J* ^/ H* a
NUM=0;IT2=1;  %定义循环次数,循环条件标志" E) i. h, g* n# C  k/ m0 S
while IT2~=0
# l! u) z& f  A) y0 k    IT2=0;t1=1;t2=1;+ ?. |) h/ f5 v0 i
    for i=1:n8 f6 x% y3 k" D" K4 E7 n3 J" o
           
, U9 {6 c9 u& f. a- z+ R            C(i)=0;
- g& S3 Q/ e$ Z) @3 j            D(i)=0;
* N. o7 U7 y8 L8 W5 U4 M& m            for j=1:n
1 E) x0 Z$ k9 ]8 m" ~! x                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
. Q: E" _. F$ [$ q% z                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
" |7 V, j8 L% b, h0 n            end
2 Q$ E5 \4 c! q7 K6 k        if  i~=swing4 f0 P( m1 w* J) _4 T- T8 V1 s  ~1 ]3 U
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量6 J  b% c  `% s( u' Y/ y8 q
            t1=t1+1;
1 O/ ]/ D) c1 n% Y. t9 W% |            if  B2(i,8)==2  D$ g: g. s" }/ G: ]& o
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量7 b5 {0 a) `9 E' |+ @2 M
                t2=t2+1;
9 u6 s$ G* x, V            end ; x' ^/ p' O9 G$ J" N$ U
        end  1 P9 p2 S; K0 Y3 C0 G
    end
6 m) E5 r8 ?* Y) T    ) D  E, A' g7 u& W5 x3 |2 h
    t1=t1-1;t2=t2-1;
2 V9 A/ j0 \9 s    DPQ=[DP';DQ'];  %功率失配量矩阵7 ^- `4 o& A+ c" B7 I
    for i=1:t1+t22 A# ~5 Y; v/ i$ V* k3 F9 _
        if abs(DPQ(i))>pr  %收敛精度判定  G7 `+ U0 y2 i/ Y9 i4 y% n3 n
        
4 l8 Q% O+ o6 `( X( m( W            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
! o5 c% ^3 I% c& ^6 Z# J4 C         end   ) ~0 y5 N  H) @4 Z- ?
    end
+ N5 S% [8 |  G( {  M. Q  p2 o" F0 _
%---------------------------求分块雅可比矩阵模块-----------------------------
  v- _; V4 N# D+ s6 [" {( ~/ D
& l8 i+ i; l" j  p) R, `0 }" rH=zeros(n);4 n0 E2 K1 H& i* Y# o3 b3 ]
N=zeros(n);
5 P$ M0 b0 T& _2 U8 @K=zeros(n);" }2 v( N6 C. e3 j* Q
L=zeros(n);  %初始化分块矩阵
) \% s! z: W* _0 y* afor i=1:n; ^) E( p0 }9 Y" g, I2 F
   for j=1:n
1 K+ G& c! @3 u0 H5 E       if i==j8 k% z- X9 m! `+ n% J, C2 _
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));& v6 O; |; u: c8 |! W; T2 [' Q' k
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
# C# S" a( K! x( T9 f) i           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));* Z$ t* K% w" A/ _! E( b
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
2 e6 Z7 v# h2 K4 E5 f  j/ w       else
/ T9 w/ i# A5 @6 R8 b          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
1 {  V) B: x' N1 Y2 `' l          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));- W6 C. M% N9 |1 t
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));+ Q; t* K; d( `" X
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
& g0 u! l+ `8 @; Y( [       end: D- V# K/ x/ u$ ^& ^2 H3 C+ s
   end
2 Z9 q$ x  i5 H; n/ Q6 ?end
0 @$ ]# q6 P$ t) X$ A6 G: _   
" D2 {8 e8 Y4 @1 n" J. }( D! z2 n( T! s  V%----------------------------求雅可比矩阵模块-------------------------------( m3 [* u1 }8 L7 u" W. Q/ Z" X+ Z6 W

  O' F  O" I4 J+ w) d! @+ E4 U5 ZJ=zeros(2*n);  %初始化雅可比矩阵: S3 [8 ?& W) p
for i=1:n
. p3 s( z. R* a# _8 ?* y    for j=1:n
* T+ R9 g& R( P8 {% Y- @% i        J(i,j)=H(i,j);% j+ g& X# m6 H+ n
        J(i,(j+n))=N(i,j);
/ q) N# h! U5 ^: x2 _        J((i+n),j)=K(i,j);0 ^6 f8 P. v% o  w' k, W
        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵* S; N+ b, I% e  \6 j  `5 G
    end. p) N( q/ Q4 _3 e
end
6 X+ L1 D3 }( }; c2 p
4 p% f/ A, f9 |& W* Q3 @PV=[];) h/ b) a9 T5 D" T
for i=1:n  X; O: B7 h) }  s' c6 N  ?
    if  B2(i,8)==1
% r+ Q+ x- [7 Z1 r  f# f        PV=[PV B2(i,1)];  %记录PV节点的标号
5 c' \3 K1 e, |( w+ Y4 M' q5 M    end
: g1 `; \  A  N( F4 t2 Nend  
, g6 f9 r9 X6 k" A; N/ m
( L" n9 t$ f# r/ |; o' Q) n+ N( IJ([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
8 b! ~& Q* U5 i0 _' k- Z5 OJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列1 [* y3 w. E) n, \" |
3 H! A  T- j! z4 T, u+ K
J;  %最终的雅可比矩阵+ \  W! B3 J4 y/ s) P9 o

: h6 s. @( |. x%------------------------解修正方程求各节点电压模块--------------------------& G" O6 \$ V( Q* E- m
  9 |( l# F8 x) a' l( ]7 S
    modify=inv(J)*DPQ;          %各变量的修正量7 x0 X% k9 T2 T
    Ddelta=modify([1:t1],:);    %节点电压相角修正量
' Q! g" _5 f/ t* K2 x    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量0 ~5 l; v. y( H0 J8 e
   
/ x. a* C1 C  c! |% y' b    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
2 |( `7 v' M' j3 u) R9 u: z    t4=1;
1 C+ Y% b& T3 U1 G    for i=1:n
+ Q$ N/ E9 H' Y! ^% R        if B2(i,8)~=0# A0 V, ]. y# c: i8 ^
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角  X5 ?% w3 a5 z* m  w3 J8 u* n
        t4=t4+1;9 e  B5 |- L- h' G. w  W4 ?' g; R& Q
        end( n/ z) a) Z# ^7 `9 z7 d- M* D
    end
, Z# b' v9 H, l* {) }& @/ L% u6 o% x- {
    t5=1;6 |6 G) y  l% |
    for i=1:n* j  X$ V( W' I  R
        if B2(i,8)==2
! V0 a) Y- G& t7 ^3 _        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
+ \$ G4 B5 X+ a" W        t5=t5+1;
1 D" j- n. R- k# f& ?        end
6 u! `+ N! j! w% [0 ]; [$ D6 B$ G    end
+ f$ N, O3 b& B7 v1 f, h    NUM=NUM+1;  %迭代次数' O6 A) ^5 N) `3 C7 e# Q+ i; p2 E
    if NUM==1   %最大迭代次数判断* h/ I0 Z: E/ _' t( S1 N
        break;  %超过最大迭代次数,跳出9 v; y% v! P" q$ j0 `5 d! s% I0 J
    end   ' m: q; v9 N2 g  h/ w
end   # F' ~0 A9 c2 h2 C3 v! M# Q; ^

  r2 |, Q7 b& U$ I%--------------------------------输出模块----------------------------------3 c/ \8 |5 |  W  p: [+ S7 E( S% x
% l9 K: j6 f6 w; H& A" E* |
disp('------------------------------------------------------------------');
$ P$ G  z0 M  J1 ~8 P7 M8 ~; mdisp('各节点电压U幅值为(节点从小到大排列):');$ x/ u+ w+ Q* K( o
disp(U);        %输出节点电压幅值
& f/ J7 ?- o. P& idisp('------------------------------------------------------------------');) E4 T% [: Z9 ?. S/ L
disp('各节点电压相角为(节点从小到大排列):');0 J* q- V0 T3 x7 z
disp(delta);    %输出节点电压相角6 C$ I1 i0 Y1 J( E: `4 J$ k; s$ u
disp('------------------------------------------------------------------');2 c6 L. H. `" a
disp('迭代次数:');6 Q9 R' Q2 S: |
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 | 显示全部楼层

    8 b/ S' K+ Z4 r; ?
    ' n: M' H6 v% _1 k那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 , S- `- ]' S1 b% j9 p1 X/ k8 _
    不过说实话,个人觉得这本书除了用上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 发表 # ^: h$ h4 R# {6 H) X6 @
    孟祥萍 编著 电力系统分析 高等教育出版社
    6 L9 {/ n$ @' m' n4 d不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    - Y7 L& {! E: L8 e
    $ S- Z  N4 r# Y  r; G& \) W9 {: z哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表 ; G: u$ T/ Z$ `( e- S
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    5 d' x8 g: f3 d9 p" [0 S1 Y# ~9 b/ ^6 b(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com8 X" h0 X. X! N! A( L
    n=5;: K) z4 `( l8 l% ?" u% M
    ...

    " t2 f3 ?, l7 d这个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 发表 ; y/ A. Z8 w# S  w, L  W% d9 {6 o. s

    6 ?5 W* T5 i6 ~8 a) W" A7 g+ d这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    ) c. _7 Q3 l7 o( t) a) [, ?' M0 g" B" L5 ~+ `
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-10-10 09:11

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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