diff 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 diff
new file mode 100644
--- /dev/null
+++ b/scripts/control/packsys.m
@@ -0,0 +1,71 @@
+# 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