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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
! N+ _' G- B: a" D" o% }(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
  E& ^" _; Y& E4 W1 \. Xn=5;
0 V7 h# z3 `, F0 i0 p5 V2 tnl=4;
, X* |6 ]( d% X9 E; @swing=1;
4 M. G0 n( H- z4 U$ N4 G  @- Wpr=1e-6;* u  [6 G% p: d. |
B1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]2 z  W4 c: Z' G5 M
    2 3 0.01+0.12i 0.04 1    0;$ }$ u  o! q, d, T  D8 c8 M
    2 4 0.2i       0    1.05 1;
0 f5 b/ x0 S" M3 Z    2 5 0.12i      0    1    0]; }4 v% W1 `% L
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)]
& h! z( U! Q" n4 ?- {    2 0    0  0   0  0   0   2;
3 b% R/ v( A& K2 W- J6 q    3 0    0  0   0 0.9 0.6  2;4 A' w/ A. U1 `3 T0 c9 w5 S
    4 1.0  0  1.0 0  0   0   1;
1 N0 L: A' W4 h3 z3 ~( d% X    5 0    0  0   0 0.8 0.5  2]6 l  L7 g) o0 A" ?( h' }. |/ V
X=[1 0;%[节点号 导纳]8 Y1 z3 j' Q) S. ~, Y/ x4 a* y, x
    2 0;8 ?$ o! ]- \2 m  ^
    3 0.1i;6 h3 R+ x1 i$ p3 Q( q; ^0 o
    4 0;$ Q' ~3 m+ p4 t+ i/ A& d
    5 0.1i]
/ ]4 S* P$ q5 d' S' h( EY=zeros(n);  %初始化节点导纳矩阵9 O% K& Z* S" v4 n* d9 r( F3 o
for i=1:n
0 W) @: L  \" w( {6 F8 i. w( b# X    if X(i,2)~=0;( ?. |5 _; }2 v" R, }
        p=X(i,1);
& H$ q2 T& h/ r2 O        Y(p,p)=X(i,2);  %写入节点对地导纳& m' F, [3 x( u
    end' |" j; z( ~+ Z2 w* ~% H* z& g
