% Lambda-metoden stegsvarstest
% ger inställningsvärden till PI-regulator
%
%   100% |----------____  Ys  Ks=Ys/steg
%        |         /
%        |        /
%    63% |-------/
%        |      /|         M=max{L,T}
%        |     / |
%        |    /  |         l=p*M    1<p<3
%    0%  |___/   |        (speed <-p-> stability )
%        |---|---|-----   
%         <-> L           K=T/(Ks(l+L))
%         <------> L+T     T=T_I
%               

help lambdatuning.m % skriver ut den inledande ASCII-grafiken

disp('Tryck på tangent för MENY ...'), pause
k=menu('Välj åtgärd','Mata in stegsvar (först)','Variera p');

if (k==1)
      disp('Mata in värden från stegsvarstest');
      steg = input('Stegändringens storlek: ');
      Ys0 = input('Utstorhetens startvärde (vid 0%): ');
      Yss = input('Utstorhetens slutvärde (vid 100%): ');
      Ks = (Yss-Ys0)/steg; % beräkna processens förstärkning
      L = input('Dödtiden L [s]: ');
      Ts = input('Tid till 63% av slutvärde L+T [s]: ');
      T=Ts-L;
      M=max(L,T);
      disp('Antag att p = 2 (snabbhet<-->stabilitet)');
      p=2;
      disp('Beräknade värden på K och T_I');
      l=p*M;
      K=T/(Ks*(l+L))  % skriv ut K
      T_I=T           % skriv ut T_I
 else
      disp('Ändra parametern p (1...p...3 snabbhet<-->stabilitet'); 
      p=input('Ange nytt p: ');
      if p<1
        p=1;
        disp('p ska som lägst vara 1');
      end  
      if p>3
        p=3;
      disp('p ska som högst vara 3');
      end
      p   % skriv ut p
      disp('Beräknade värden på K och T_I'),
      l=p*M;
      K=T/(Ks*(l+L))  % skriv ut K
      T_I=T           % skriv ut T_I
end
