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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
2 L3 [: B, n  M/ `" G(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com4 ^/ _# L4 Q/ D. d
n=5;
# V6 ]9 l# `8 U0 ?1 Mnl=4;
$ g5 b5 B) n! [; B+ N' }5 _' `swing=1;6 o5 V; B9 ?9 p, D
pr=1e-6;; R. g) P# O/ U* G
B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]' h0 d# e# a9 w7 K- e' s
    2 3 0.01+0.12i 0.04 1    0;$ R  H. W* \" `& z1 Q, }& K
    2 4 0.2i       0    1.05 1;
, D# ?3 `2 k0 c/ [, {$ K    2 5 0.12i      0    1    0]
; z- s# n3 w1 {& X# oB2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]! D$ a( O, s; @+ O
    2 0    0  0   0  0   0   2;
. N7 E1 {' ]7 H9 ?* I, }+ [    3 0    0  0   0 0.9 0.6  2;
5 v5 X: q0 e: }, c    4 1.0  0  1.0 0  0   0   1;* L6 V) @8 X  R  f1 E
    5 0    0  0   0 0.8 0.5  2]/ r# L3 g. ?7 M0 T5 J. o& b
X=[1 0;%[节点号 导纳]
- o% C1 D* d: S; \" D* _    2 0;
9 D' U; j2 C3 e6 H) A9 i1 o    3 0.1i;8 ?6 T9 E! R4 c* H; W- {4 j
    4 0;. k' T5 t' S# \1 X
    5 0.1i]! I  w6 [5 {/ P  E1 }8 c, S$ B/ h
Y=zeros(n);  %初始化节点导纳矩阵
/ d( k& A# a" ^for i=1:n
' ^& D" c0 F, z: r& J    if X(i,2)~=0;
5 B1 g( h. A* l. Y        p=X(i,1);0 d8 d! A) {7 c; [
        Y(p,p)=X(i,2);  %写入节点对地导纳3 t: D* _" Y0 N' {! P! r0 \
    end( L, L! A# @% V
end1 R1 D* b* C. x. h% ?
for i=1:nl5 X6 }) {+ _0 V( D/ F& |, n2 N
    if B1(i,6)==0) L" d* Q3 Q  n) |9 w* _  L* f  \
        p=B1(i,1);q=B1(i,2);
8 p' T0 v( M5 v: a: m; v: X    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点$ W. M# \; C. V  v
    end
) `( o+ R. H1 H# c7 M) Q% O    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
% T5 i3 x% o+ G- u# Z    Y(q,p)=Y(p,q);                                    %互导纳# ?" a- e. F: v. g6 l4 W
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳" I7 G/ O6 J) K; l7 i, _
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
: v" Y2 K5 U6 R3 O+ q7 ~end 0 A! b) m1 V" J
Y
# z+ g! Z* v5 D    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角+ f6 P* o& h$ @# `/ \9 L+ ^
" z$ g  e/ D) t' e, l
%--------------------------电压及功率初始化模块------------------------------& j9 X7 P) W, T; F$ }& f% ]7 e5 y
2 k# W( P2 V3 q# ^) U( n
delta=zeros(1,n);U=zeros(1,n);
4 s  m* }. Q# a7 }' h; f$ b" |for i=1:n
# h4 L( _1 Z7 i  w    delta(i)=B2(i,3);  %节点电压相角初始化
$ Z* G2 B9 `) V- A2 j  @6 C: y3 G    U(i)=B2(i,2);      %节点电压幅值初始化
9 ]2 S. ~" `5 I, l; ]end
  g) s: {$ ?7 R4 v* P( N% S4 B
& B% v" e$ n$ m* IP=zeros(1,n);Q=zeros(1,n);
  j: `) }, h! j& M: {for i=1:n6 \: S) S4 H6 m4 _
    if B2(i,8)~=0# n7 `9 S& u3 ^1 `; T2 |: e; ^& y
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
* i6 S( i7 ]. A, N    end
0 K, O  _, D3 Y8 v- h! V' o    if B2(i,8)==2( o- M# X) H( d/ B9 l7 ]9 k
       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
; V* V% |9 x0 e  F7 y) @8 g; F! Y    end   9 @3 i( h4 a' Z6 n
end5 h/ a1 ^9 W% S" ~- E- u% C8 W7 N
  z- {. N; H9 u( u9 G9 F
( ]9 ]3 e1 h& _$ ]+ D8 t2 m3 C) r
%------------------------求各节点功率不平衡量模块----------------------------
6 M0 a: w( R" w' i+ M* n6 P7 M6 N$ \2 d8 b4 y; {- T
NUM=0;IT2=1;  %定义循环次数,循环条件标志: d0 {9 a: Y& w1 {0 ]6 G# T& I6 Q
while IT2~=0- f, ]! @3 n7 o3 R; y- @( t
    IT2=0;t1=1;t2=1;/ [9 d. t! q3 D* X+ k& e% B8 z  s2 l
    for i=1:n
2 ?% H( D! }5 f( O- `9 ~0 r           ) R$ j" ^5 W+ M6 L
            C(i)=0;* ]7 K% ~; K1 a: N% V& ^
            D(i)=0;
