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

 找回密码
 立即加入
搜索
查看: 1830|回复: 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。
8 G1 R& f, a+ u9 u. G( a! v我查看runpf.m文件,发现里面有关于无功限制的语句,就是当无功越界时,将PV节点转为PQ节点。那么为什么执行不了呢?求教各位朋友~~谢谢~~
, K( A9 h# j. w& z. J( p这是runpf.m文件中关于无功越界处理的语句,从234行开始:, W3 y3 u' u2 ~# e0 {/ L9 T9 y3 [
  %% find gens with violated Q constraints
8 R3 m5 F6 p5 Z2 T0 D( K            mx = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) > gen(:, QMAX) );
# i! b/ J2 u/ `0 [1 |  z" B            mn = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) < gen(:, QMIN) );
% x% e+ t) n4 u* n  j4 Vif ~isempty(mx) || ~isempty(mn)  %% we have some Q limit violations
( s& S' g5 F/ t! x- q& S9 F/ `                if isempty(pv)( z8 m+ _! U8 z7 f
                    if verbose" E- H7 f7 ?1 B. A0 D! k1 T- C
                        if ~isempty(mx)
, q6 h% U) y8 L                            fprintf('Gen %d (only one left) exceeds upper Q limit : INFEASIBLE PROBLEM\n', mx);7 H. O6 W1 J6 Z2 u- l& Y/ E
                        else
# ?$ C0 \- E. {1 q; W: D; b                            fprintf('Gen %d (only one left) exceeds lower Q limit : INFEASIBLE PROBLEM\n', mn);
7 y3 Z" K5 `) S! ?% A* m% t                        end$ ]9 L/ y: {' S. J0 a' b; E8 b% @0 l
                    end# s  C4 t0 q2 A
                    success = 0;* L- T7 v* k3 m" r7 Y1 `' H
                    break;1 Q6 c. H6 T" W5 _, ~
                end! v8 {/ b7 Y6 {: t

* ^8 u; l4 h2 Q  B8 r                %% one at a time?
! O5 j: T4 D' i8 X7 |& o. \6 c' S                if qlim == 2    %% fix largest violation, ignore the rest4 {8 l) J3 T8 r1 K* X' V5 r
                    [junk, k] = max([gen(mx, QG) - gen(mx, QMAX);, W1 n" z0 E- y7 k& \
                                     gen(mn, QMIN) - gen(mn, QG)]);7 I* @1 E5 `: ~6 @
                    if k > length(mx)
( [; m( X, W/ j3 Z/ }4 U- T5 L) A                        mn = mn(k-length(mx));
4 G$ H' x# D  ?7 w  j! N                        mx = [];
# S4 e- S9 ], S% l2 O                    else
  m6 f7 V1 M8 _( O/ g& Y                        mx = mx(k);! O. R1 w( b) T" E0 V
                        mn = [];
  L' s! G2 @) E6 B2 E1 p! Z                    end5 m( D0 j& X+ F4 Y# P0 n9 @. r4 I2 F
                end" ~9 d5 I& z0 p9 x7 Q0 `: f; }
5 T4 r. ^! o0 [: U0 t
                if verbose && ~isempty(mx)
7 ~: L) E( A! y. a; T3 E. J                    fprintf('Gen %d at upper Q limit, converting to PQ bus\n', mx);5 F/ g6 h: s& `+ v
                end
5 ~2 z: \3 L) L9 F+ e" q! f                if verbose && ~isempty(mn)* p4 B3 O7 u$ e
                    fprintf('Gen %d at lower Q limit, converting to PQ bus\n', mn);
' q! e+ g( l# w" h3 i, o9 ?' x                end
" z2 [0 j8 h8 @4 {5 e( w; f               
8 s+ n7 F2 ^  `" F! j. T                %% save corresponding limit values6 P; N) d* r6 |: D
                fixedQg(mx) = gen(mx, QMAX);. _' G2 H9 w- J0 R+ h& n
                fixedQg(mn) = gen(mn, QMIN);
, f; c9 K9 [# H4 u+ F; ]7 V                mx = [mx;mn];
" z) Q/ \0 l3 m% v                + K* W1 i: Y3 q0 x! Y" i7 {3 H
                %% convert to PQ bus
( i: e8 E7 o; U' ~4 q& Y0 z: F                gen(mx, QG) = fixedQg(mx);      %% set Qg to binding limit4 t: l- q5 X$ Q5 p! |* l  L) F
                gen(mx, GEN_STATUS) = 0;        %% temporarily turn off gen,
! l5 `  L- `* n. d# E                for i = 1:length(mx)            %% (one at a time, since: W9 b, X) \- A; O
                    bi = gen(mx(i), GEN_BUS);   %%  they may be at same bus)# V/ h2 ]" }5 E" b  t( w
                    bus(bi, [PD,QD]) = ...      %% adjust load accordingly,6 ]0 Y+ U2 P9 y
                        bus(bi, [PD,QD]) - gen(mx(i), [PG,QG]);. r; T+ W" v$ Q; B
                end
+ g9 c4 G: K5 P$ @                if length(ref) > 1 && any(bus(gen(mx, GEN_BUS), BUS_TYPE) == REF)5 q6 {# f0 j  q
                    error('Sorry, MATPOWER cannot enforce Q limits for slack buses in systems with multiple slacks.');
+ j7 Z) P3 k3 h0 z5 H                end
; U6 T' s3 x: E+ [: c' d                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文件。
% Z+ T) G; K2 J" Phttp://wenku.baidu.com/view/1df27b718e9951e79b89278d.html/ d0 G8 X: X' w
楼主看看这个课件。' A$ o) P2 x% [9 P
希望对你又帮助~
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

招聘斑竹

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

GMT+8, 2026-10-24 19:00

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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