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

 找回密码
 立即加入
搜索
查看: 1714|回复: 1

[讨论] 求助!!matpower算潮流PV节点转换问题

[复制链接]

该用户从未签到

尚未签到

发表于 2013-1-13 00:20:21 | 显示全部楼层 |阅读模式

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

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

×
现在用matpower工具算潮流,发现一个问题。执行runpf('case××')算得某一个PV节点的无功出力是24.3,然后我修改generator data数据中的Qmax和Qmin,把Qmax改成了24,然后重新用runpf函数来算,可是得到最后的结果,这个PV节点的无功出力还是24.3。
) E# J8 E6 N, ^# t我查看runpf.m文件,发现里面有关于无功限制的语句,就是当无功越界时,将PV节点转为PQ节点。那么为什么执行不了呢?求教各位朋友~~谢谢~~9 G( _: ?' o% x# H0 F4 J8 H0 b
这是runpf.m文件中关于无功越界处理的语句,从234行开始:
0 Y+ c* @2 h; D/ q, `+ O$ b  %% find gens with violated Q constraints
9 ~. `2 S- E/ ~5 S            mx = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) > gen(:, QMAX) );
8 F4 t9 x( z% G+ V            mn = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) < gen(:, QMIN) );
9 i* y- ]% g1 t: bif ~isempty(mx) || ~isempty(mn)  %% we have some Q limit violations& H. _; u5 w7 O, |
                if isempty(pv); ^7 S5 P- ?) U% L) |+ B8 M( ~
                    if verbose
9 t+ ^( c: g9 g( u, H7 m                        if ~isempty(mx) , L1 d5 A5 K1 g
                            fprintf('Gen %d (only one left) exceeds upper Q limit : INFEASIBLE PROBLEM\n', mx);, [1 O# _' ^5 X
                        else
: a4 e9 ]- J3 L, d: d. L9 i' m2 O% S! m                            fprintf('Gen %d (only one left) exceeds lower Q limit : INFEASIBLE PROBLEM\n', mn);1 m" G1 v1 w* Z( m3 ^. s
                        end
# B! Q( A* u8 e, e1 T. R$ ]- k                    end* q: s/ }8 h6 k! M& V1 J
                    success = 0;& I1 ?5 C3 E9 I& l# J+ x& d& ~
                    break;
/ J2 U7 u7 ]1 j/ A% d2 \3 P                end9 }9 F- N1 y4 f8 P
* a& s0 {, U- S1 f( N" d7 V
                %% one at a time?6 ?+ g  v: s) P# P9 F" G
                if qlim == 2    %% fix largest violation, ignore the rest) L( E3 |6 c- k( C" N4 \
                    [junk, k] = max([gen(mx, QG) - gen(mx, QMAX);. Z& j; z# ?  x) F
                                     gen(mn, QMIN) - gen(mn, QG)]);
) [: C( c$ o2 L7 w" S2 K8 z5 j% L7 b                    if k > length(mx)
0 H1 M6 q! G& v  O; ?. I                        mn = mn(k-length(mx));  A1 |, {) G& ?8 y
                        mx = [];
) O/ j# p4 R9 ?) E                    else
. g  `5 ]) D" T                        mx = mx(k);
& s' H  l/ ~( R" l; T                        mn = [];0 K. W5 _( \. v
                    end/ S/ Y5 [( s6 X: g- [$ {5 n" t: u0 }
                end
; N. v$ \. z4 ~3 ?. E0 g# C( F( t) X5 B8 P
                if verbose && ~isempty(mx)
% d6 u* K+ \- A8 T% H0 H                    fprintf('Gen %d at upper Q limit, converting to PQ bus\n', mx);
0 |2 Y3 o5 z, S9 q                end/ C6 X" N- k6 m$ H& e0 f0 j
                if verbose && ~isempty(mn)& E1 r; c  S( q4 b& q1 ~
                    fprintf('Gen %d at lower Q limit, converting to PQ bus\n', mn);/ B7 s* S* t) ]9 w0 E, _9 {
                end
( u# D- l: Z% V                3 ^0 c5 J$ L6 f& C
                %% save corresponding limit values
) Z4 T* Y3 @* t& i6 Y- V                fixedQg(mx) = gen(mx, QMAX);
! H6 t0 i; i( k& ]                fixedQg(mn) = gen(mn, QMIN);6 c9 t) G% p% ~" v7 h2 B
                mx = [mx;mn];
) ^; C( y1 q7 B) |( X3 R/ o                8 ~6 I6 f+ ~; \: d
                %% convert to PQ bus2 g6 P( v$ r0 z) Y+ I, K; H
                gen(mx, QG) = fixedQg(mx);      %% set Qg to binding limit
5 n- v% e5 X) D& \' P                gen(mx, GEN_STATUS) = 0;        %% temporarily turn off gen,4 \/ r8 A2 S5 _( X7 I
                for i = 1:length(mx)            %% (one at a time, since
2 u; m6 _% V. R' X& [                    bi = gen(mx(i), GEN_BUS);   %%  they may be at same bus)9 N4 @& J( a  s  s0 O! ?
                    bus(bi, [PD,QD]) = ...      %% adjust load accordingly,3 v5 U: H0 j7 N  y5 D' k
                        bus(bi, [PD,QD]) - gen(mx(i), [PG,QG]);) _1 D; N" q* y7 M- R
                end
/ _; f3 C- j4 k" {/ n& a8 K                if length(ref) > 1 && any(bus(gen(mx, GEN_BUS), BUS_TYPE) == REF)
) O$ |$ Y: S# L                    error('Sorry, MATPOWER cannot enforce Q limits for slack buses in systems with multiple slacks.');
" x% x5 y8 L4 X* K3 l                end; \' H# l1 p5 d2 ~& S
                bus(gen(mx, GEN_BUS), BUS_TYPE) = PQ;   %% & set bus type to PQ
"真诚赞赏,手留余香"
还没有人打赏,支持一下
楼主热帖
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

该用户从未签到

尚未签到

发表于 2013-3-5 17:02:24 | 显示全部楼层
要想无功限制,必须设置mpoption中的qlim值,当qlim为1时才能无功限制,默认值为0,不进行无功限制。楼主可以看看mpoption.m文件。
7 x3 ^8 }1 a+ e6 x  ~http://wenku.baidu.com/view/1df27b718e9951e79b89278d.html$ ?$ G& Y$ ^% b/ h3 @
楼主看看这个课件。) T9 i& O; j2 h3 J
希望对你又帮助~
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

招聘斑竹

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

GMT+8, 2026-2-23 02:10

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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