7 ?9 L/ Q1 b+ U( K            for j=1:n8 Z; K) |. s. p% g$ }! X. D6 U
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
9 L# P& J6 W) j: ~4 [+ Y                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率( [7 K, f8 Q. y2 [3 ?: H
            end) `. {; v9 U% b: a% A
        if  i~=swing% [. a6 [$ K1 T" k  K9 E0 ]  M
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量1 u+ |# v+ w) I
            t1=t1+1;
! K1 Y6 o. o6 y5 R" f            if  B2(i,8)==22 p) a  U) q( L* @, C' ^9 v6 N
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量) Z0 B/ q! X' r2 w4 }+ A  Y
                t2=t2+1;$ X: y( N$ q; N
            end
- B7 ]3 U  M9 D$ q% n- S+ i        end  ( u% w3 \" o' x1 J
    end
. f' v  T/ P: j, a; G4 F   
* Y6 a3 [5 c% ]5 S3 _2 ^    t1=t1-1;t2=t2-1;- X( {( u& H; O, r' I
    DPQ=[DP';DQ'];  %功率失配量矩阵
0 T) L$ s% f% G9 _* x+ I    for i=1:t1+t2' z! W" {6 Y6 y+ s
        if abs(DPQ(i))>pr  %收敛精度判定2 Z& w& O8 t# w% e. o
        9 |: c! H% Q  W5 R3 j7 T
            IT2=IT2+1;     %不符合精度要求,进入下一次迭代; j, K; X. B6 O6 k- y
         end   
$ b& G: ?4 ]' ?, a# O. P; W) x    end
$ J- k5 Q* o. g+ y2 R4 x6 G
9 `9 ~1 v3 Z6 t) A%---------------------------求分块雅可比矩阵模块-----------------------------
+ X# N6 m9 t- m. s* g. H3 _5 C! N5 q
3 j  y8 A( y, Z  i, l9 MH=zeros(n);
4 I* A8 C& Q& E& B6 h& CN=zeros(n);$ r, _% E: |3 f" ]1 w
K=zeros(n);
, D, Q8 A) @+ R5 ^# DL=zeros(n);  %初始化分块矩阵
/ X+ f" y, k1 Tfor i=1:n! D; B' K8 ?( d  A, H; ?
   for j=1:n
