function [sys,x0,str,ts] = simss(t,x,u,flag)
  z1 = 1;
  te1 = 1;
  te2 = 2;
  den = 1/(te1 * te2);
  A = [-(te1+te2)/den  -1/den
           1           0];

  B = [z1/den; 0];  

  C = [1 0; 0 1];
  
  switch flag,
   case 0     
    [sys,x0,str,ts] = mdlInitializeSizes;
   case 1,
    sys = mdlDerivatives(t,x,u,A,B);
   case 3,
    sys = mdlOutputs(t,x,u,C);
   case 9                                                
    sys = [];
  end
  
function [sys,x0,str,ts] = mdlInitializeSizes()
  sizes = simsizes;
  
  sizes.NumContStates  = 2;
  sizes.NumDiscStates  = 0;
  sizes.NumOutputs     = 2;
  sizes.NumInputs      = 1;
  sizes.DirFeedthrough = 0;
  sizes.NumSampleTimes = 1;
  
  sys = simsizes(sizes);
  x0  = [0; 0];
  str = [];
  ts  = [0 0];
  
function sys = mdlDerivatives(t,x,u,A,B)
  sys = A*x + B*u;

function sys = mdlOutputs(t,x,u,C)
  sys = C*x;



