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

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

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

[复制链接]

该用户从未签到

尚未签到

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

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

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

×
我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢
/ D3 M# a( a) p- @: I(我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com8 n- z, Q3 p. [0 \# F4 C6 Z! H" t
n=5;
( l4 h& p% y+ u% ]; Q, K" F0 }nl=4;
! u( _( `; @- B: u" j# Zswing=1;# A( i( ?7 H! t% `! C* h& e! Q
pr=1e-6;
# I. ?$ ^  J" |" aB1=[1 2 0.12i      0    1    0;%[首节点号 末节点号 支路阻抗 对地导纳(b) 变比(无变压器则为1) 是否有变压器(是为1,否为0]6 P7 m# p# U/ I( `- Q" I
    2 3 0.01+0.12i 0.04 1    0;
0 |! R0 D! Z0 S9 A# S6 f    2 4 0.2i       0    1.05 1;
, J3 N9 k! Q% c5 k/ g: b& r0 T) [    2 5 0.12i      0    1    0]6 q# w$ u0 k5 c8 o6 l5 k( t+ g
B2=[1 1.02 0  0   0  0   0   0; %[节点号 电压幅值 电压相角 发电机有功 发电机无功 负荷有功 负荷无功 节点类型(平衡节点为0,PV节点为1,PQ节点为2)], i( k0 C- r1 U. c% o
    2 0    0  0   0  0   0   2;
1 @$ r' P1 \3 ?" f$ l& C    3 0    0  0   0 0.9 0.6  2;0 h6 R& n3 s# _5 k( M: J5 Z1 N
    4 1.0  0  1.0 0  0   0   1;
* k) U9 l! a/ n! a5 C: k- V    5 0    0  0   0 0.8 0.5  2]# l/ J% w: a2 `
X=[1 0;%[节点号 导纳]! O; O3 K2 W# Q! \
    2 0;
8 D2 K; f- z1 X9 @    3 0.1i;
, H# A, Z7 p+ f9 {    4 0;" l  ^  `% G. H! F+ c5 s6 @' ?
    5 0.1i]
( g* F$ Q1 B) g5 n# N$ u7 |" i' W* DY=zeros(n);  %初始化节点导纳矩阵
, j8 C: a! l* D7 D1 l" m5 lfor i=1:n% L! N  X, o' o4 T2 o
    if X(i,2)~=0;
7 u; ^3 o8 }/ P0 F; F2 ]; K) x        p=X(i,1);
) R7 d7 e1 l% A        Y(p,p)=X(i,2);  %写入节点对地导纳
! o& g& S: P2 N- \5 r    end
& w/ ]; h  {& Z% z! ^$ i& t2 gend6 i0 ~2 U) Y$ w1 i
for i=1:nl
1 i6 d* j6 d- P/ g( B$ P. E    if B1(i,6)==02 l6 v6 d3 x3 N  T6 U6 X7 S
        p=B1(i,1);q=B1(i,2);
2 x- L1 ]3 M: @; ]4 W# {    else p=B1(i,2);q=B1(i,1);  %确定变压器首末节点
/ j/ k  x: u+ a' c0 g) u    end
% ~: Z: B5 X& G; x    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
  f3 G4 ^- D6 R. d" A( z* ?    Y(q,p)=Y(p,q);                                    %互导纳0 N1 b9 Z- G: e1 r- w, |
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;  %首节点自导纳6 u1 y* e" P0 I) y/ z! M- m
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;              %末节点自导纳
3 ]$ c& @6 b# {- ~) l7 t) Yend
% k: Y8 B5 Y2 x5 a3 S  j9 UY2 u( \( E: I) R2 t' ^. t% C3 k
    MAG=abs(Y);PH=angle(Y);  %求节点导纳矩阵各元素的幅值和相角5 f- q9 h# X# [

$ T# ]. E* g! P%--------------------------电压及功率初始化模块------------------------------
7 }" i5 p6 h5 ~+ [: c+ O
* R4 B$ S9 v4 V' |# Q/ R2 ldelta=zeros(1,n);U=zeros(1,n);; J+ `% Z( z4 q' }. R& d( e
for i=1:n
5 _& F8 l8 B0 R* U    delta(i)=B2(i,3);  %节点电压相角初始化
$ B5 y' p/ W* \7 r3 j    U(i)=B2(i,2);      %节点电压幅值初始化. I+ L; J4 D+ H& N" x' a
end; {4 ~. `( L& m' v( D

6 K+ ?  q* S+ p; e. o5 rP=zeros(1,n);Q=zeros(1,n);
. R) Q- C. m1 N6 x1 q4 g) Gfor i=1:n
" n1 K) M/ u% B+ ^7 ?    if B2(i,8)~=0* F$ E* T% F1 a, ]; h
       P(i)=B2(i,4)-B2(i,6);  %节点注入有功功率初始化: p8 j1 D( p4 S3 k, D3 {/ y) f
    end
( C# s/ z/ V4 d* c7 N" F    if B2(i,8)==2
" h1 |3 B- S7 }- a) d% V$ M: P       Q(i)=B2(i,5)-B2(i,7);  %节点注入无功功率初始化1 Z& v( c2 j9 E% R9 d
    end   3 C' i5 K, T0 M+ R- A6 c. i  F# M
end
8 G: n, Y" a) C; `0 n7 N- [- k4 p. H  q; X7 J

& q0 |8 f4 t/ }# ]0 o& C%------------------------求各节点功率不平衡量模块----------------------------
( F/ ?1 ^8 p$ w5 c* B/ G( O2 i& z8 F
0 Y$ t& J- Q2 x% z; T& l* pNUM=0;IT2=1;  %定义循环次数,循环条件标志, J2 W# L! T- {5 A2 i+ t
while IT2~=0
1 G7 }% v6 I( U' H' R. D    IT2=0;t1=1;t2=1;; u, p4 I  L4 i5 N% k0 r
    for i=1:n
8 A, L. N, H0 o2 j4 T           
' D$ R" u: d0 G$ @8 Q            C(i)=0;
; f1 k; y0 l& p( q0 v: X            D(i)=0;5 u/ O0 r3 |6 p
            for j=1:n
9 a. o8 J7 G  ~# M" _) K                C(i)=C(i)+U(i)*(U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i)));  %各节点有功功率
4 u; b: ]% x8 W! n: h5 P8 r                D(i)=D(i)-U(i)*(U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i)));  %各节点无功功率2 H- I7 ]9 l5 `3 u& N  O
            end  k& t- o  |& Z' ^% w  w+ ?4 |
        if  i~=swing" \% E8 R7 Z4 J, ]* h
            DP(t1)=P(i)-C(i);      %PV节点和PQ节点的有功功率失配量( r1 {  S0 H, l! z; q" a
            t1=t1+1;# o9 ?& D7 S1 {
            if  B2(i,8)==2
2 v% G9 t; g" h: d& V4 T; a                DQ(t2)=Q(i)-D(i);  %PQ节点的无功功率失配量7 X, z; `1 \6 U! U" [
                t2=t2+1;
' i9 Q/ t4 j9 h& T6 U3 f+ \            end
  u$ w5 \  Y- x' S' [/ d        end    [; D  w% x+ J* C3 c. B
    end& `5 r# ?( Q" @" N0 u. o1 J
   
, Z! M' [, ]* @5 u    t1=t1-1;t2=t2-1;' Q0 s0 D/ [* g# m
    DPQ=[DP';DQ'];  %功率失配量矩阵/ f( I" i# z1 ]5 p) b7 v
    for i=1:t1+t2
  D. l1 r. D: V+ G        if abs(DPQ(i))>pr  %收敛精度判定
9 O7 \! w3 Q8 a* S1 {) K# Z3 j) N+ C9 d        
4 B6 p- c4 h  \- z7 D  X. i            IT2=IT2+1;     %不符合精度要求,进入下一次迭代7 `! V8 M# O, D6 q" M& P" V( l0 i% g2 W
         end   1 `& b; H; [* k; M6 b( a
    end
; _1 f2 t- E/ o* S  m
; R* q8 g+ l1 c2 l8 X%---------------------------求分块雅可比矩阵模块-----------------------------" I3 S7 {6 \6 A& b+ q% e! B# R! T
% Y0 u7 c$ I+ I% i
H=zeros(n);
5 `# R8 `% r$ FN=zeros(n);
; R* \) E+ T% O) @! E: [K=zeros(n);
7 _% h3 p0 f+ Q' ZL=zeros(n);  %初始化分块矩阵
+ c0 @5 @  p0 E- n8 Pfor i=1:n5 K8 A) t9 _1 E! c/ {, b6 F1 v
   for j=1:n
5 f  u, o6 B3 [& T4 x       if i==j: _4 J+ S( `: h7 S  ]# R7 K
           H(i,i)=-D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));
* P+ Q! Y$ q; K           N(i,i)= C(i)+U(i)^2*MAG(i,i)*cos(PH(i,i));' F& r( o" b5 v+ Z2 V
           K(i,i)= C(i)-U(i)^2*MAG(i,i)*cos(PH(i,i));( r/ c; D! {9 `. F
           L(i,i)= D(i)-U(i)^2*MAG(i,i)*sin(PH(i,i));                 %各n阶分块矩阵对角元  J3 R- b. @5 r6 I" e
       else# I- y$ \  i" k* _+ W. a$ A/ A
          H(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));
8 _4 C! M, W7 o* I          N(i,j)= U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));5 j2 P' Y* Z. W& {- y/ x7 l
          K(i,j)=-U(i)*U(j)*MAG(i,j)*cos(PH(i,j)+delta(j)-delta(i));& X$ C+ M, y5 N$ L' H
          L(i,j)=-U(i)*U(j)*MAG(i,j)*sin(PH(i,j)+delta(j)-delta(i));  %各n阶矩阵非对角元& g( e& j, B, G; A5 u6 @$ z& |% f6 S3 O
       end
1 x  ?! c# I7 n0 [" R, L6 u   end$ N3 h7 @% {2 `) f
end
" F+ X- n3 g$ t( N- @" ]- }+ R    % t4 r; I5 ?1 W5 N3 V+ t; a( z
%----------------------------求雅可比矩阵模块-------------------------------; C. u6 `! Y! J. P* P
+ M$ g* e4 Z; a4 t3 C7 }
J=zeros(2*n);  %初始化雅可比矩阵
* X( B% W  Q+ I* [for i=1:n+ W: e7 I9 Q/ D0 _7 s0 W- L
    for j=1:n
8 I* r5 s! _0 J4 ]        J(i,j)=H(i,j);
6 W1 H' {( [; Z# V        J(i,(j+n))=N(i,j);$ D9 t# b; c! t; ^9 O
        J((i+n),j)=K(i,j);
  x+ v- m4 P- ~) d* v# Z        J((i+n),(j+n))=L(i,j);  %将各个分块矩阵合并为2n阶雅可比矩阵7 M  E9 t. u2 Y4 Z
    end% J3 j; g1 e6 h1 V5 `
end
( Z& L  _4 k2 [# t
7 V+ Q7 d$ G' c  |PV=[];! ]6 d+ h3 o' n2 g9 \
for i=1:n9 W6 Z- \2 L( n3 C- z; m+ K
    if  B2(i,8)==1
' e! u; v2 f% w* D8 v        PV=[PV B2(i,1)];  %记录PV节点的标号
7 L3 r8 T' W. P: m9 k+ O    end4 d1 E( B# g2 _" }# B# o
end  
6 w, K; p! m3 y# i' Y& t6 T5 s* S: K, y+ o# n1 x0 U0 u/ Y
J([PV+n,swing,swing+n],:)=[];  %删除与平衡节点对应的两行,与PV节点对应的一行8 k' Y9 H! `# a8 H5 M6 a
J(:,[PV+n,swing,swing+n])=[];  %删除与平衡节点对应的两列,与PV节点对应的一列2 ^9 U% p9 U. S& r& u  ^  U; g3 g
& G+ g/ k. d) c. n, d
J;  %最终的雅可比矩阵! J' n# x$ t- f0 L/ j0 h! K
) n) L/ v6 v7 Z# s1 X* A' X; v8 {
%------------------------解修正方程求各节点电压模块--------------------------) b2 ~( L3 e9 K1 Z, ^
  ! o) {0 t; n; `* a4 G
    modify=inv(J)*DPQ;          %各变量的修正量' L  ]/ ]$ N, t9 C4 t
    Ddelta=modify([1:t1],:);    %节点电压相角修正量
: k3 w* J3 W2 s4 i$ `, N9 C9 l    DU=modify([t1+1:t1+t2],:);  %节点电压幅值修正量
0 G$ j1 a7 k! u    . r: j$ b) X" d8 L# `
    UR(:,NUM+1)=U(1,:);         %记录各次迭代节点电压值   
