home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / octa21eb.zip / octave / SCRIPTS.ZIP / scripts.fat / control / sys2tf.m < prev    next >
Text File  |  1999-04-29  |  2KB  |  58 lines

  1. # Copyright (C) 1996 A. Scottedward Hodel 
  2. #
  3. # This file is part of Octave. 
  4. #
  5. # Octave is free software; you can redistribute it and/or modify it 
  6. # under the terms of the GNU General Public License as published by the 
  7. # Free Software Foundation; either version 2, or (at your option) any 
  8. # later version. 
  9. # Octave is distributed in the hope that it will be useful, but WITHOUT 
  10. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
  11. # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
  12. # for more details.
  13. # You should have received a copy of the GNU General Public License 
  14. # along with Octave; see the file COPYING.  If not, write to the Free 
  15. # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  16.  
  17. function [num,den,tsam,inname,outname] = sys2tf(Asys)
  18. # function [num,den,tsam,inname,outname] = sys2tf(Asys)
  19. # Conversion from a system data structure format to a transfer function.  The 
  20. # transfer function part of ASYS is returned to the user in the form:
  21. #
  22. #                num(s)
  23. #          G(s)=-------
  24. #                den(s)
  25. #
  26. # The user can also have the sampling time (TSAM), the name of the input 
  27. # (INNAME), and the output name (OUTNAME)
  28.  
  29. # Written by R. Bruce Tenison (June 24, 1994) btenison@eng.auburn.edu
  30. # modified to make sys2tf by A. S. Hodel Aug 1995
  31. # modified again for updated system format by John Ingram July 1996
  32.  
  33.   if(nargin != 1)
  34.     usage("[num,den,tsam,inname,outname] = sys2tf(Asys)");
  35.   endif
  36.  
  37.   if( !is_struct(Asys))
  38.     error("Asys must be a system data structure (see ss2sys, tf2sys, zp2sys)");
  39.   elseif (! is_siso(Asys) )
  40.     [n, nz, m, p] = sysdimen(Asys);
  41.     error(["system is not SISO (",num2str(m)," inputs, ...
  42.         ", num2str(p)," outputs"]);
  43.   endif
  44.  
  45.   Asys = sysupdat(Asys,"tf");        # just in case
  46.  
  47.   num = Asys.num;
  48.   den = Asys.den;
  49.   
  50.   tsam = sysgetts(Asys);
  51.   inname = sysgetsg(Asys,"in");
  52.   outname = sysgetsg(Asys,"out");
  53.  
  54. endfunction
  55.  
  56.