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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
. j; [3 X  L/ Q1 j6 y5 d(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com  ^' ]* o9 I3 j" k1 l7 |
n=5;, y6 N8 _$ P4 L/ g8 j
nl=4;
1 V' T6 x# M, U6 j3 x5 u6 o' Pswing=1;$ `1 Q. l) i# l( O" Z
pr=1e-6;
( E1 ?, ?5 W# PB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]
. [. V! t+ ]$ \/ y9 P    2 3 0.01+0.12i 0.04 1    0;
2 H; x* U  Z# o; ]! E    2 4 0.2i       0    1.05 1;
- c0 B8 e' a# @# E3 i9 g+ S! B; k    2 5 0.12i      0    1    0]
/ L8 S8 e+ \1 G* ZB2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
. Y+ p3 c# ?! k2 s4 H    2 0    0  0   0  0   0   2;+ a) `4 w- C2 L6 q; [
    3 0    0  0   0 0.9 0.6  2;
. n* O2 V6 A8 t4 J    4 1.0  0  1.0 0  0   0   1;. O: [% f4 d5 Y* J, n' l  z
    5 0    0  0   0 0.8 0.5  2]1 R9 r7 t* Y3 [8 e! `
X=[1 0;%[节点号 导纳]
4 G' m3 L; g* l% R  M    2 0;/ ]4 @) P5 X4 D: a/ _- y& s
    3 0.1i;
2 j5 U5 s$ z6 e$ m# K    4 0;1 A. G8 c' N- x4 X6 f- E
    5 0.1i]
0 j8 D: J2 q  jY=zeros(n);  %初始化节点导纳矩阵$ ?7 [9 G$ x9 b% n; r4 k
for i=1:n9 ?  E8 W  q9 @' j
    if X(i,2)~=0;
* h  j' ?; s4 n( ~1 @        p=X(i,1);' R2 U" k1 }) F% g6 Q) s' J1 e
        Y(p,p)=X(i,2);  %写入节点对地导纳
  j+ Q* z8 a9 v: l# y    end  ?% c) o+ n+ A  E  m) I7 ^
end
& K; A* C% K; d7 }  u7 y- K: \for i=1:nl
+ g6 _2 L" D% j  g# L    if B1(i,6)==0
5 D9 G$ g0 d$ I$ h  q        p=B1(i,1);q=B1(i,2);( S. U: X5 c# G0 p7 ]' {
    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
  l' a: E: @9 b  f+ B2 Q* |+ ]1 b    end
8 }0 _, G2 G2 j5 c' d" X0 g    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));! x2 o2 W' N0 z! V( j
    Y(q,p)=Y(p,q);                                    %互导纳
1 h- o! L1 ~( g' P: K    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳& p, q9 ^, g, U- Z& ^
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳" b4 E! l4 O; J, G! U8 E
end : d; B. Q  L- _( M0 N/ N
Y! q7 r7 q+ t2 v) `. X( ]- U
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角
/ P/ h; M3 T# y1 d2 g5 ?( S! e6 I, B1 U' @" P" i
%--------------------------电压及功率初始化模块------------------------------
1 o6 ]1 t- {% c* n* f3 s7 i2 g0 E5 P
delta=zeros(1,n);U=zeros(1,n);) G! ~4 O7 @* T" b3 W0 r' @
for i=1:n0 w: H# d( W/ l6 C% d: i1 t8 J
    delta(i)=B2(i,3);  %节点电压相角初始化
6 W9 l: o0 W2 w- e    U(i)=B2(i,2);      %节点电压幅值初始化
$ x$ ?! _" n! w- ^+ [9 c# Gend
$ n/ U5 q  X7 {+ H; X5 R
" l: u! Y. i1 ?3 {. O/ S2 DP=zeros(1,n);Q=zeros(1,n);
, @& H; u& q: g0 P; }6 ]for i=1:n* e, x8 M" b% p! h3 B
    if B2(i,8)~=0
0 c! z6 n6 M' h. N9 {  W       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
' Q; A- J$ p  t* [# X    end
5 l2 {0 h( l0 B, x, s6 L9 K    if B2(i,8)==2
, z' f# n+ c1 Z0 L9 l: N0 M4 [3 d/ j       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化$ k9 s" P* B6 a( K" {+ S0 U* a
    end   , D1 y5 J2 ?1 ]$ y, r9 {; I
end4 I4 [% Z0 T- ]9 e

1 Z) W' X) s0 p! K0 |' D5 j2 h% I8 {: _% r, F5 \
%------------------------求各节点功率不平衡量模块----------------------------
: [5 W; c" ?5 g! E6 m
, ]# @: {# X( l9 h& L8 ~6 JNUM=0;IT2=1;  %定义循环次数,循环条件标志2 d/ C4 V* |7 s3 U5 [7 v; E4 U
while IT2~=0
2 h! i" q( o3 B7 j& N5 @. G9 R' t5 G* ~    IT2=0;t1=1;t2=1;* g0 A9 o$ Z) A  ^0 c6 S+ t, P* k
    for i=1:n
2 z- @1 S! A# f/ |, w           
9 g, f) M" j7 b7 d. W* ~! s) S8 G3 v            C(i)=0;
0 s9 C- R- w) Y            D(i)=0;
+ e2 k; D& l2 g  M8 i4 _" O            for j=1:n
" [0 G$ @$ m- M8 U                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
" S. B7 n- I6 B+ X1 n4 N3 Y( {- Q                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
4 C/ T# C7 M' i2 Q  n" j            end
! n) _) j: R& ?( f9 l+ E$ S        if  i~=swing
, D8 }1 `4 N! `            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
; P+ |; y' G5 e            t1=t1+1;8 e4 V9 C" c; l! O5 {
            if  B2(i,8)==2
