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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢2 b" H4 s5 O1 N# d$ k
(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
; Z  T# K* D1 y$ H" X8 e) Qn=5;7 M) @4 A- J0 r( B
nl=4;
, z& @, ~& Y: Vswing=1;/ T9 o' P* m& M6 C
pr=1e-6;
& b, b9 I4 [  G9 x6 MB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]# R6 e5 V$ ?  Y4 P& C( E
    2 3 0.01+0.12i 0.04 1    0;, g8 Z/ P! R; |- n8 s/ j7 p
    2 4 0.2i       0    1.05 1;! l3 }& l# v; }
    2 5 0.12i      0    1    0]7 G) E& x  J9 R6 _1 x
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
+ M) D6 @. j  z' o9 b+ J    2 0    0  0   0  0   0   2;+ u0 _( K7 n; B8 A3 }
    3 0    0  0   0 0.9 0.6  2;
$ u! A8 C. W. p- A" o1 j    4 1.0  0  1.0 0  0   0   1;
+ r; y: H- F$ M% }, k    5 0    0  0   0 0.8 0.5  2]
( A: D2 v$ e* |" }8 j2 E( kX=[1 0;%[节点号 导纳]
: j7 C, ~& A: i, s    2 0;: b3 B6 \' n) }' v7 w
    3 0.1i;3 f* j) W  N) |# v- `8 N
    4 0;! D7 ~' ~+ `) H5 C2 S
    5 0.1i]' Y+ u" i$ q8 u! s8 {% y* Q* o4 o& |$ r
