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

📄 setx0.m

📁 这是一个很适合研究和学习用的电力系统仿真软件
💻 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 + -