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

 找回密码
 立即加入
搜索
查看: 2282|回复: 6

[讨论] 潮流计算程序有误差,不知道是哪里出了问题。求大神解救

[复制链接]

该用户从未签到

尚未签到

发表于 2015-6-16 10:44:58 | 显示全部楼层 |阅读模式

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

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

×
楼主热帖
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

该用户从未签到

尚未签到

 楼主| 发表于 2015-6-16 11:17:56 | 显示全部楼层
潮流程序计算结果又误差是什么问题造成的啊?
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    难过
    2021-6-9 13:53
  • 签到天数: 178 天

    连续签到: 1 天

    [LV.7]常住居民III

    累计签到:186 天
    连续签到:1 天
    发表于 2015-6-16 11:33:18 | 显示全部楼层
    你给这么些信息量,,真得靠大神来答了。。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

     楼主| 发表于 2015-6-16 15:02:40 | 显示全部楼层
    回复 3# 玉门关山
    . K! F& l" H* ]3 e: @/ G; N! M- M$ p# o2 T3 A1 {$ }

    . L/ X6 ^4 K3 H5 @, X    因为我不知道问题出在哪里了。。
    ; e! y& D6 q+ ido ( j* m9 w- {' I! H& O
            {
    ) O+ x: F  i8 d, f, F                //求解不平衡量7 \* ?4 @, Q7 u) L/ F# P# e4 F
                    for(i=0;i<nB;i++)5 a% O. ?8 F2 ?  A4 w9 D
                    {
    7 @" a0 i  g* Q+ c7 w                        if(sB.Type!=2)//假如不是平衡节点2 V9 H" t, a2 L# ^# Z# H
                            {        
    3 l: q( P  R% r# s$ q                                DP=sB.GenP-sB.LoadP;. S; c  v# ]  U' u
                                    DQ=sB.GenQ-sB.LoadQ;
    - g+ D; s" N# f3 h# s- k$ m- \                               
    1 ^9 D3 A; Y  x  k# |: @$ V                                for(j=0;j<nB;j++)
    * R. \. b- V# b0 a& c                                {
    0 R6 Z$ E: n+ m2 F! j0 J* Y                                        A=sB.Phase-sB[j].Phase;
    3 ~% |, m# T/ a. ?/ @                                        DP-=sB.Volt*(sB[j].Volt*(g[j]*cos(A)+b[j]*sin(A)));
    5 C5 N* r  P- L, o$ y1 N) m* X$ h                                       
    6 N  K3 P" M+ o1 n8 |1 d# O                                        if(sB.Type==0)//PQ节点
    4 k. V# N) I+ z; k7 ~                                                DQ-=sB.Volt*(sB[j].Volt*(g[j]*sin(A)-b[j]*cos(A)));
    ( T! [" j6 g  M0 {                               
    , U4 l& q/ t6 q7 P                                        else if(sB.Type==1)//PV节点: [% s$ I1 P8 g9 ^( ?
                                                    DQ=0;% Q% C# x: W. K4 F% I: V9 x2 E2 N
                                    }4 X/ j8 d) N3 C8 r% ^# v
                            }
    1 O$ k4 \' J5 Z* u7 ^                        else if(sB.Type==2)//平衡节点
    " t- u" L" K: j3 Y4 }                                DP=DQ=0;2 T2 H' w" M" h2 i9 B- @) H
                    }
      E( ?6 y' i7 ~9 a" \                //for(i=0;i<nB;i++)
    3 g; G( S* Q! N6 ]0 F4 p                //         printf("DP[%d]===%f,DQ[%d]===%f\n",i,DP,i,DQ);7 \. L, n) ?: A. A7 l, ]1 g
      |3 B* H6 ^/ D7 M) a7 Q6 S
                //求解修正方程
    0 `- s/ b6 u7 a                for(i=0;i<nB-1;i++)
    ' n# `8 K/ E& h* x* {) ^                    AA1=DP[i+1]/sB[i+1].Volt;
      ^% m3 E, F& z/ e" M                for(i=0;i<nB-1-count_PVnode;i++)& Y1 v- F$ _! h5 y: H' }
                            AA2=DQ[i+1+count_PVnode]/sB[i+1+count_PVnode].Volt;
    $ Z$ U+ y+ f, }: I: a, Q4 a( w$ k3 g- ]                calculate_gaosi((double **)b1,BB1,AA1,NBUS-1);//AA是不平衡量,BB是解向量- I# |* q4 g# B; o% t6 T# E
                    calculate_gaosi((double **)b2,BB2,AA2,NBUS-1);
    ; U% {. P$ l2 Y( {4 A$ Z( z. W3 ?  ?, I) t5 T; i$ v4 c( R. O
                    max1=fabs(AA1[0]);" r+ Z3 ^( n5 h# r) [! ~1 x# X
                    for(i=1;i<nB-1;i++)
    ' E  D$ N, B/ b+ E" r                        if(max1<fabs(AA1))       
    : [" }/ L9 l) r. }' w9 S                                max1=fabs(AA1);
    3 C0 Y$ h: ?7 x/ u                        max2=fabs(AA2[0]);
    ( z+ E4 b" p+ H  h$ u                        for(i=1;i<nB-1-count_PVnode;i++)6 U; M  x2 z. W/ T( y
                                    if(max2<fabs(AA2))        ( M" t6 R! M# I  ^3 B; w3 k3 _" m
                                    max2=fabs(AA2);& U& {4 Y  q& p' T+ m6 G( _
                    for(i=0;i<nB-1;i++)5 R. ^7 d! t9 I; u0 O: t* g
                            sB[i+1].Phase+=BB1/sB.Volt;
    1 u6 P: N. e1 H* X' W                for(i=0;i<nB-1-count_PVnode;i++)
    9 z+ S3 Q" q& E2 E                        sB[i+1+count_PVnode].Volt+=BB2;/ ]  d: K2 p4 n/ f" ^: C
                    for(i=0;i<nB;i++)
    8 u) s& i2 `" d) Z8 Z9 n3 n                {
    % b7 c2 U* [' N( E9 L* x, X. S& }                        printf("sB[%d].Volt=%f,sB[%d].Phase=%f\n",i,sB.Volt,i,sB.Phase*180/PI);
    0 P& Y6 U3 ?& f7 y0 b5 H                        : n9 k0 E% \* \, N6 x+ n) ?
                    }. ]- h6 D, Y% ~" G+ Z' E' ?' q
                    printf("\n");
    ; m! R0 c2 w& B' y4 n" R' M* K                        ci++;/ h0 L) M" b# s
            }+ o  r: d6 T3 Y$ u4 q7 @
            while(fabs(max1)>0.00001&&fabs(max2)>0.00001&&ci<40);
    8 B/ g% O# j  @, X4 @这是我求潮流的程序,用的PQ分解法,最后得到的结果是只能精确到小数点后第二位,第三位就不对了。
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2015-6-16 19:38:59 | 显示全部楼层
    别急躁,好好找找一定能好到原因。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    开心
    2019-7-21 09:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:1 天
    连续签到:1 天
    发表于 2015-10-4 18:59:11 | 显示全部楼层
    回复 2# lllmos 2 r2 \9 \( ]/ n. p7 |6 ?3 e
    - h, A! K/ i7 n/ S, I; u7 J/ H
    ! D* J& B2 ^0 X: T5 ]
       跟你的收敛条件设置有关系啊。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    开心
    2019-7-21 09:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:1 天
    连续签到:1 天
    发表于 2015-10-4 19:00:33 | 显示全部楼层
    回复 4# lllmos   @% ^4 O% y* h' a2 P+ o9 ~& D
    : m8 K3 i5 n$ _6 k; v' P
    建议楼主换几个软件试试,SPS,PSSE,PowerSystemWorld,特别是PSSE算潮流比较专业。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

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

    GMT+8, 2024-5-6 19:12

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

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