% nomctl.m            Upravljanje preko nominala
%
% c april 1996. Rasic Milan
%
% Upravljanje preko nominala. Nominalni moment se zadaje 
% preko  globalne matrice taunom=[t tau_izracunato]
% moguce je uljuciti i kontroler preko globalne promenljive
% ctlname string tipa.
% Primer poziva sa PD kontrolerom:
% >> tau_izracunato = f(q_dmd, qd_dmd, qdd_dmd);
% >> taunom= [t tau_izracunato]; qt=[t d_dmd qd_dmd];
% >> Pgain=[...]; Dgain=[...];
% >> ctlname='pdctl';
% >> global taunom qt Pgain Dgain ctlname
% >> [tsim q qd]= fdyn (dyn, to, tf, 'taunom');
%
%
function tau= nomctl (t1,x);
   global taunom ctlname
   if (exist('ctlname')==1) & (isstr(ctlname))
      tauctl = feval (ctlname, t1, x);
   else 
      tauctl = zeros(1,2);
   end;
   if t1>taunom(numrows(taunom),1),
      t1=taunom(numrows(taunom),1);
   end; 
   tauint = interp1 (taunom(:,1), taunom(:,2:3), t1 );
   tau = tauint + tauctl;