end/ o: p' B) U* Z% }, k0 M
for i=1:nl# j1 h$ C2 x: g2 B% H# y( S
    if B1(i,6)==0) Y8 J+ s( A2 e% r
        p=B1(i,1);q=B1(i,2);
5 f! r' A. V2 w( l% w0 H) o" k    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
* f) o) w! v; I; \9 ?6 P    end  @; {6 Z" v! a/ U8 Y( f+ E
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));, s, D& g  n8 u1 w9 \, \" S4 U0 \
    Y(q,p)=Y(p,q);                                    %互导纳, k# `/ ?* p2 g
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳
6 f2 }/ y" G" X; g) g4 |$ ^    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳! D( M4 h7 ]8 h# ], J" S
end : q; O( o1 f/ ^8 `
Y
! A( g* C, I* A, Y" F4 N    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角8 p1 |6 r: J! U2 R$ v% e/ G7 x
! U$ i* ~6 m- w: J! L
%--------------------------电压及功率初始化模块------------------------------
9 r( X, d( U/ r% f2 v2 Y/ k6 B( o/ K& |
delta=zeros(1,n);U=zeros(1,n);: j3 s$ R- {0 h& Z8 [, M3 \
for i=1:n" o2 n0 ]+ |+ O7 p9 {
    delta(i)=B2(i,3);  %节点电压相角初始化
" Q1 T: Q& f; F! u. w    U(i)=B2(i,2);      %节点电压幅值初始化3 X( ]7 R+ z! d; Z0 Q
end
" T" B: L& h+ N; }; T3 h
- k, f4 F0 F6 u) ]/ W4 fP=zeros(1,n);Q=zeros(1,n);2 J3 O# J' {- m* Y6 R: B, E$ i
for i=1:n
3 [1 b6 l8 \4 R    if B2(i,8)~=0: \$ s2 C' V5 H0 [5 Z$ ?- |+ y0 {( Y
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化
, ~7 g& |% n0 ]) M" K( Q0 t    end/ l3 }8 E$ M4 H! D, j$ D7 s9 K8 S
    if B2(i,8)==2
: ]8 x- a' @6 x3 |0 [! D% F* i       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化
, Z. G! F% L  A5 P    end   0 Y$ n6 b+ Q0 G5 X
end
' u! O% a9 p! d) t5 h6 q- e- p% s0 Z/ W2 V& a' H( c

0 S$ P8 {* M' }%------------------------求各节点功率不平衡量模块----------------------------$ _2 w3 i8 b! t

; H8 {  I! D/ b5 G1 KNUM=0;IT2=1;  %定义循环次数,循环条件标志7 q6 w; b$ ?" w) B* q; k' P2 b9 S
while IT2~=0) I: p: q2 D/ C, X( e
    IT2=0;t1=1;t2=1;
* r7 r5 x( g' K9 u8 W0 w( y    for i=1:n7 F" c( W: R  r' _) S% h8 @
           
# @* u1 Q3 u2 j! o3 l! ?            C(i)=0;* y! v7 G2 S. W, P$ {# k
            D(i)=0;
4 C2 U0 J7 r/ W/ t5 q# v            for j=1:n
$ K# t0 w- t# ?3 n' F' Q- {5 L; _                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率4 L! J; G: J8 Z! W0 @; u3 }
                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率5 X( A( {7 n( J6 o% \8 J
            end
" u) P" o: i* g( O. F" h- X- J        if  i~=swing
5 V# N% H, C+ ?* S7 C            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量8 U8 c2 A2 ?( v! R8 v
            t1=t1+1;
5 G( B4 F: |: m/ N. A            if  B2(i,8)==2' W; t; X5 @& _# X( s8 Y
                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量
, e. e8 t& `! f: J4 x                t2=t2+1;
6 Q/ K4 ~! K  y- M: H2 M            end
8 {6 ]8 F; m# T/ K2 g        end  5 d" s: u: k8 O- [2 t+ _$ s3 b& M6 L
    end
3 X" s/ K0 g) J) `/ ~# v! x   
5 j" w  A3 t8 t& e9 l    t1=t1-1;t2=t2-1;. G: o- v7 `  F! h
    DPQ=[DP';DQ'];  %功率失配量矩阵
- b2 d% `+ {0 Y; \) q5 m+ F    for i=1:t1+t2
  A- B9 l, F/ s4 [, [        if abs(DPQ(i))>pr  %收敛精度判定
# z# s: c1 l! l% t9 O4 C        # ^3 {7 K/ R- i; \( |" j6 r- e3 h
            IT2=IT2+1;     %不符合精度要求,进入下一次迭代& H; ]4 t) p2 {9 R) s# D7 a
         end   
, N' o5 ]% L4 Y: B    end
4 T6 T7 w; p8 _7 x
  G1 }5 Q* |! ?  _9 k! Y%---------------------------求分块雅可比矩阵模块-----------------------------9 ?+ [7 p5 u% A

/ t! X8 b- |9 o5 [( LH=zeros(n);
9 T0 P3 K  P* o+ K9 _' x! s( EN=zeros(n);
9 ?8 u1 k' o; ]8 ^K=zeros(n);$ Y& P% Z; X1 W3 U" c
L=zeros(n);  %初始化分块矩阵
/ l- H% e. p8 i( ?for i=1:n: r/ \/ g" r, G+ g1 C' x
   for j=1:n3 H- G! t6 t, S* y+ t
       if i==j
* o8 q7 ^7 F0 o3 `           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));* G# G" j- l. o/ U: ?" h8 P  t- g/ J3 {
           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));
% J/ C2 q7 C0 P9 B           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));
& t# o/ s  V* c+ r2 Z$ T           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元
) H' p& Z$ M+ K+ }: u- c+ \       else
) m8 F: n# V7 _2 G6 N: X7 D          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
/ p3 l5 G4 `$ n: b( E6 M3 y# q          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));- S+ ~; G3 y# O
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));
3 D9 v( T% Y0 R2 w9 m% y+ j8 E; Z1 B          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元
1 w# w! y- B6 x2 J7 V$ J. C1 i5 K       end
) B% l2 w9 m6 G' [6 e+ K   end
5 y$ O# d3 w# O) x- G9 Fend
) q7 b& b! E" y( l- [) W    9 n. h) B! P9 x8 u! M. {/ n8 t' C
%----------------------------求雅可比矩阵模块-------------------------------
7 {! M# `" I5 D+ w
7 ], x; Z0 e9 ?) R1 c* pJ=zeros(2*n);  %初始化雅可比矩阵
9 ?- b$ O  L0 F  c8 b; Sfor i=1:n* |0 n' n- c: R8 T
    for j=1:n
% r" x! v; j$ o; S" |/ L        J(i,j)=H(i,j);, h. ?3 }+ g. T7 D' s
        J(i,(j+n))=N(i,j);
* f$ O3 R9 {' w1 E! R        J((i+n),j)=K(i,j);
! m9 D+ f. t1 s- g* M        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵
9 \+ v( ]6 R: e    end; q3 Q. j: e$ o% }
end
/ c" c0 m6 w7 _8 a  p$ U6 U9 I3 N0 A- z8 k; P" s
PV=[];
( v8 s0 Z# Y4 Ffor i=1:n* D, Y" @6 S# |2 c5 ^$ S
    if  B2(i,8)==1
  v7 ~  U3 ?+ c& ]1 }        PV=[PV B2(i,1)];  %记录PV节点的标号5 V1 s* d- T5 A8 q: @) z
    end
