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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢7 |2 R; D8 T/ w3 i' C# ~, ^
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com5 v# f; ~6 T$ g$ M* W% S
n=5;
1 v. B: u; ~* [1 u" M& x4 ^. O2 Nnl=4;3 Y- [. }  ~0 y/ ~3 Z# s6 h; Q$ X; Q4 M
swing=1;
" ~2 r- r2 H4 H% s# E/ `/ L8 Bpr=1e-6;
+ q; A  \7 G, q- ~9 {  X5 MB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]( U% Z: m# u, I" ^& W
    2 3 0.01+0.12i 0.04 1    0;9 L' `0 p- l) k/ ]; h! e
    2 4 0.2i       0    1.05 1;
! _) t8 P2 c4 U8 I; L    2 5 0.12i      0    1    0]
% R# J3 f: Q9 {$ \# A# S" FB2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]' Z9 Z% t  a8 S; ^9 z3 q4 P
    2 0    0  0   0  0   0   2;
! C# a% o8 }9 Y: H& k    3 0    0  0   0 0.9 0.6  2;& f3 P* B' E/ {# B
    4 1.0  0  1.0 0  0   0   1;
4 z6 ?4 O2 H; ]- `    5 0    0  0   0 0.8 0.5  2]$ q- v. K/ F9 U8 K* }
X=[1 0;%[节点号 导纳]
) v5 ?& p) Y4 o5 L) O& B3 A    2 0;# B1 O6 l$ Z+ ^( K& ]" k
    3 0.1i;  h  s+ ]$ F  M: H4 ]: d
    4 0;
7 k- }) `* {/ m1 V6 J+ @8 I* r    5 0.1i], J) X* T  V/ Q0 I8 R5 A' I: b
Y=zeros(n);  %初始化节点导纳矩阵3 c; \4 i+ J% h
for i=1:n
, |, p& `$ `) ^4 o" B% Q, {    if X(i,2)~=0;( X" q; K# C1 g" t7 k
        p=X(i,1);) s3 K9 K6 s' g" O
        Y(p,p)=X(i,2);  %写入节点对地导纳
! a$ X  K6 ~5 x1 W# O9 q; S    end' w7 @  C- X' i8 r& N0 J
end
+ i; A1 Y, C% ]  Ffor i=1:nl, i2 r% u! J% q! i: Z- j" h! j
    if B1(i,6)==0
( W/ I0 x; ]: G# Q8 ~% u        p=B1(i,1);q=B1(i,2);
6 p9 Y+ z) h. y, C5 |  q' t$ }    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点" ^& E0 ?- V7 z6 m+ h% ~4 [. ]
    end
$ e4 V8 k1 a" o! _) s    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));' f) d+ A! ]+ w3 |2 }. q* b4 A% I
    Y(q,p)=Y(p,q);                                    %互导纳