' L4 X/ K; y% |( n/ S" b7 P    t4=1;" O7 E6 i+ R* m% D* ]
    for i=1:n$ R2 R3 F* W, R
        if B2(i,8)~=02 ]! A; ~! a. ^# H1 A/ {: W
        delta(1,i)=delta(1,i)+Ddelta(t4,1);  %修正后的节点电压相角
6 ^& S- p' }9 F3 u' F9 L" {        t4=t4+1;5 v* j; e% W# L
        end
" X! F1 \3 u; v    end, c/ y4 R3 Y& D& {. }

; u& H. B  N% E# S! L    t5=1;- R- x7 T5 {9 E- b( j- b  N
    for i=1:n
$ Q5 y+ L  F9 X" D% f3 \        if B2(i,8)==2# _- i# c! Z# E4 l. E' C9 W& c0 e6 }) r
        U(1,i)=U(1,i)+DU(t5,1)*U(1,i);       %修正后的节点电压幅值8 U- Y2 r7 H1 k2 C* W
        t5=t5+1;/ o8 s) e6 K( V1 U' l
        end
5 q. v2 c/ Z) _  Q/ X    end! q9 N" [) b9 l& ]( f9 L' S
    NUM=NUM+1;  %迭代次数
% E% I$ ~) w2 G9 L: d4 ^" ~    if NUM==1   %最大迭代次数判断
" W. E- M; E! T& Z& T. q        break;  %超过最大迭代次数,跳出9 G. \% @2 p5 D$ i6 @! z
    end   
