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

📄 fcall.m

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

global DAE Pod

if ~p.n, return, end

V1 = DAE.V(p.bus1);
V2 = DAE.V(p.bus2);
a1 = DAE.a(p.bus1);
a2 = DAE.a(p.bus2);

vp = DAE.x(p.vp);
vq = DAE.x(p.vq);
iq = DAE.x(p.iq);

kp = p.Cp./(1-p.Cp);
Kr = p.con(:,7);
Tr = p.con(:,8);

vp0 = zeros(p.n,1);
vq0 = zeros(p.n,1);

ty1 = find(p.con(:,2) == 1);
ty2 = find(p.con(:,2) == 2);

tyvp = p.con(:,15);
tyvq = p.con(:,16);
tyiq = p.con(:,17);

vp_max = p.con(:,9);
vp_min = p.con(:,10);
vq_max = p.con(:,11);
vq_min = p.con(:,12);
iq_max = p.con(:,13);
iq_min = p.con(:,14);

if ty1  
  vp0(ty1) = p.vp0(ty1);
  vq0(ty1) = p.vq0(ty1);
end
if ty2
  ss = sin(a1-a2+fgamma(p));
  vq0(ty2) = kp(ty2).*V1(ty2).*sin(a1(ty2)-a2(ty2))./ss(ty2);
  vp0(ty2) = p.vp0(ty2);
end

Vref = p.Vref;

if p.pod
  Vs = DAE.x(Pod.Vs(Pod.upfc));
  vp0(p.pod) = vp0(p.pod) + tyvp(p.pod).*Vs;
  vq0(p.pod) = vq0(p.pod) + tyvq(p.pod).*Vs;
  Vref(p.pod) = Vref(p.pod) + tyiq(p.pod).*Vs;
end

u = ~(vp >= vp_max & DAE.f(p.vp) > 0) & ...
    ~(vp <= vp_min & DAE.f(p.vp) < 0);
DAE.f(p.vp) = u.*(vp0-vp)./Tr; 

u = ~(vq >= vq_max & DAE.f(p.vq) > 0) & ...
    ~(vq <= vq_min & DAE.f(p.vq) < 0);
DAE.f(p.vq) = u.*(vq0-vq)./Tr;

u = ~(iq >= iq_max & DAE.f(p.iq) > 0) & ...
    ~(iq <= iq_min & DAE.f(p.iq) < 0);
DAE.f(p.iq) = u.*(Kr.*(Vref-V1)-iq)./Tr;

DAE.x(p.vp) = min(vp_max,DAE.x(p.vp));
DAE.x(p.vp) = max(vp_min,DAE.x(p.vp));
DAE.x(p.vq) = min(vq_max,DAE.x(p.vq));
DAE.x(p.vq) = max(vq_min,DAE.x(p.vq));      
DAE.x(p.iq) = min(iq_max,DAE.x(p.iq));
DAE.x(p.iq) = max(iq_min,DAE.x(p.iq));

⌨️ 快捷键说明

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