' `: _" o' u; O$ |9 _end  " q# `! Z) E6 p9 W* u+ B

$ e- W2 q- p" H0 v' f; U" f0 KJ([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行" v* V0 r" P( L6 {
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列
( J+ C, Q" Y/ w
+ o9 K% p6 @# sJ;  %最终的雅可比矩阵; a% m  |6 H8 R. f' z5 c

. z/ g6 b% H2 K( ^: V* W# w5 f%------------------------解修正方程求各节点电压模块--------------------------
/ ]& C: i. X# K, U& c9 n+ T  
, y0 E5 }" e5 S+ |- B    modify=inv(J)*DPQ;          %各变量的修正量# c7 ~. d  ]# g
    Ddelta=modify([1:t1],:);    %节点电压相角修正量: m; o; t$ [3 V4 |4 @( s/ ~$ u
    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
( K( F3 U' X# o) h% N0 E    : l2 F1 H6 A! A4 f7 U3 Q
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
9 K" L6 ?: [/ y1 v% L+ U    t4=1;
7 r6 k( K! }$ O- d/ O( \    for i=1:n
" h0 D) Y+ j$ @0 j9 u+ e  Z' _        if B2(i,8)~=0$ ^- h# ]# P7 p4 ~% g& A
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角- L# W1 T9 j" {$ M6 T
        t4=t4+1;+ \5 E% q9 @# d& s7 _- l
        end
6 V; L5 i1 J# E* |$ i    end
. h3 R4 p9 ^& q! Z8 b) b0 E) H
2 U9 u. ]9 R1 }8 ]/ h+ @    t5=1;
* K; _9 N0 @! R4 k" N. A    for i=1:n9 p# p: D3 ]- H7 _6 W0 g
        if B2(i,8)==2
9 w# t; y5 Z/ A% @        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值/ D1 r+ Y6 d* m  J; p! u; z8 N$ W+ ^; q
        t5=t5+1;9 U& @7 u2 |* h' ~8 h
        end
2 R, J% Y' R" a: ?8 u/ r% k- ]    end6 m( I* w& J, H2 z: e
    NUM=NUM+1;  %迭代次数
4 c# i5 r" Q7 y3 p    if NUM==1   %最大迭代次数判断2 t1 n! N: G/ R: K# b+ S1 P
        break;  %超过最大迭代次数,跳出8 h3 ?& W  m* ?9 x/ U: x
    end   3 S2 h  _% o2 S# ^; V
end   
  P) p2 N" a$ F2 b# m$ O8 \
9 y& R0 ^" E$ e( W! c%--------------------------------输出模块----------------------------------
( V% ?0 Y3 V, K0 }2 R0 G7 r( v1 G. J6 n$ t9 _# D/ b/ J2 b. g
disp('------------------------------------------------------------------');
, ~4 q7 h$ P1 Q/ H7 cdisp('各节点电压U幅值为(节点从小到大排列):');6 {7 C' n( K, @) r* {$ W/ s
disp(U);        %输出节点电压幅值& S) z% B" Z1 l+ M- `0 r% P' [
disp('------------------------------------------------------------------');
$ f! C; W8 @& J' b, v9 }3 W; r# Gdisp('各节点电压相角为(节点从小到大排列):');
" L( I1 \4 J& c) D6 J& g" e" D( A7 tdisp(delta);    %输出节点电压相角2 `1 |/ G% E! H6 L% C8 ?" R( ]
disp('------------------------------------------------------------------');! W  G$ t0 \/ X+ |. h
disp('迭代次数:');1 x; a. v  d6 f( G0 F: E: x
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 ^1 T; v- [% P- b5 l5 {/ M; W
    / [* J! M9 ]0 a7 e9 m: X' m
    那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社 8 |& v* ]% p9 H8 i
    不过说实话,个人觉得这本书除了用上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 发表
    1 [* @1 ^9 e2 J  H  v孟祥萍 编著 电力系统分析 高等教育出版社 " k: h$ ^+ K! t
    不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    9 S; \* S) Q' Q/ G1 F* r; h* r$ g3 R
    5 g+ r& w+ Y- H7 `" S7 ~. [  N4 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 发表 . b' i; _8 F: V4 V
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢) t# f0 D4 A  J9 A
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com
    + r$ d+ p* z  j# {! r; F! G  un=5;. _# z; l9 E# @- Y, m) s$ k
    ...
    ' q! c/ y8 h. R6 ~8 B# Z
    这个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 发表
    3 a6 f0 Y& o; ^
    ) U5 @2 U2 H7 f. s这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    1 n" O% r, x) @: _4 w6 U6 O& T* c* v  L! E. Q. @. D
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2026-3-16 22:17

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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