/ p6 K( S+ |2 {; cend   2 w/ L, ?% h5 C' m4 T

6 ?! q( c* B5 Q; A9 d6 D& {" Q%--------------------------------输出模块----------------------------------
7 I8 ?1 s* E$ I( d1 R! X) Y: E" B, }" w& X$ q
disp('------------------------------------------------------------------');
+ y5 D: M, {2 x5 Xdisp('各节点电压U幅值为(节点从小到大排列):');
; C" ?3 J/ Y8 X' o+ l; ?- Tdisp(U);        %输出节点电压幅值
1 U" L2 Q5 O- r$ u8 `disp('------------------------------------------------------------------');
3 f& j& W2 r2 _7 {  F0 j0 Adisp('各节点电压相角为(节点从小到大排列):');
3 T7 t# _4 N" ?7 wdisp(delta);    %输出节点电压相角' L) h4 W7 u* l  T& @  L& D  t
disp('------------------------------------------------------------------');$ G/ C7 k# M* M- d" ]
disp('迭代次数:');
) N* G  J. |1 I3 Q6 ^6 rdisp(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 | 显示全部楼层

    . Z; ?& l2 y  W; E& h
    2 F$ ]! M/ B# n) J% {/ }那本教材?介绍一下撒,技术员同志
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    无聊
    2020-10-14 23:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:3 天
    连续签到:1 天
    发表于 2009-1-14 14:02:34 | 显示全部楼层
    孟祥萍 编著 电力系统分析 高等教育出版社
    - b. ^3 R+ d3 H& l不过说实话,个人觉得这本书除了用上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 发表 + K. O; t3 T. d7 H5 r
    孟祥萍 编著 电力系统分析 高等教育出版社
    ) c& y$ i# {, L; N5 y4 {' W0 q7 r不过说实话,个人觉得这本书除了用上matlab有些特色外,显得粗糙了些

    # n3 N/ l5 C4 I0 o3 a& k8 T6 {! }" o0 ]- d% V3 l
    哦!我知道这本书,呵呵,不过没怎么看,谢谢你的提醒
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 发表   F/ I  O' e7 B) B- T& J
    我对程序严重的感冒 下面是我花了2个通宵修改的程序,可是还是有问题,但是我看不出来~~请高手帮忙解决一下,谢谢/ c0 G0 Q+ X5 d8 |# ]
    (我直接粘贴不知道行不行,如果不行后面有附件)我的邮箱langlang00000@sina.com/ G: l/ |8 A9 O8 x' H' O* r
    n=5;( x! w) R$ y2 V. g0 R* p
    ...

    ' o8 J3 H) U/ l; m0 y0 B" c这个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 A/ y, w/ B( `0 Q6 T" W9 T9 F# f
    0 a# i' x( A, R0 Y, f  k* P6 _3 _9 m
    这个matlab程序写得太初级了,白白浪费了matlab的强大矩阵计算功能。简直成了C语言的样子。

    9 r% i' [" a9 K$ @) ^! b$ b0 B6 b% E% g: }9 k# u" ]/ _* O" n
    有些这样的味道!~!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

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

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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