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

 找回密码
 立即加入
搜索
查看: 1756|回复: 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。" f3 \# ~  X! @" `5 {( s
我查看runpf.m文件,发现里面有关于无功限制的语句,就是当无功越界时,将PV节点转为PQ节点。那么为什么执行不了呢?求教各位朋友~~谢谢~~
( `+ |! j0 P- z这是runpf.m文件中关于无功越界处理的语句,从234行开始:
; _7 \* [2 V( Z0 G+ @  %% find gens with violated Q constraints8 R4 z5 X1 z9 B5 Q  A9 N- h& ]
            mx = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) > gen(:, QMAX) );
1 x# j) ]( Y' _$ A/ G            mn = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) < gen(:, QMIN) );/ k9 N# u! {- S3 ~
if ~isempty(mx) || ~isempty(mn)  %% we have some Q limit violations
5 R% F, Z; B6 J. g0 ~5 z                if isempty(pv)
8 V9 g5 W% R* W! f" O% U+ B5 H                    if verbose
. g9 r$ m5 T8 P7 z( ^                        if ~isempty(mx) 6 H1 y0 \- o2 ?: U# n5 C
                            fprintf('Gen %d (only one left) exceeds upper Q limit : INFEASIBLE PROBLEM\n', mx);: R9 E. i% e$ R; @- Y
                        else6 t8 d% F6 l# q
                            fprintf('Gen %d (only one left) exceeds lower Q limit : INFEASIBLE PROBLEM\n', mn);
$ ]  R1 b4 z8 I- \' ~                        end
& ^- {6 X' u9 l! z8 f                    end( s& H3 W* h: Q7 n
                    success = 0;9 j- G8 x8 {( L5 h) o$ U8 }
                    break;6 I: A" `! a$ @! R: v5 H- [$ S0 A
                end
7 D0 Y! t, G8 r) S. k# w
7 B6 |2 @! n, L; b1 D. \& j                %% one at a time?
. r( C2 n* O1 N1 ~# d$ d8 c) {. ]                if qlim == 2    %% fix largest violation, ignore the rest
6 g9 i3 D6 X, n: d; j) `                    [junk, k] = max([gen(mx, QG) - gen(mx, QMAX);
) C/ S7 Z5 v% B5 u                                     gen(mn, QMIN) - gen(mn, QG)]);$ Y+ ?! [) u' \! z- y
                    if k > length(mx). p) \' _  m2 f7 g" e1 v
                        mn = mn(k-length(mx));  e) \+ X8 ]% q; F: N
                        mx = [];
9 E: W/ }7 k5 f, x/ W; I( T                    else) G1 H+ f7 T7 i1 `0 \4 p
                        mx = mx(k);
* g* G8 L+ b( A  l1 F, Z                        mn = [];# V* p: R/ B$ s  K4 ?" E
                    end
8 q% L" B5 L4 V                end9 _  Y, `0 _3 m4 c' U

: Q: V$ X1 k0 J) K                if verbose && ~isempty(mx)
0 d% d. @; c" T/ g, U                    fprintf('Gen %d at upper Q limit, converting to PQ bus\n', mx);6 P0 l( y8 w' U& L3 @  [
                end; w% _4 [) ?- J6 `6 I- |; q$ v
                if verbose && ~isempty(mn)' w+ R$ ^8 I- `: u" O$ [# m
                    fprintf('Gen %d at lower Q limit, converting to PQ bus\n', mn);
2 g0 i; @) Z& u0 i9 S3 H3 T                end
- C- x' a( }' [+ g! \% f                % |: A5 @) o! X7 G: c
                %% save corresponding limit values( `/ f3 N* D/ A; ]& J
                fixedQg(mx) = gen(mx, QMAX);! Q  T$ O, X' l4 D) s! s9 G: ?
                fixedQg(mn) = gen(mn, QMIN);7 c/ W7 V8 j7 f0 V; O' D( Y+ C
                mx = [mx;mn];
$ f0 y( [1 t) _; {7 `6 I2 Q               
) R! `# c/ \# m0 o) }! B3 t, S3 K                %% convert to PQ bus
( M9 C& i% R( I0 L' n; ~' o                gen(mx, QG) = fixedQg(mx);      %% set Qg to binding limit
, ~  h8 w  ]3 a5 A, b                gen(mx, GEN_STATUS) = 0;        %% temporarily turn off gen,
2 v" v7 `6 }' H                for i = 1:length(mx)            %% (one at a time, since7 c+ @+ {2 y2 \6 l% m0 Q- d0 E
                    bi = gen(mx(i), GEN_BUS);   %%  they may be at same bus); u! S4 \* G, |$ E% \
                    bus(bi, [PD,QD]) = ...      %% adjust load accordingly,  b& Y  A4 m2 P* L# h- }8 W
                        bus(bi, [PD,QD]) - gen(mx(i), [PG,QG]);
/ c* {9 A1 X  o                end
0 w# B0 G0 _( g5 Q/ p' g                if length(ref) > 1 && any(bus(gen(mx, GEN_BUS), BUS_TYPE) == REF)
! M+ t1 \$ g! I# ~& [. |( R                    error('Sorry, MATPOWER cannot enforce Q limits for slack buses in systems with multiple slacks.');* r5 j) x$ X5 d" x
                end* F3 N( D9 q% m( F+ Y4 c6 ]
                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文件。: E  |* H7 S& C
http://wenku.baidu.com/view/1df27b718e9951e79b89278d.html* T# Z7 w$ Y' i0 Y' a% x' U3 t
楼主看看这个课件。0 L! n* ]! Y- g; I5 d2 C, `+ ?. R% Y
希望对你又帮助~
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

招聘斑竹

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

GMT+8, 2026-4-30 21:02

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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