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

 找回密码
 立即加入
搜索
查看: 1854|回复: 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 j5 F0 h/ P5 F2 Z5 n! ?我查看runpf.m文件,发现里面有关于无功限制的语句,就是当无功越界时,将PV节点转为PQ节点。那么为什么执行不了呢?求教各位朋友~~谢谢~~0 s* u+ s' u* T1 \
这是runpf.m文件中关于无功越界处理的语句,从234行开始:5 I* K3 t8 }1 [% Z! J! c
  %% find gens with violated Q constraints+ {  c: K6 z9 V% t! H0 a9 Q% b/ [# b
            mx = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) > gen(:, QMAX) );# }0 o+ k) D' R, O* B+ b, F
            mn = find( gen(:, GEN_STATUS) > 0 & gen(:, QG) < gen(:, QMIN) );- J5 J2 B6 ^. x
if ~isempty(mx) || ~isempty(mn)  %% we have some Q limit violations8 S% [0 @4 ^3 A$ f5 H
                if isempty(pv)9 l: O4 s4 g: v% ~5 `
                    if verbose
3 a( B! @- D. w9 a$ W9 v                        if ~isempty(mx) + k/ q, H3 N: n/ c7 P
                            fprintf('Gen %d (only one left) exceeds upper Q limit : INFEASIBLE PROBLEM\n', mx);
+ T0 u: w2 ^3 [1 O                        else. u: r9 |3 Y6 c6 C" b/ b  O7 h+ |
                            fprintf('Gen %d (only one left) exceeds lower Q limit : INFEASIBLE PROBLEM\n', mn);
7 G) s2 m- |. K                        end+ Z2 V7 E1 L: Y6 D  Y/ b7 W5 @
                    end. F0 m) |% ?3 q( q, `
                    success = 0;
( H% @. k/ I& z/ K" C0 c! C# y" S                    break;4 H1 G, {5 [8 {7 q& p
                end' \1 ^: f, X8 }* A0 q

2 K+ b# o3 e) M! i- s" o4 u                %% one at a time?
6 ?' l  O# |. Q: G2 p% f                if qlim == 2    %% fix largest violation, ignore the rest
4 ^% F5 j3 u" F6 {, C                    [junk, k] = max([gen(mx, QG) - gen(mx, QMAX);
  ]) E+ Y: z$ y                                     gen(mn, QMIN) - gen(mn, QG)]);
$ m0 L) S2 n5 j( b2 a5 ~6 n" P0 L                    if k > length(mx)
( ?2 |4 G. T: A8 W) X( D                        mn = mn(k-length(mx));/ B' I# {+ D9 d# r3 V
                        mx = [];* b) j$ ~# I& e& k
                    else
( T+ p, `( x# I/ }' e. q& L                        mx = mx(k);6 u& V. e) F7 n, j( d! a; S1 p
                        mn = [];9 L+ x1 c7 q& W
                    end
9 p, Q4 i! ^' L9 p5 t                end
+ h  U& d; S! }# [$ Q5 Y& p$ z, v& ~( l( W8 X; i
                if verbose && ~isempty(mx)
8 o: n8 {7 `; k- F                    fprintf('Gen %d at upper Q limit, converting to PQ bus\n', mx);
6 v1 g6 b) I6 \$ ]6 V1 @% ~& ^* ?. n                end5 `, ]4 T( W% {! k8 W
                if verbose && ~isempty(mn)
  Y2 B/ F5 p0 Y) f: g                    fprintf('Gen %d at lower Q limit, converting to PQ bus\n', mn);
( V/ y) @) M) m: n                end
: e9 G+ A7 m6 r2 w4 E$ s9 f               
7 n* e7 V# O" v4 e8 o  E/ s                %% save corresponding limit values5 _2 w6 U" x+ i' E+ E* A
                fixedQg(mx) = gen(mx, QMAX);- f( V" u! W& D1 W
                fixedQg(mn) = gen(mn, QMIN);
$ F1 p  R2 L+ I9 z3 `                mx = [mx;mn];
/ n, ~' y* {( Q3 X3 j. e6 V) J                & Y- B9 K8 o- K% N* y* _
                %% convert to PQ bus
" ~, ^- w# z+ P' g                gen(mx, QG) = fixedQg(mx);      %% set Qg to binding limit5 G. y) |! K) S& W$ ]6 Y7 D
                gen(mx, GEN_STATUS) = 0;        %% temporarily turn off gen,; G+ q- I' F1 {
                for i = 1:length(mx)            %% (one at a time, since
4 V* }4 p. \& @4 c; L                    bi = gen(mx(i), GEN_BUS);   %%  they may be at same bus)( F( G) n9 i" Y) m& Y/ t0 v
                    bus(bi, [PD,QD]) = ...      %% adjust load accordingly,
' f( C6 ^2 P3 d5 K                        bus(bi, [PD,QD]) - gen(mx(i), [PG,QG]);
! K- e1 M4 R3 ?+ y5 r1 X                end
2 N. c: }6 a- f! J                if length(ref) > 1 && any(bus(gen(mx, GEN_BUS), BUS_TYPE) == REF)) r8 y8 j, V' y+ |
                    error('Sorry, MATPOWER cannot enforce Q limits for slack buses in systems with multiple slacks.');
  e! k: _, e9 a1 O% W                end; s' O% Z, Y+ U9 C! p: ]
                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文件。
1 y. @7 S6 [) ?+ D% p6 P# ghttp://wenku.baidu.com/view/1df27b718e9951e79b89278d.html
6 M+ B3 h3 ]) C楼主看看这个课件。" t$ q6 D, [* l$ ?" {
希望对你又帮助~
"真诚赞赏,手留余香"
还没有人打赏,支持一下
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

招聘斑竹

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

GMT+8, 2026-10-29 19:35

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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