view scripts/control/packsys.m @ 3213:ba1c7cdc6090

[project @ 1998-11-06 16:15:36 by jwe]
author jwe
date Fri, 06 Nov 1998 16:16:31 +0000
parents
children dbcc24961c44
line wrap: on
line source

# Copyright (C) 1996 A. Scottedward Hodel 
#
# This file is part of Octave. 
#
# Octave is free software; you can redistribute it and/or modify it 
# under the terms of the GNU General Public License as published by the 
# Free Software Foundation; either version 2, or (at your option) any 
# later version. 
# 
# Octave is distributed in the hope that it will be useful, but WITHOUT 
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
# for more details.
# 
# You should have received a copy of the GNU General Public License 
# along with Octave; see the file COPYING.  If not, write to the Free 
# Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
 
function Asys = packsys(a,b,c,d,dflg)
  # O B S O L E T E: use ss2sys instead.
  # function Asys = packsys(a,b,c[,d,dflg])
  #
  # dflg: 0 for continuous time system, 1 for discrete-time system.
  # 
  # defaults:
  #   D: 0 matrix of appropriate dimension.
  #   dflg: 0 (continuous time)
  #
  # Note: discrete-state sampling time is not included!
  #
  
  # Written by R. Bruce Tenison  July 29, 1994
  # Modified by David Clem November 13, 1994
  # Modified by A. S. Hodel April 1995
  # $Revision: 1.2 $

  warning("packsys is obsolete!  Use ss2sys instead.");
  
  if (nargin < 3 || nargin > 5)
    disp("packsys: Invalid number of arguments")
  endif

  # check dflg
  if(nargin == 5)
    if( !is_scalar(dflg))
      [m,n] = size(dflg);
      error(["packsys: dflg (",num2str(m),",",num2str(n), ...
	") must be a scalar."]);
    elseif( (dflg != 0) && (dflg != 1))
      error(["packsys: dflg=",num2str(dflg),"must be 0 or 1"]);
    endif
  else
    #default condition
    dflg = 0;
  endif

  if (nargin == 3)
    # No D matrix.  Form a zero one!
    [brows,bcols] = size(b);
    [crows,ccols] = size(c);
    d = zeros(crows,bcols);
  endif

  [n,m,p] = abcddim(a,b,c,d);
  if (n == -1 || m == -1 || p == -1)
    error("packsys: incompatible dimensions")
  endif
  
  Asys = ss2sys(a,b,c,d,dflg);

endfunction