2 p1 \# W5 g, l% B0 G5 s; [                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
4 ^' T" ]' p" X' d$ a  q% l- u                t2=t2+1;" |  x& A9 Y' B/ D, u7 i" w
            end
6 [/ K) F9 t8 F  S9 r$ _# A0 {- B        end  9 \$ S' P  I5 n" u5 e1 B8 I2 s
    end
! I! x0 W* V& S. w' ]0 B3 E   
) w2 ~0 y$ a7 a, v, q5 S    t1=t1-1;t2=t2-1;
) G# o+ ^4 T0 v  D7 N- x4 ]+ q2 a# G    DPQ=[DP';DQ'];  %功率失配量矩阵
$ J3 `- D7 l$ @& o1 V    for i=1:t1+t2) }9 T% F8 m4 D7 @5 X* M! ~9 X
        if abs(DPQ(i))>pr  %收敛精度判定
% {  [6 m- z* g7 z; k) T        
8 w2 j6 E! M7 ^- U* D4 I6 ?* @7 d            IT2=IT2+1;     %不符合精度要求,进入下一次迭代
' n4 P4 P8 Y2 j: H         end   : b$ |2 I/ g& r6 g, C7 \' c$ z
    end
1 f; {) P# q& R1 B: n
/ q4 o) b/ R  q) \+ R  K& F%---------------------------求分块雅可比矩阵模块-----------------------------. R% j! D: ^; Q8 H0 {' k

: k: j* y( _: L; Y6 c# BH=zeros(n);
% ]( R( o' m/ ]N=zeros(n);; ^( C0 m" F" L4 K: I( F5 M" [4 Q
K=zeros(n);
; Z2 N3 r5 r7 `8 b- `# ~' R! c0 y( hL=zeros(n);  %初始化分块矩阵
1 ?& s5 X- T- Y# _+ M, Jfor i=1:n
7 r1 D( U, C; C   for j=1:n
' i; H' ~6 [7 z, e. @2 b       if i==j) s# b) L. B* `' S! u
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));( W( |4 R) K/ L
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));$ u% M3 G" c+ ^: f( }
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));) w& X1 |2 G% D# n- R
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
0 v8 S! R5 y& q8 q/ ^' _       else1 o( ?1 r4 y% q5 k+ F* x
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));2 P' j6 C2 _( {/ \
          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
  B( o; T* R( P( e- [          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));% w" G; e2 J8 V% i5 U
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元5 Z  B9 U/ p$ ]0 c4 `
       end
, ]/ P( Y  w  F5 L   end
, }/ c" S& {# K, |$ _" b7 Jend/ D* }  W/ @0 R$ S  y  n
    ( P) ~: z: d5 C" e# \
%----------------------------求雅可比矩阵模块-------------------------------+ c3 R" l! |  W- x

( B! Y6 @& m' \: ]: gJ=zeros(2*n);  %初始化雅可比矩阵
# C2 L( b1 Y$ Ffor i=1:n
& J% A; \+ k2 F# X    for j=1:n
1 i& s8 I3 N$ N/ M  ?: U        J(i,j)=H(i,j);
: e  @3 C* w& u  }8 o  }        J(i,(j+n))=N(i,j);9 q2 t$ _; b/ s- j+ p5 ]! {) v
        J((i+n),j)=K(i,j);
: Y- f5 }2 w1 A' J* e5 @# X5 ^        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
" u' u! b( h) A' ]+ q' J7 i, P    end- h6 F3 M  J0 J2 N" t
end; W# Y' t: R  l2 |# q

7 H1 H( x- \1 }5 a' S7 v* @. x# JPV=[];5 k2 k+ |3 B# B& n8 i, z
for i=1:n
1 C* G9 ]6 F. x8 q8 w    if  B2(i,8)==1
6 R1 X9 ~; X* T9 b5 p: [        PV=[PV B2(i,1)];  %记录PV节点的标号
3 B6 r6 h0 A$ z% u6 Z8 o5 W    end3 h- s+ \! S7 w# z1 I
end  
' _5 }" j2 ^  L) o1 g5 J& T; H3 ], G8 }# Q) ^" D
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
0 p' ?! C' X' X( }: S: nJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列
" T  n" [) t- W# R4 L- x# I9 [1 f, D) q, R
J;  %最终的雅可比矩阵4 d, r8 w) z" S: Z) u
5 x) J% S" c/ N6 }( B
%------------------------解修正方程求各节点电压模块--------------------------! y+ }% L/ g4 u
  
* Y9 l% K/ i, {" m# N' N    modify=inv(J)*DPQ;          %各变量的修正量
5 w) x+ B0 l, F" F5 M9 G    Ddelta=modify([1:t1],:);    %节点电压相角修正量4 l+ j* S7 w/ n8 c
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
: r  z. P! p. i! Z   
2 T+ U- t# G8 u+ C8 V/ u$ W    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值    . c- S: j; B' j1 w5 o  ~& V5 ~
    t4=1;3 w2 E" U, c; _/ P% H" B1 F$ O
    for i=1:n$ @' ]8 j+ P. N9 Y
        if B2(i,8)~=0
6 W7 w8 P  t$ z* U7 C) P( b7 I        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角
8 ], N' {7 n7 |7 E        t4=t4+1;
4 M1 }. A* o6 O: o# v        end
2 d( h0 B6 O* e& t# N    end
, R2 s8 L4 c0 Q% R( Y, q' T% z6 f. v, z' ~0 ]/ r. w$ ^: }8 U! _
    t5=1;
  {8 D& ^8 p# G0 L- x3 C$ \    for i=1:n. B* i% }9 [8 T1 |# @% i
        if B2(i,8)==2
8 h; A0 P# b7 I3 ^9 n        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值) X+ |( }( T3 U% u& }! I  d7 ^% @- F
        t5=t5+1;
: E3 [8 }5 A$ Z3 W  K8 ^% R        end2 i0 v6 y1 H1 |4 X" t2 G6 O
    end- h, ]; W: f- p0 c+ l* x
    NUM=NUM+1;  %迭代次数
/ J  D" B9 N; u( U9 G* c2 n$ N4 E    if NUM==1   %最大迭代次数判断, G" }- U: H6 X/ y/ Y: r4 r" k2 v) P
        break;  %超过最大迭代次数,跳出0 I2 ^" z' D( A7 l2 K  \( Z5 T
    end   * [6 U2 _% @, ~3 C* U
end   
2 a! q+ L% ^# h7 v. ^3 K7 R! i
6 Y. b7 k8 P1 z% G& ^& L%--------------------------------输出模块----------------------------------
" w2 F6 m0 D6 x- x2 u  U
$ D1 K2 w% x4 e" \/ T+ G* X! L& Y  S$ ~disp('------------------------------------------------------------------');# u5 k! V0 M8 b4 m
disp('各节点电压U幅值为(节点从小到大排列):');
( H3 ?$ }- k1 A* D: `disp(U);        %输出节点电压幅值
) Y* y8 Q" d3 Q! M4 x. G" ~disp('------------------------------------------------------------------');' U- M  P# I% L* s- j" {; e
disp('各节点电压相角为(节点从小到大排列):');% k/ u5 z5 b6 M( F0 P; F) s$ s# L, Q
disp(delta);    %输出节点电压相角7 m& X  E5 I( ]: r  S# t
disp('------------------------------------------------------------------');
7 F5 J- V( Q* D2 ]6 s+ {4 ~/ c) x' `disp('迭代次数:');
8 }4 y: l0 O8 j. e7 N# ddisp(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 @) L- @) G  X% J+ I
    9 v$ }5 _% x; s7 C6 e那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 % |0 p* j- k+ P5 P
    不过说实话,个人觉得这本书除了用上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 发表
    * Z5 `# H. s4 p7 t孟祥萍 编著 电力系统分析 高等教育出版社 3 f' ?. v4 b# m  j' _
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    2 b; v% B: Q1 T# f/ d+ R
    1 Y0 M" p% m, D: T/ ?  S4 A: q3 A哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表
    4 c$ p2 x5 g" B' @我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢- O. N  O0 {4 G3 E8 y$ b/ x
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
    # \9 G/ f! C) L/ H# g% L1 Pn=5;
    $ b3 p; b8 q7 h0 V3 }/ f4 k3 d ...

    9 z- J" O. E$ k8 r  y5 @这个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 发表 2 n( `( d6 b8 F' }, z2 f
    ! S) b% S0 ^9 P
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    : @% @( |6 _* K) x
    : u0 r( Y9 v: A) w+ J  i
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-3-17 13:25

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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