( C1 p; b+ w+ L/ _9 f8 d       if i==j8 q0 `: _- W3 T8 B0 s. m
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));# o1 x; a* c% f0 w5 {; t
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));. U8 l3 W' I4 X
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));3 S: d8 C- {/ Z: D% f: C+ X- Y( E
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
! Y' ~2 p6 U" K" ]- A: |8 |* L$ U       else( U" m" E0 R' |: @( i. i, I0 c* t
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
0 l( j4 U( V* s# R' |2 F4 e          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
5 J+ k5 `% c6 h- q. v/ z$ F          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
( x1 O0 u( z8 E          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元# o, N9 i0 g. `( n3 u
       end2 I: D$ N- f( H* \7 B
   end
+ v8 ?( n5 w, @3 I8 [end
- p; }3 r2 a, v4 c( h/ M' q  V    8 b6 q& _; t4 a6 Q
%----------------------------求雅可比矩阵模块-------------------------------
. G# _6 ]! e( k, A5 `
8 @1 v5 p& F# v! n: P. [J=zeros(2*n);  %初始化雅可比矩阵
3 P( V( @; z: m- D+ ]for i=1:n7 A4 [0 J  M' L. z% A2 ^
    for j=1:n9 K# ^* i9 m; m3 P& y" ]
        J(i,j)=H(i,j);
7 z5 `( z6 y5 \' s* B        J(i,(j+n))=N(i,j);
) z1 J0 H# |# [  E9 M" K4 s/ d) ~        J((i+n),j)=K(i,j);
3 h; C3 I0 `0 H" o$ M        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
, g0 j& L) r  x. n' b( X    end
9 t6 O" ]( m  I6 Cend
. Q6 Q) ?# }! L7 M
: p  H1 I# O/ W( NPV=[];9 T% _( ?* K: d; u6 s0 T; A
for i=1:n1 t0 [# U' g1 A( J/ g
    if  B2(i,8)==1
$ m9 S4 k9 i9 a0 s9 N( ]        PV=[PV B2(i,1)];  %记录PV节点的标号
: r7 [" y( Y) x! B" Y    end- j# ~7 F: s: E4 t3 O- Q
end  
6 s. Z& a/ g  i; {( Q
% |7 Z# I, y1 K2 sJ([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
2 }" `9 n1 f" V7 `* LJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列- B" R1 e8 b& I: E! y
# V' z" Y( F1 V$ [1 a7 L
J;  %最终的雅可比矩阵
. j3 z; J& d$ j/ b! k( S  v. T) T
%------------------------解修正方程求各节点电压模块--------------------------, C' k+ |; z9 Q
  0 `$ ^2 o! M: A, S" s
    modify=inv(J)*DPQ;          %各变量的修正量
8 G2 q, s' S- B, G1 C    Ddelta=modify([1:t1],:);    %节点电压相角修正量2 \- r1 l; K  g# a1 h
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量5 Z6 R6 U+ Y! V( a/ N9 g, H4 G
    ( S3 Y4 f7 P* c+ F/ `( I. o
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值    . E7 R2 J- x! y
    t4=1;* O! y: K1 r3 k' }+ R$ e% D+ B
    for i=1:n
  k! _% O, u+ I( O  X6 Z        if B2(i,8)~=0
* E4 X. r# P  Z2 R) E5 s        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角( G; ^! z% M# I
        t4=t4+1;
; m& b3 \' ^2 X# G( I        end7 e5 j3 E+ ]1 A; e: {2 s; g4 N: ^/ b
    end$ i! i2 @/ D7 I, }* N) s, w5 K

- q6 z7 i+ z$ _& I: E+ K    t5=1;
1 k. y5 m' w2 S7 I& t    for i=1:n5 ?: n: c. O/ a1 a+ s% A1 l
        if B2(i,8)==2
. d, G" K( f# o8 y9 K$ q2 |' c        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
1 n0 Q4 Y; ^* [: ]        t5=t5+1;
8 e) }0 F, F! k, f+ F        end. W7 ]1 R! O* _& Y# E
    end
( C! T. V% T& p  m7 z1 A  {2 y    NUM=NUM+1;  %迭代次数
( [  B4 K8 e9 K# E* j    if NUM==1   %最大迭代次数判断
6 a) i( e- Q& J+ ]8 ]        break;  %超过最大迭代次数,跳出
( S. T5 S1 Y4 G5 X+ S    end   
3 e8 k' v7 j3 }: u6 D  r' {end   . v* l, P- [# ?! Z1 @

8 y% Z+ T3 p; b) ?  ?, K) ^%--------------------------------输出模块----------------------------------% I9 V, Y; b: a% i' B) |$ s& a
8 P7 @! C0 w8 v, D' \' h
disp('------------------------------------------------------------------');
5 B; [$ `" S  sdisp('各节点电压U幅值为(节点从小到大排列):');
3 U9 G/ p2 r8 s) g7 ~0 ?3 \disp(U);        %输出节点电压幅值  E% o4 k; R. r; e3 ~# r
disp('------------------------------------------------------------------');+ a3 Q" {% P/ C/ n
disp('各节点电压相角为(节点从小到大排列):');
" @- `5 T; n$ S; i% _% M; {* ]disp(delta);    %输出节点电压相角
6 P1 y; U& l' Gdisp('------------------------------------------------------------------');4 L2 @+ K# p( W. I4 Y8 b& b. u
disp('迭代次数:');- p5 u6 [4 p- z
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 | 显示全部楼层

    7 G9 T1 a( ^) ~4 A& n( Z7 X9 E8 {" L' @
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    . u$ N' e2 `' e+ u# S不过说实话,个人觉得这本书除了用上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 发表
      S2 d8 y* F5 q: X: d5 L$ b  b9 \7 o孟祥萍 编著 电力系统分析 高等教育出版社 4 y( X+ s4 l8 }
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    - ~- t( H, ~( r* G: I9 q  Y( c7 j6 ~6 _4 L8 w) N4 J! M; 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 发表
    1 Z- v% T# y( q* s, c3 A0 @# t我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢- b7 l4 g( I$ G* p  j" d( l8 Z
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com* ]: T$ [, H; ?" y6 t! }/ e+ E
    n=5;0 h, k+ P6 I; ~! x- P- R7 x8 Q
    ...
    & K; J3 x8 @; u* ^3 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 发表 6 f; T3 l, I4 z0 F0 l
    8 O' ~# S, ~9 H% N" f1 `
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    3 t2 D; L6 |2 u  |5 [: n
    * Y/ Q% l; D3 z2 x0 F有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-7-7 00:38

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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