📄 fcall.m
字号:
function fcall(p)
global DAE Pod
if ~p.n, return, end
vcs = DAE.x(p.vcs);
vpi = DAE.x(p.vpi);
vcs_max = p.con(:,8);
vcs_min = p.con(:,9);
ty2 = find(p.con(:,2) == 2);
ty3 = find(p.con(:,2) == 3);
V0 = p.V0;
if ty2
den = ssscden(p);
kp = p.Cp(ty2)./(1-p.Cp(ty2));
V0(ty2) = kp.*den(ty2);
end
if ty3
[Ps,Qs,Pr,Qr,Is,Ir] = fex_lineflows;
Kpr = p.con(:,11);
Kin = p.con(:,12);
tp = ty3(find(p.con(ty3,10) == 1));
ta = ty3(find(p.con(ty3,10) == 2));
if tp
V0(tp) = Kpr(tp).*(p.Pref(tp)-Ps(p.line(tp))) + DAE.x(p.vpi(tp));
DAE.f(p.vpi(tp)) = Kin(tp).*(p.Pref(tp)-Ps(p.line(tp)));
end
if ta
V0(ta) = Kpr(ta).*(p.Pref(ta)-Ps(p.line(ta))-Pr(p.line(ta))) ...
+ DAE.x(p.vpi(ta));
DAE.f(p.vpi(ta)) = Kin(ta).*(p.Pref(ta)-Ps(p.line(ta))-Pr(p.line(ta)));
end
end
% Updating signal V0
V0(p.pod) = V0(p.pod) + DAE.x(Pod.Vs(Pod.sssc));
u = ~(vcs >= vcs_max & DAE.f(p.vcs) > 0) & ...
~(vcs <= vcs_min & DAE.f(p.vcs) < 0);
DAE.f(p.vcs) = u.*(V0-vcs)./p.con(:,7);
DAE.x(p.vcs) = min(vcs_max,DAE.x(p.vcs));
DAE.x(p.vcs) = max(vcs_min,DAE.x(p.vcs));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -