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

 找回密码
 立即加入
搜索
查看: 1684|回复: 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。1 j$ q$ ?: ^9 Y/ @$ T) z
我查看runpf.m文件,发现里面有关于无功限制的语句,就是当无功越界时,将PV节点转为PQ节点。那么为什么执行不了呢?求教各位朋友~~谢谢~~
+ I( ]1 A$ Z+ u! z) w  s; [这是runpf.m文件中关于无功越界处理的语句,从234行开始:
2 g) T, q1 ~, \* i' {: j. c  %% find gens with violated Q constraints
7 e6 i+ T% s1 g6 w/ [            mx = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) > gen(:, QMAX) );
. q3 c4 L9 Q1 ~* h( G: L            mn = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) < gen(:, QMIN) );
, Y/ t! H# T  s5 \if ~isempty(mx) || ~isempty(mn)  %% we have some Q limit violations
* s/ m/ V4 w: Y/ [2 J                if isempty(pv)8 U. M1 d  P% f
                    if verbose
3 n, K' p0 ^0 u! [. r                        if ~isempty(mx) : x$ R/ O5 a2 ~9 N  N
                            fprintf('Gen %d (only one left) exceeds upper Q limit : INFEASIBLE PROBLEM\n', mx);" T- O8 `$ ~" C& u! |9 L
                        else3 p: X3 w$ \6 g' d! z1 p+ f) k
                            fprintf('Gen %d (only one left) exceeds lower Q limit : INFEASIBLE PROBLEM\n', mn);+ o$ Y+ q& l( }2 ]5 B* g% f
                        end/ R. t* P; A* P7 A: [* J) ?
                    end/ i. E: B# x- R* ^) y% U, m
                    success = 0;0 C; a: t4 V' z& B, |) ~
                    break;0 e3 d$ l6 g! P; e0 f& q
                end! M2 v6 N2 v; b: m6 X; U0 ?; M

7 K% f! L+ k: U, R2 A' v                %% one at a time?
$ B% H7 V: N: ?% N; w                if qlim == 2    %% fix largest violation, ignore the rest
$ y  ~# V% C- M% }+ ~                    [junk, k] = max([gen(mx, QG) - gen(mx, QMAX);
2 m4 a3 A4 C; _1 l' X                                     gen(mn, QMIN) - gen(mn, QG)]);5 x( i- v! N5 O
                    if k > length(mx)
7 Z9 M" }9 H( G) v4 J. h, G                        mn = mn(k-length(mx));
, \) y7 D' i* s6 @$ \+ O$ h                        mx = [];
9 |" }& i. f1 o5 c( \+ g& U                    else% t/ o4 {5 a4 @1 E* J
                        mx = mx(k);4 ?) K* l, I  S! i% y) [
                        mn = [];
. l3 l9 z, q0 b2 z- y) Z                    end
& l- E$ ?8 N1 r7 R                end; f- r! ]+ s) ?/ s

! p6 O& L" M. ~                if verbose && ~isempty(mx)/ l# [# K9 c0 C! K. x3 L
                    fprintf('Gen %d at upper Q limit, converting to PQ bus\n', mx);6 ?  P; `$ R/ f* r5 g2 @+ [
                end7 h3 K$ E2 K2 |  B% P1 m! b
                if verbose && ~isempty(mn)
- z( n5 d" P" x* A8 K1 @; s0 r0 K0 B                    fprintf('Gen %d at lower Q limit, converting to PQ bus\n', mn);3 K  X% C( J4 {$ R! i
                end
( f/ R( w3 e; ?" u                & i7 H% Y6 }4 v8 K+ O
                %% save corresponding limit values0 {/ O& S& y- ~5 U* ?
                fixedQg(mx) = gen(mx, QMAX);
7 q3 V" Y4 n! O8 @- e                fixedQg(mn) = gen(mn, QMIN);
: l; i8 u  d3 [  Z* K7 M                mx = [mx;mn];0 Y0 M& P- v1 d) E  X
               
6 O% l, P7 p% W* k4 M6 V                %% convert to PQ bus) P: p6 A$ {  Z
                gen(mx, QG) = fixedQg(mx);      %% set Qg to binding limit
( @+ y' J* _8 S! ]! c0 w                gen(mx, GEN_STATUS) = 0;        %% temporarily turn off gen,# k' Y' l4 _0 z' r
                for i = 1:length(mx)            %% (one at a time, since
% `2 |4 X- g9 P                    bi = gen(mx(i), GEN_BUS);   %%  they may be at same bus)3 H$ J, d1 r7 O$ r5 y9 J& B( f$ N% Y# r
                    bus(bi, [PD,QD]) = ...      %% adjust load accordingly,8 S* I  i$ z8 f
                        bus(bi, [PD,QD]) - gen(mx(i), [PG,QG]);
& \$ f) k! h* x                end
. T# ~) m! _  B0 B# n6 N                if length(ref) > 1 && any(bus(gen(mx, GEN_BUS), BUS_TYPE) == REF)
7 l, F4 Y8 R9 ?' T1 h- w4 n- `' s4 H                    error('Sorry, MATPOWER cannot enforce Q limits for slack buses in systems with multiple slacks.');; N1 c, l- r# |' s( I( f  T# L* Y
                end' [  [& [4 p! l; h. m. [! Q
                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 U" e; r& V# t+ X! Y' @" P+ ]http://wenku.baidu.com/view/1df27b718e9951e79b89278d.html1 j* D! I& u- `! A: p
楼主看看这个课件。9 U$ K# [) S# N. |- I8 P& |( L
希望对你又帮助~
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

招聘斑竹

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

GMT+8, 2025-12-19 17:31

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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