, ^7 I$ E6 `' ?' r+ U    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳" T9 a& l8 W8 m, L" I6 N* N
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳/ y2 a  N; S/ w7 Z2 {
end 5 x/ L. K+ Z0 x( A7 y
Y2 U: J/ Q% }/ w2 J5 j
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角
6 G' L( ?, M, q! c$ j5 i7 {+ A4 _& z+ ^) k" \
%--------------------------电压及功率初始化模块------------------------------
5 q) e9 {5 N/ |4 I* F8 D% y) r. |: M& k: L8 n
delta=zeros(1,n);U=zeros(1,n);
! X8 R( j$ r0 z* m7 \# Z4 L* D$ q( _for i=1:n
! x' }4 J4 [' q' v- B. H8 d# C. @    delta(i)=B2(i,3);  %节点电压相角初始化
" P* S  _5 V7 N, U( Q    U(i)=B2(i,2);      %节点电压幅值初始化0 X: N& S8 U6 A+ s' |8 g  h
end# f/ a2 X, d1 m
; W: z! Z* m' E7 J# y
P=zeros(1,n);Q=zeros(1,n);* A$ M; q1 g' q, V: h7 x
for i=1:n: K5 @7 c7 _9 z& x" X
    if B2(i,8)~=0+ ^/ R6 G% t+ j
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化& q9 }/ [9 i% S* G$ u) \+ B
    end
) ?- t. x* ?9 ~    if B2(i,8)==2
4 L7 }! a( f# ?! W9 B! s$ t2 o4 p4 [7 M       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
) }+ J* f* _9 J- ~    end     r8 I. x0 |5 v/ J6 K/ {! T
end% }( y; V& i% n% V/ y, Z
# W. n- ?$ S+ D- N. o

: _- Y1 B, q$ V9 e* U/ B5 C4 @%------------------------求各节点功率不平衡量模块----------------------------3 g7 V$ Z; [, ^$ c$ M
+ A5 `, _% t5 E" e% [! m
NUM=0;IT2=1;  %定义循环次数,循环条件标志
) n. s; x* T1 Z$ v. \while IT2~=0
4 [4 T$ d4 S# j$ n' [    IT2=0;t1=1;t2=1;
% m* v: o, i3 X/ S    for i=1:n
5 Y2 y' }! }# U; f# {           % [4 w' v5 s- t0 q' A9 B* q& r( l
            C(i)=0;
7 }0 Q! q& z) _6 r% v6 R. N            D(i)=0;
( Y$ T2 b' i- X: g            for j=1:n
0 H3 ~4 O6 b4 D3 Z                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率" T' j: H7 A0 T+ B; f
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率: Y- y1 E( S8 v; P' v7 T: B
            end
, G: G* s* q' ?2 e) Y$ m7 i        if  i~=swing
) F$ Z$ B7 r  j' ?6 Y+ J            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
' K& b4 N, w# t/ `6 P7 t+ U8 s: c            t1=t1+1;; `' [  ]& Q% G
            if  B2(i,8)==2' _2 ]! j, Z) V) E9 O: @2 e
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
! j1 T  n/ u' W3 e( F% C) p                t2=t2+1;- u' H: R7 f8 Y. ~! Q
            end
" r. K6 j" L8 I1 m- N4 @6 ~        end  
4 v2 y0 ~0 f6 x    end& c/ r; I4 E( h3 |& y# w5 Z  F
    * @2 k  n4 q$ _; v% _' \2 v
    t1=t1-1;t2=t2-1;
- M" M* ]/ r: y" m    DPQ=[DP';DQ'];  %功率失配量矩阵2 R9 i1 I5 w% n, g4 ]$ g( g
    for i=1:t1+t22 J; m" G. y* [- {7 a/ E- X
        if abs(DPQ(i))>pr  %收敛精度判定  @' {9 C! n" ?  n
        
0 A4 i6 |& f0 u  P" P- ]% G9 [6 D0 w            IT2=IT2+1;     %不符合精度要求,进入下一次迭代; Z0 ]+ P% h8 X$ E8 \  s* b
         end   : |7 _4 z$ Z1 c& t; h
    end
/ K. t! J  ?8 T4 \- H. B2 ~
7 c$ b0 Y+ R, G' p! Q  T%---------------------------求分块雅可比矩阵模块-----------------------------# h; C  Y$ b9 p  c% D+ h( R" \' ?

& `* ^; \, n$ r) SH=zeros(n);' x$ n5 @) ?" N7 @
N=zeros(n);
- q; f& y" ~! B; T- A4 u8 K2 t4 mK=zeros(n);
/ {! q/ M4 ]5 ~" BL=zeros(n);  %初始化分块矩阵. v  I3 o5 L! Q8 e
for i=1:n
5 i! d* W& z3 p   for j=1:n
4 |7 ]/ @: w  e6 C- }: u% z       if i==j' ?3 B/ D1 b" |1 U6 h2 \' x( O, x+ M
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
* X1 j& U9 M/ U# i3 f+ ^. N  B& h           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));7 ^0 L3 S$ o. x2 @: L( ]
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));4 W! ?7 r- R  y- |( P, I% j* z# I
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
" t# l5 m' ~5 I7 d! {2 d! l/ R       else4 {, r0 N" ?, K6 G* @- e
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
  u0 K6 P! e1 e          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
4 _' [6 _8 d3 m' T8 b          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));4 U: Q$ }) p6 h3 y- Z# A4 F
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元( y1 P, q5 a3 u, e
       end% R9 I9 a) N1 e" O' ?' @$ a0 i
   end. J4 i+ S$ U  T7 h
end
/ Z; q4 ^1 i* q. B* v! R   
1 T" L1 W" u; [4 |& g8 o%----------------------------求雅可比矩阵模块-------------------------------
% b6 U9 v& C( J( o; X4 _3 a5 I' W8 `( j, \# M+ X+ U
J=zeros(2*n);  %初始化雅可比矩阵
1 l  s0 c8 u! V; l$ Y, q3 P: [7 s& |) D% afor i=1:n9 [. {- x4 Q. \, R
    for j=1:n+ E1 o0 l+ k" q* y; H
        J(i,j)=H(i,j);
3 X. K: c+ W6 A# t6 d; M0 q4 {        J(i,(j+n))=N(i,j);
8 U/ a/ D. q) C- w4 C" l" R        J((i+n),j)=K(i,j);' [( z- k/ [$ r7 J+ G
        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
0 R/ W8 m7 I# g1 f) W, \( `    end6 z5 G6 h/ |: a7 ]9 v5 q
end7 ?0 D6 q) U- p, }% R
8 W5 S( {4 c( P) H$ q8 c4 o. T8 {# O
PV=[];
  p7 x) H* X8 N# k; c/ ?for i=1:n6 h. W+ s/ @* k8 c& ?
    if  B2(i,8)==1+ x, F4 {, w8 p! V  ^/ I( p* Q
        PV=[PV B2(i,1)];  %记录PV节点的标号
6 x0 w+ u8 [! i9 C3 a9 j) Y    end: d, W- f3 z* {. }! y
end  
# x0 U( [  Q1 P+ v$ P  v9 N, ]* U9 h2 n
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行: w/ b: n: z( e' ?$ `$ h
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列
% O5 O/ z" q  m8 m2 f+ t: m1 R  w6 ], s- b4 N; o( G& V: G% e3 f7 V
J;  %最终的雅可比矩阵) p1 _6 v& n! T( A. K7 `; w) C5 p% L
6 o2 p% _; |" V5 o. l
%------------------------解修正方程求各节点电压模块--------------------------  i# o4 _, p( Q6 c2 Z0 C
  
; W; ]1 y3 Q" z& f1 L# _" n% I    modify=inv(J)*DPQ;          %各变量的修正量
" M6 m/ l7 c. C    Ddelta=modify([1:t1],:);    %节点电压相角修正量
) ]/ P4 G# ?" }    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量5 [2 X. |5 ^' n' n. [* ~: C; z6 N' M
   
5 r8 T! z' j) T5 g* ?    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
# V' A2 v, Y7 s& W% v    t4=1;3 c% I- U7 r+ e1 d1 [
    for i=1:n8 G+ G- S! j& e* T6 @0 ?
        if B2(i,8)~=0! b5 Q1 _7 n! c7 `( P$ t1 V
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角- ~5 z2 T! \, V. D. a( v" ~& a
        t4=t4+1;' A$ f7 i' F1 ~) s7 T
        end) o, D! Z# ]6 ]5 Y
    end
; n& `' _3 G' e8 I+ X7 F3 M# u, N! o, G# ?6 q
    t5=1;
) G6 e, W: B& O* ^) S    for i=1:n
" _" B( m$ S* L" s. b        if B2(i,8)==2, {4 j! E% z7 J/ M" u) n
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值
7 ?' {/ i/ {3 l5 T        t5=t5+1;" ?7 {& Q1 U" ]
        end, a9 G# A) ~6 n: s* _5 j! L) z
    end
( w1 t- T. X; X( |$ o3 q& n3 Q    NUM=NUM+1;  %迭代次数
# X. {, W' H# P+ o. ?    if NUM==1   %最大迭代次数判断" {0 Y; \# J/ i" Q4 U) t
        break;  %超过最大迭代次数,跳出# h. k9 R' W. R  I
    end   7 F7 ]  b$ A8 W; P1 k- T5 n! D" c2 e
end   
$ Y$ C3 k) J% i  g; j) Q! g* m# D! b. ]
%--------------------------------输出模块----------------------------------" J3 a, H) c( Z9 v0 G- ~
- {/ ~* S8 g9 k* M8 P) Q* X
disp('------------------------------------------------------------------');" E' S' _. M! C% l& n
disp('各节点电压U幅值为(节点从小到大排列):');
: I) X- M; ~4 z- |% Zdisp(U);        %输出节点电压幅值0 N6 D: K' c" e# T3 V( F) q
disp('------------------------------------------------------------------');; K' \/ U* ]" ?* D, }& ~; d4 i+ I
disp('各节点电压相角为(节点从小到大排列):');
/ ^  i8 d' h6 [5 E) Vdisp(delta);    %输出节点电压相角
% E  H4 {8 I8 s( ?8 d! \% U3 Cdisp('------------------------------------------------------------------');4 j; C; j4 m  i6 G. N. u
disp('迭代次数:');
9 G6 G: i! t, M  z( }" V9 ndisp(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 ^, _- W" P( d3 P' U5 z  m! S7 c  |1 i! ?' s6 e
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 ( A" t; }/ Q" _# @- s' c
    不过说实话,个人觉得这本书除了用上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 发表 7 E8 s0 ~% w, b
    孟祥萍 编著 电力系统分析 高等教育出版社 3 R/ ]" t* H/ ]% p: Z
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    9 J" O% f- c: a9 }) m
    ; S! _  ~7 L/ Z" _, }3 F8 c
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表
    / f8 `; u2 X$ a3 c6 [7 L我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
    ; e  ?+ p8 y& k: }$ |(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com5 `; j+ e" H2 _3 J! ]1 A4 w/ X
    n=5;
    * p/ u# R% ?$ C; R  a* X6 A7 v ...

    2 d) u! m# n& A' y. G4 H  w/ s这个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 u, \! h- \$ |% ^9 E+ o& \$ m* A. d9 R# T
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    + B3 _! |) v- O5 F

    6 s8 l2 Q8 W- `- G5 y! Q有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2024-5-21 15:35

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

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