Y=zeros(n);  %初始化节点导纳矩阵
, A$ v$ Q5 S6 M% p! c* b# D9 t& Rfor i=1:n4 E! f- ?3 @2 r  s" N$ d3 m
    if X(i,2)~=0;/ ^  v% z: N  A2 ^  l4 z6 Z
        p=X(i,1);3 r" x  x7 O" f* j$ k9 `" K
        Y(p,p)=X(i,2);  %写入节点对地导纳' O5 Z9 P+ V, Q
    end
' x7 w3 F) _- T  Iend6 q( e) y2 J% {# D6 M7 ]
for i=1:nl- r# |9 Z* T6 u- V  ]2 P9 i4 ?
    if B1(i,6)==0, Y6 @5 U: e; H# c( C5 o$ d
        p=B1(i,1);q=B1(i,2);& _1 [1 {( R& K" F. u
    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
5 m! s- R/ I5 x, [2 D5 {  p    end; v4 d# g$ y! y* m
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));/ L0 K0 `7 d# h" d
    Y(q,p)=Y(p,q);                                    %互导纳8 A+ w1 C/ H5 G6 P1 V1 a- F6 f% i
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳
8 P4 z& E' F% |1 m+ _- D    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳& ]# Q! B) j0 C8 q) |4 }
end
$ t  Y2 r; l- i! vY
" ^8 S- d) Y# x, q- E  h* `    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角5 q6 v" C" i1 Q0 A
" |; b/ h% g; O) ~/ m' I, ^0 O
%--------------------------电压及功率初始化模块------------------------------
# _. ^5 P1 N1 r7 v( h/ W1 i+ }" {* t- V4 x/ w9 x- \
delta=zeros(1,n);U=zeros(1,n);
6 `  a, C0 Z4 p3 U# Dfor i=1:n. T1 T- S/ C- u1 E
    delta(i)=B2(i,3);  %节点电压相角初始化7 ?' m3 w2 W+ U6 I
    U(i)=B2(i,2);      %节点电压幅值初始化
" J% t9 H, u. n3 Qend: K; J4 K1 d# k' ^

! |- H! U& Z( Q6 J0 v$ {; j9 zP=zeros(1,n);Q=zeros(1,n);
( O4 j' ]/ f& xfor i=1:n! @% W1 R3 H1 n$ T& t
    if B2(i,8)~=0
" ~" |: G% R% r' M       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化  Q( c% o. `! c
    end( d5 J- v) E! i& u- i6 `4 S! F
    if B2(i,8)==2! t% O! W4 ?, _
       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
1 z5 Z2 D* i0 f% ^# e5 U    end   5 t; ^6 J2 d4 E# a: h
end9 B: q1 D0 q7 N9 w& A

3 k  M3 ~- u7 |9 r1 \4 [- ?8 y0 L/ W4 ?. d3 \
%------------------------求各节点功率不平衡量模块----------------------------
# s% i' l6 K6 e3 M
* T5 Y7 J- v8 j+ ^) p% L6 {$ RNUM=0;IT2=1;  %定义循环次数,循环条件标志3 x; l4 u/ g$ T4 v) ]5 M
while IT2~=06 z" J5 k9 r5 ^8 l9 y0 A
    IT2=0;t1=1;t2=1;
' b4 h# C! Z4 p2 z7 Z    for i=1:n
+ c: v- T; [# P8 ~/ {- q% H- r6 u- R) p           
1 n. R# j7 q( D$ ]! x6 e( c            C(i)=0;1 d4 _' b% {3 w' u0 o$ N" O! h
            D(i)=0;7 _7 D' f; b& @* W
            for j=1:n( A/ S. j  @# T" Q
                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
; M' i$ n  n0 F' U! v                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率
) `% I0 e, G) }, T- p; I            end0 k7 N1 a; i9 V+ U' n1 [, d
        if  i~=swing0 p/ ^5 |: ?1 j2 c9 @* U& G2 N
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量
4 C3 ^. j& c! Y            t1=t1+1;
2 v* F3 O7 j, ^8 A4 V            if  B2(i,8)==2
% a( i/ i/ s$ M  w7 U                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
; c; r2 ?: b7 M; ~/ d5 z- V                t2=t2+1;
" m$ r: n1 t5 g5 S+ H, m' E" q/ M0 l            end
" V5 s% }! u) {2 n8 }        end  
5 s5 l# O; u+ h5 C& W    end
: l& ~8 m& h4 ~7 L# U0 {    6 Y& q4 }. l$ M; c
    t1=t1-1;t2=t2-1;0 z+ {1 K5 t/ G$ k: W
    DPQ=[DP';DQ'];  %功率失配量矩阵
& C' O8 h; [4 B+ m) H    for i=1:t1+t26 R$ ?9 `6 u# Y/ d- W
        if abs(DPQ(i))>pr  %收敛精度判定
  }/ _" w' q! x7 r" {        
8 G9 B9 Q) Q* F# x; ?            IT2=IT2+1;     %不符合精度要求,进入下一次迭代! ~( X8 r+ x/ s) p
         end   0 M! R. l  k4 O; b& c( S  j8 O1 N
    end
7 Z' _0 Q/ g. q# W; y$ {
1 P' x1 F, @! g%---------------------------求分块雅可比矩阵模块-----------------------------# B1 Q% F* S% i6 a( k, L9 Y

! Q% ~2 V4 b; _" s$ n4 OH=zeros(n);
+ V, M" m, T: S8 v$ z# Z. HN=zeros(n);# M, m' W1 |9 @4 h" C$ Z
K=zeros(n);
: \: h7 V9 D. M1 f" \8 cL=zeros(n);  %初始化分块矩阵
2 Z% o% o8 _8 p) a$ B3 D8 [8 K) {# `for i=1:n
# Q- |% K7 T% o" Q2 A- U   for j=1:n/ w+ ~5 ?/ h% s2 `. X
       if i==j
) B' Y5 M4 O7 D; @& W8 e! ?' H           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
2 z; ]+ R: M* x9 E6 G$ h9 v           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
2 G! b- I9 V1 q  s( L3 t           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));1 M/ p1 k" u$ W0 B* q
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元- V3 M/ \$ A$ E" E3 Y) y2 {
       else" G/ H8 o. K0 ?" _5 v
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
2 b$ Q' P3 z2 h9 O" u. E' i3 k  v          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
. `7 n! h, l. g5 J( f          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
8 B$ s# H; ~) h* n# i8 ^5 O          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元, `2 K9 X4 G# L3 q
       end7 H1 x, A" K. d: I) i' [  z6 |$ n
   end; b7 ?2 D9 d5 K2 }4 Q  J
end
8 a6 W3 }1 i( X4 Y0 u; ]( D. a; `    * O, f: y, r4 h# ], Q, H
%----------------------------求雅可比矩阵模块-------------------------------3 f2 S* e  J0 ^. R0 w5 Y
* O: |" Y7 k  `% x/ g0 D
J=zeros(2*n);  %初始化雅可比矩阵4 Q) w8 Z( [' _% O7 w+ ^$ x
for i=1:n4 G/ V: M' s  K
    for j=1:n
8 y" b& h  K/ m; I! }' [        J(i,j)=H(i,j);) o0 d$ y5 |7 n& x( q
        J(i,(j+n))=N(i,j);
' m& B  r7 f( `+ D: V. L        J((i+n),j)=K(i,j);
9 j- d6 w5 N) d3 w6 X. {, b        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
! V8 Q: h1 r' K( e/ m    end5 S4 t) Y+ C: Y* x8 y+ ~+ S
end
# N2 M0 A, G4 c$ |
0 i8 E( k, D, E: }9 D3 @PV=[];
; N# _& p$ {* r9 M! H6 d4 g7 ^5 yfor i=1:n. Q' L, b- e1 `( I$ e  v6 C
    if  B2(i,8)==1
8 d& a% D: m, Y( u6 H, S- ], T5 v        PV=[PV B2(i,1)];  %记录PV节点的标号
+ x: u5 l$ a- l( j- o, x    end
/ ]7 c0 N+ C% V2 T3 z) u  d! @end  
! c3 z/ B% u7 A: [0 b
- Q2 c- _0 M9 ]J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行
& D7 G" |8 {9 h4 |7 k& ~- a, gJ(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列
' A9 Q  p& {9 m5 |7 g# ~7 z2 P0 ~/ W$ n' }
J;  %最终的雅可比矩阵
# @) f& l; Q5 u. w, C0 e6 O; j9 T$ K" M! k
%------------------------解修正方程求各节点电压模块--------------------------
5 s& }% f2 I" c* D' f* o, L  : k3 F* j) P0 ?! {( N" O
    modify=inv(J)*DPQ;          %各变量的修正量
3 ?! z" r+ C- R* [* }    Ddelta=modify([1:t1],:);    %节点电压相角修正量  `& X5 D- f& }! ]) l
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
6 q& U+ g/ B  ~1 [: V   
: Z; T7 R) o3 y) g    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值      r2 B, j$ C9 Y  |, P3 Y5 n# P
    t4=1;
) d) I) m& Q5 N+ e/ V" d8 x( P    for i=1:n) L: v9 B1 A& M( D9 V4 o
        if B2(i,8)~=0
) ^9 L. \6 E2 f4 k0 {, i        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角
1 g8 b+ i$ _& c1 R) z        t4=t4+1;* U2 X0 ?: Q, Z8 H1 T9 m$ O! u
        end
- @( N' \5 s  I) j* l    end7 g8 a) |6 a6 J: B% K

9 j$ y0 p/ y2 `# }/ Y7 s9 T    t5=1;
# J( B/ w; t* Z    for i=1:n
+ O9 l  E- E) t9 _; m' h        if B2(i,8)==2
' v. S3 m- h. A* t5 E2 z        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值! h: T+ B7 }% [1 F' {# v# y
        t5=t5+1;2 A+ T  D# k& J* W7 y1 F$ i) }
        end8 _4 Z: u; c- P
    end
+ l. p* n# H. \  o# _+ Z3 u    NUM=NUM+1;  %迭代次数
* B2 e) U  m7 O+ s' Z    if NUM==1   %最大迭代次数判断  v5 L! C6 j+ V+ x" z9 c$ f9 c$ H
        break;  %超过最大迭代次数,跳出
1 I* }) x- ?, ^. h) _/ t    end   
% A; w5 f4 _  s  Pend   
" V7 x1 v8 W0 E: `
; @- ]! i% R( ]$ @- _! c%--------------------------------输出模块----------------------------------' E) u! i9 b, G% a
" d$ L7 y7 T1 \  Q
disp('------------------------------------------------------------------');7 J2 p2 k6 e5 h2 I
disp('各节点电压U幅值为(节点从小到大排列):');
0 z6 `2 o* v6 m! U$ a  |disp(U);        %输出节点电压幅值
$ H% w& ]9 l7 z' Ddisp('------------------------------------------------------------------');
' J  F: J  d/ ^disp('各节点电压相角为(节点从小到大排列):');
$ k% @" S, G( Kdisp(delta);    %输出节点电压相角
5 h) v8 Z! h- {4 \3 i: ]9 V+ ]disp('------------------------------------------------------------------');
. D" m0 u& w" p8 T, z$ Wdisp('迭代次数:');
9 w. n$ o5 }' n' f6 J, {- P% sdisp(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 | 显示全部楼层

    / U  F; |/ M% ~9 y' _! {" u
    0 m1 x0 U; A' c* s; n那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 & I5 F/ D5 X# d7 v
    不过说实话,个人觉得这本书除了用上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 发表 5 S$ d, E" m6 A% z1 \! `& D
    孟祥萍 编著 电力系统分析 高等教育出版社 , [+ M; F7 Y' p* \
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些
    ( S& U- o/ ?! J9 M) l$ P1 p6 M2 Y
    1 w8 ?9 ], N8 F) l9 [
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表
    ! O$ a( S7 G' e. Q7 a$ h我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢1 @: d4 J; p6 A0 T4 B7 E
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com3 G8 A2 H; ^) m7 Q0 I  a) h+ o
    n=5;
    & W7 C! L  V& P4 C- m# ]' Z ...

    : p- `" E$ O* q这个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 发表 $ Q  r( }( q3 M9 f% O) l
    ' {! V# h* b  h( N$ }, d
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。
    , z: S6 H  J. m! a
    # K  }! G0 W  V0 g1 Q. `  Y1 u
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-3-17 18:43

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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