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

 找回密码
 立即加入
搜索
查看: 1755|回复: 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。4 f( J, b' _& I2 E0 |6 `1 _
我查看runpf.m文件,发现里面有关于无功限制的语句,就是当无功越界时,将PV节点转为PQ节点。那么为什么执行不了呢?求教各位朋友~~谢谢~~$ o- l. v2 y) X$ v( l4 ~7 ]; {9 G
这是runpf.m文件中关于无功越界处理的语句,从234行开始:
7 x7 Z2 t& N9 w8 d  %% find gens with violated Q constraints
" U) U( g- A9 a            mx = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) > gen(:, QMAX) );
( I  `4 X7 r- o( E% {            mn = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) < gen(:, QMIN) );
4 E/ H' U$ B) Y* J1 G2 fif ~isempty(mx) || ~isempty(mn)  %% we have some Q limit violations- {  J0 H! p. S9 I8 g, E
                if isempty(pv)
* b. Q3 ]0 D% z$ l( M; [5 h7 T                    if verbose
0 w+ P0 S/ c! G* a                        if ~isempty(mx)
- y7 l1 ~& e' i1 q# s  K% d                            fprintf('Gen %d (only one left) exceeds upper Q limit : INFEASIBLE PROBLEM\n', mx);
; @7 r: w4 x2 L7 r8 D6 H                        else
4 `$ Q! ]) A) B( H' |3 ]6 L                            fprintf('Gen %d (only one left) exceeds lower Q limit : INFEASIBLE PROBLEM\n', mn);: b9 Y8 G# W- F/ I+ }. u9 z' I
                        end8 E3 L. d" Y1 F6 C( |  n$ b2 n4 a
                    end
2 e6 E" n; h- y4 k, ?( t                    success = 0;
, Q  z& W3 {9 f7 \2 |# o! Z                    break;
- r8 @) \1 w7 \" Y) M. f                end9 a/ A2 }7 |/ c# Q) b9 T) u

2 N1 \8 D2 j$ f; l4 |                %% one at a time?
) I' \4 w: E8 o8 f8 o                if qlim == 2    %% fix largest violation, ignore the rest/ i& v& ]  T( |: s* N" F
                    [junk, k] = max([gen(mx, QG) - gen(mx, QMAX);4 M+ A+ e& {% m& {8 m/ T/ o; o1 |! g
                                     gen(mn, QMIN) - gen(mn, QG)]);$ R& U, o8 g$ \6 H
                    if k > length(mx)! }6 p6 Y& g, b& n
                        mn = mn(k-length(mx));- p+ U5 I4 D+ G& Q+ f: V
                        mx = [];
8 {6 L5 u% H9 Q9 J                    else5 K& ]( n$ R) x& k
                        mx = mx(k);
6 J1 k" l# X' R1 `( O) B                        mn = [];$ z! B8 }9 t1 Q6 c6 S3 p+ z
                    end# E  V& P( L  x& H* b
                end# R: M% F. |4 W; C5 p" T
) N! J$ [7 p, H3 |% F( O  F4 [
                if verbose && ~isempty(mx)6 N! I$ T" r* I5 j# v3 z
                    fprintf('Gen %d at upper Q limit, converting to PQ bus\n', mx);
, |2 {* Q8 W; e. r0 k' F& v( u                end  [0 A3 g8 x& x" Q9 _( N3 P
                if verbose && ~isempty(mn)
2 T! D( ^/ N4 N# O/ H9 a                    fprintf('Gen %d at lower Q limit, converting to PQ bus\n', mn);
  g5 `/ l7 d: }0 d0 D+ d                end
$ _! u9 E9 T2 G7 f               
2 H, i1 }# G4 c+ j                %% save corresponding limit values# E( h% Y. F) `
                fixedQg(mx) = gen(mx, QMAX);
3 Z1 h) S6 t" P& P' {) i                fixedQg(mn) = gen(mn, QMIN);
% s7 s% j, Z4 P5 j                mx = [mx;mn];+ i8 }7 k2 J2 g+ o( P
               
6 i0 V9 A4 {* _/ r' Z                %% convert to PQ bus7 p- h  D- u7 Z% ~) q0 D4 a+ f2 F+ v
                gen(mx, QG) = fixedQg(mx);      %% set Qg to binding limit+ @) n8 o) }  A2 ]; J/ C: I  S
                gen(mx, GEN_STATUS) = 0;        %% temporarily turn off gen," Y, Q% A; P, ^# t1 ?) \0 G3 |$ W
                for i = 1:length(mx)            %% (one at a time, since3 I5 \+ d" A# O  S" a+ Y/ q
                    bi = gen(mx(i), GEN_BUS);   %%  they may be at same bus)
6 o; \- Y9 O% C3 s                    bus(bi, [PD,QD]) = ...      %% adjust load accordingly,
3 d( a5 Q2 ~4 G2 H; X' Y( W                        bus(bi, [PD,QD]) - gen(mx(i), [PG,QG]);
0 l- m( T" F/ y. ^0 W                end; b! Z* _; L* I
                if length(ref) > 1 && any(bus(gen(mx, GEN_BUS), BUS_TYPE) == REF)
/ @3 y( B* g1 ?                    error('Sorry, MATPOWER cannot enforce Q limits for slack buses in systems with multiple slacks.');
- l/ a; H+ y: G1 B                end$ Q2 A6 u8 ]9 _7 d( y+ A
                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文件。
' N& I! g) X5 q0 E4 Q, Dhttp://wenku.baidu.com/view/1df27b718e9951e79b89278d.html
8 R$ B0 q/ _7 D4 j; S$ H4 d楼主看看这个课件。
! H/ I" A& J6 H+ U希望对你又帮助~
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

招聘斑竹

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

GMT+8, 2026-4-30 11:54

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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