📄 setx0.m
字号:
function a = setx0(a)
global Syn DAE
if ~a.n, return, end
Porder = Syn.pm(a.syn);
M = Syn.con(:,18);
if a.ty1
Porder1 = Porder(a.ty1);
gain = 1./a.con(a.ty1,4);
tmax = a.con(a.ty1,5);
tmin = a.con(a.ty1,6);
Ts = a.con(a.ty1,7);
Tc = a.con(a.ty1,8);
T3 = a.con(a.ty1,9);
T4 = a.con(a.ty1,10);
T5 = a.con(a.ty1,11);
as = 1./Ts;
ac = 1./Tc;
a5 = 1./T5;
K1 = T3.*ac;
K2 = 1 - K1;
K3 = T4.*a5;
K4 = 1 - K3;
a.dat1 = [a.tg1(a.ty1), ... % 1
a.tg2(a.ty1), ... % 2
a.tg3(a.ty1), ... % 3
gain, ... % 4
tmax, ... % 5
Porder1, ... % 6
as, ... % 7
ac, ... % 8
a5, ... % 9
K1, ... % 10
K2, ... % 11
K3, ... % 12
K4, ... % 13
Syn.omega(a.syn(a.ty1)), ... % 14
1./M(a.syn(a.ty1))]; % 15
DAE.x(a.dat1(:,1)) = a.dat1(:,6);
DAE.x(a.dat1(:,2)) = a.dat1(:,11).*a.dat1(:,6);
DAE.x(a.dat1(:,3)) = a.dat1(:,13).*a.dat1(:,6);
DAE.f(a.dat1(:,1)) = 0;
DAE.f(a.dat1(:,2)) = 0;
DAE.f(a.dat1(:,3)) = 0;
end
if a.ty2
Porder2 = Porder(a.ty2);
gain = 1./a.con(a.ty2,4);
tmax = a.con(a.ty2,5);
tmin = a.con(a.ty2,6);
T1 = a.con(a.ty2,8);
T2 = a.con(a.ty2,7);
a2 = 1./T2;
K1 = gain.*T1.*a2;
K2 = gain - K1;
a.dat2 = [a.tg(a.ty2), ... % 1
gain, ... % 2
tmax, ... % 3
tmin, ... % 4
Porder2, ... % 5
a2, ... % 6
K1, ... % 7
K2, ... % 8
Syn.omega(a.syn(a.ty2)), ... % 9
1./M(a.syn(a.ty2))]; % 10
DAE.x(a.dat2(:,1)) = 0;
DAE.f(a.dat2(:,1)) = 0;
end
maxlmt = find(Porder > a.con(:,5));
minlmt = find(Porder < a.con(:,6));
for i = 1:length(maxlmt)
fm_disp(['Pmech greater than maximum limit for TG #', ...
num2str(maxlmt(i))],1)
end
for i = 1:length(minlmt)
fm_disp(['Pmech less than minimum limit for TG #', ...
num2str(minlmt(i))],1)
end
if isempty(maxlmt) & isempty(minlmt)
fm_disp('Initialization of Turbine Gorvernors completed.',1)
else
fm_disp('Initialization of Turbine Gorvernors failed.',2)
return
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -