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

 找回密码
 立即加入
搜索
查看: 1731|回复: 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。' C4 p, _3 p- {+ a3 m! p) z
我查看runpf.m文件,发现里面有关于无功限制的语句,就是当无功越界时,将PV节点转为PQ节点。那么为什么执行不了呢?求教各位朋友~~谢谢~~3 X. ^8 W& V8 o- B, |
这是runpf.m文件中关于无功越界处理的语句,从234行开始:
# g* H2 U& \: d  %% find gens with violated Q constraints
2 _+ P' A8 w9 l8 [# ^  F+ A7 R            mx = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) > gen(:, QMAX) );$ C; Q0 T+ c2 }5 r4 T
            mn = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) < gen(:, QMIN) );% G9 O! l, `" [# h' d3 @
if ~isempty(mx) || ~isempty(mn)  %% we have some Q limit violations
" {& p+ R& o' T$ F# H, [+ `/ x                if isempty(pv)( B# D4 j5 t- K/ M* c9 D! x
                    if verbose# D2 l; R9 V9 y* ?9 K  X! L3 \% M
                        if ~isempty(mx) 5 W- B4 F% [  a1 l+ y
                            fprintf('Gen %d (only one left) exceeds upper Q limit : INFEASIBLE PROBLEM\n', mx);6 b5 u4 r/ \$ D) f8 m
                        else
2 M$ c' J' E7 N" ~1 n8 p                            fprintf('Gen %d (only one left) exceeds lower Q limit : INFEASIBLE PROBLEM\n', mn);& T1 b) c+ d3 a7 N7 A4 p) G) [
                        end% U, }0 c) X5 E* a( O
                    end' z5 A, o/ C4 w8 k: w- _
                    success = 0;  f& w% J8 m9 E% L# H! O
                    break;
) `: Y- g8 h. R: I- A5 c! l6 q                end
+ @  f" i- ]5 E# x
, \( @% B" H7 z                %% one at a time?
3 P- h2 ~8 L4 r2 a& Q                if qlim == 2    %% fix largest violation, ignore the rest
" k* R' L7 S  z% x                    [junk, k] = max([gen(mx, QG) - gen(mx, QMAX);
1 ]* I" m5 X/ m; j, d7 K; \% L* W                                     gen(mn, QMIN) - gen(mn, QG)]);
) B1 p( W7 J9 Z, U9 b                    if k > length(mx)
/ d! ~$ z; u* u7 m4 @                        mn = mn(k-length(mx));
% ]2 I) k& s6 V; T' E                        mx = [];
7 g; k9 t+ f+ E) M4 T9 [: B& a                    else1 J* a5 M  J" `1 F' L: [
                        mx = mx(k);
2 ?2 F* M3 P6 f' r3 Y                        mn = [];" X  ^- r6 O. y* Y  C  I
                    end9 A8 e) r4 |9 B" a1 }
                end
7 [$ t, }! ^9 }, |8 [- P! m$ D! o
                if verbose && ~isempty(mx)( V7 W+ q% B) @4 B
                    fprintf('Gen %d at upper Q limit, converting to PQ bus\n', mx);0 h; t' ?1 V" j" L
                end* L8 _( |  x2 o6 F
                if verbose && ~isempty(mn)
5 G. Y1 |- ^0 @, P                    fprintf('Gen %d at lower Q limit, converting to PQ bus\n', mn);; S" c/ s9 E: P' z3 U, ?
                end
6 n& z& e" y! e. A+ L                / t$ Y- A0 E5 M: h1 p
                %% save corresponding limit values" {. g2 C: c* ?; `& ^
                fixedQg(mx) = gen(mx, QMAX);
( o0 k+ K& ^5 z0 T1 g                fixedQg(mn) = gen(mn, QMIN);
  b" H2 O; j( @4 H4 x! H                mx = [mx;mn];" a5 l2 t  r' x$ W) x
                ! D! |+ p' P7 g3 m! z
                %% convert to PQ bus  K5 `3 C6 }( b& v* v
                gen(mx, QG) = fixedQg(mx);      %% set Qg to binding limit0 q+ B% l  H: ]; u) t5 N) @. g
                gen(mx, GEN_STATUS) = 0;        %% temporarily turn off gen,
0 e4 v! T) ^& d) ~                for i = 1:length(mx)            %% (one at a time, since! K$ p( e, ~. [# v4 t
                    bi = gen(mx(i), GEN_BUS);   %%  they may be at same bus)3 X+ s: z, l2 N! T  a1 R# A
                    bus(bi, [PD,QD]) = ...      %% adjust load accordingly,
  m, F7 p& U8 F" B                        bus(bi, [PD,QD]) - gen(mx(i), [PG,QG]);
; {6 |4 z* Y' {; H  C9 ~                end. _  l2 z; \- _
                if length(ref) > 1 && any(bus(gen(mx, GEN_BUS), BUS_TYPE) == REF)
  E' L$ N& _: m7 }5 U: Z                    error('Sorry, MATPOWER cannot enforce Q limits for slack buses in systems with multiple slacks.');
! R% j* L2 K) w# O! x                end
* P7 J' l* k5 y7 v" {                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文件。5 Y! Z3 G3 ~) i7 F$ ?
http://wenku.baidu.com/view/1df27b718e9951e79b89278d.html& V' b9 s& M" E# H0 k. Z& N! X! b
楼主看看这个课件。
# U3 _4 w, p! v6 `希望对你又帮助~
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

招聘斑竹

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

GMT+8, 2026-3-19 09:33

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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