⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcall.m

📁 这是一个很适合研究和学习用的电力系统仿真软件
💻 M
字号:
function p = gcall(p)

global Bus DAE Settings Varname

if ~p.n, return, end

K = 1+DAE.kg*p.con(:,10);
DAE.gp(p.bus) = DAE.gp(p.bus) - K.*p.con(:,4);
if ~Settings.pv2pq
  DAE.gq(p.bus) = 0;   
  return
end

% ================================================
% check reactive power limits
% ================================================

% find max mismatch error
if isempty(DAE.g)
  prev_err = inf;
else
  prev_err = 2*max(abs(DAE.g));
end
p.newpq = 0;

% Q min
% ================================================

% Limit check improved by Lars L. 2006-01.
[tmp,idx] = max(p.con(:,7) - DAE.gq(p.bus) - prev_err);  

if tmp > 0
  if ~p.pq(idx)
    fm_disp(['Switch PV bus <', ...
             Varname.bus{p.bus(idx)}, ...
             '> to PQ bus: Min Qg reached'])
  end
  p.qg(idx) = p.con(idx,7);    
  p.pq(idx) = 1;
  p.newpq = 1;
end

% Q max
% ================================================

% Limit check improved by Lars L. 2006-01.
[tmp,idx] = min(p.con(:,6) - DAE.gq(p.bus) + prev_err);

if tmp < 0 & ~p.newpq
  if ~p.pq(idx)
    fm_disp(['Switch PV bus <', ...
             Varname.bus{p.bus(idx)}, ...
             '> to PQ bus: Max Qg reached'])
  end
  p.qg(idx) = p.con(idx,6);    
  p.pq(idx) = 1;
  p.newpq = 1;
end

% Generator reactive powers
% ================================================

DAE.gq(p.bus) = DAE.gq(p.bus) - p.qg;
DAE.gq(p.bus(find(~p.pq))) = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -