home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / octa21fb.zip / octave / doc / octave.i09 (.txt) < prev    next >
GNU Info File  |  2000-01-15  |  49KB  |  1,091 lines

  1. This is Info file octave, produced by Makeinfo-1.64 from the input file
  2. octave.tex.
  3. START-INFO-DIR-ENTRY
  4. * Octave: (octave).    Interactive language for numerical computations.
  5. END-INFO-DIR-ENTRY
  6.    Copyright (C) 1996, 1997 John W. Eaton.
  7.    Permission is granted to make and distribute verbatim copies of this
  8. manual provided the copyright notice and this permission notice are
  9. preserved on all copies.
  10.    Permission is granted to copy and distribute modified versions of
  11. this manual under the conditions for verbatim copying, provided that
  12. the entire resulting derived work is distributed under the terms of a
  13. permission notice identical to this one.
  14.    Permission is granted to copy and distribute translations of this
  15. manual into another language, under the above conditions for modified
  16. versions.
  17. File: octave,  Node: numerical,  Next: sysprop,  Prev: blockdiag,  Up: Control Theory
  18. Numerical Functions
  19. ===================
  20.  - Function File:  are (A, B, C, OPT)
  21.      Solve the algebraic Riccati equation
  22.            a' * x + x * a - x * b * x + c = 0
  23.      *Inputs*
  24.      for identically dimensioned square matrices
  25.     A
  26.           NxN matrix.
  27.     B
  28.           NxN matrix or NxM matrix; in the latter case B is replaced by
  29.           b:=b*b'.
  30.     C
  31.           NxN matrix or PxM matrix; in the latter case C is replaced by
  32.           c:=c'*c.
  33.     OPT
  34.           (optional argument; default = `"B"'):  String option passed
  35.           to `balance' prior to ordered Schur decomposition.
  36.      *Outputs* X: solution of the ARE.
  37.      *Method*  Laub's Schur method (IEEE Transactions on  Automatic
  38.      Control, 1979) is applied to the appropriate Hamiltonian  matrix.
  39.  - Function File:  dare (A, B, C, R, OPT)
  40.      Return the solution, X of the discrete-time algebraic Riccati
  41.      equation
  42.            a' x a - x + a' x b (r + b' x b)^(-1) b' x a + c = 0
  43.      *Inputs*
  44.     A
  45.           N by N.
  46.     B
  47.           N by M.
  48.     C
  49.           N by N, symmetric positive semidefinite, or P by N.   In the
  50.           latter case c:=c'*c is used.
  51.     R
  52.           M by M, symmetric positive definite (invertible).
  53.     OPT
  54.           (optional argument; default = `"B"'):  String option passed
  55.           to `balance' prior to ordered QZ decomposition.
  56.      *Outputs* X solution of DARE.
  57.      *Method*  Generalized eigenvalue approach (Van Dooren; SIAM J.
  58.      Sci. Stat. Comput., Vol 2) applied  to the appropriate symplectic
  59.      pencil.
  60.      See also: Ran and Rodman, "Stable Hermitian Solutions of Discrete
  61.      Algebraic Riccati Equations," Mathematics of Control, Signals and
  62.       Systems, Vol 5, no 2 (1992)  pp 165-194.
  63.  - Function File: X =  dlyap (A, B)
  64.      Solve the discrete-time Lyapunov equation
  65.      *Inputs*
  66.     A
  67.           N by N matrix
  68.     B
  69.           Matrix: N by N, N by M, or P by N.
  70.      *Outputs* X: matrix satisfying appropriate discrete time Lyapunov
  71.      equation.     Options:
  72.         * B is square: solve `a x a' - x + b = 0'
  73.         * B is not square: X satisfies either
  74.                       a x a' - x + b b' = 0
  75.           or
  76.                  a' x a - x + b' b = 0,
  77.                     
  78.                      whichever is appropriate.
  79.      *Method*    Uses Schur decomposition method as in Kitagawa, `An
  80.      Algorithm for Solving the Matrix Equation X = FXF' + S',
  81.      International Journal of Control, Volume 25, Number 5, pages
  82.      745-753    (1977).
  83.      Column-by-column solution method as suggested in    Hammarling,
  84.      `Numerical Solution of the Stable, Non-Negative    Definite
  85.      Lyapunov Equation', IMA Journal of Numerical Analysis, Volume
  86.      2, pages 303-323 (1982).
  87.  - Function File :  M = gram (A, B)
  88.      Return controllability grammian M of the continuous time system
  89.      dx/dt = a x + b u.
  90.      M satisfies  a m + m a' + b b' = 0 .
  91.  - Function File:  lyap (A, B, C)
  92.  - Function File:  lyap (A, B)
  93.      Solve the Lyapunov (or Sylvester) equation via the Bartels-Stewart
  94.        algorithm (Communications of the ACM, 1972).
  95.      If A, B, and C are specified, then `lyap' returns    the solution
  96.      of the  Sylvester equation
  97.                  a x + x b + c = 0
  98.         If only `(a, b)' are specified, then `lyap' returns the
  99.      solution of the Lyapunov equation
  100.                  a' x + x a + b = 0
  101.         If B is not square, then `lyap' returns the solution of either
  102.                  a' x + x a + b' b = 0
  103.      or
  104.                  a x + x a' + b b' = 0
  105.      whichever is appropriate.
  106.      Solves by using the Bartels-Stewart algorithm (1972).
  107.  - Loadable Function:  pinv (X, TOL)
  108.      Return the pseudoinverse of X.  Singular values less than TOL are
  109.      ignored.
  110.      If the second argument is omitted, it is assumed that
  111.           tol = max (size (X)) * sigma_max (X) * eps,
  112.      where `sigma_max (X)' is the maximal singular value of X.
  113.  - Function File :  X = qzval (A, B)
  114.      Compute generalized eigenvalues of the matrix pencil
  115.            (A - lambda B).
  116.      A and B must be real matrices.
  117.      *Note* `qzval' is obsolete; use `qz' instead.
  118.  - Function File : Y = zgfmul(A,B,C,D,X)
  119.      Compute product of zgep incidence matrix F with vector X.   Used
  120.      by zgepbal (in zgscal) as part of generalized conjugate gradient
  121.      iteration.
  122.  - Function File : x = zgfslv(N,M,P,B)
  123.      solve system of equations for dense zgep problem
  124.  - Function File : zz = zginit(A,B,C,D)
  125.      construct right hand side vector zz  for the zero-computation
  126.      generalized eigenvalue problem  balancing procedure  called by
  127.      zgepbal
  128.  - Function File : retsys = zgpbal(Asys)
  129.      used internally in `tzero'; minimal argument checking performed
  130.      implementation of zero computation generalized eigenvalue problem
  131.      balancing method (Hodel and Tiller, Allerton Conference, 1991)
  132.      Based on Ward's balancing algorithm (SIAM J. Sci Stat. Comput.,
  133.      1981)
  134.      zgpbal computes a state/input/output weighting that attempts to
  135.      reduced the range of the magnitudes of the nonzero elements of
  136.      [a,b,c,d]  The weighting uses scalar multiplication by powers of
  137.      2, so no roundoff  will occur.
  138.      zgpbal should be followed by zgpred
  139.  - Function File :  retsys =  zgreduce(ASYS,MEPS)
  140.      Implementation of procedure REDUCE in (Emami-Naeini and Van Dooren,
  141.      Automatica, # 1982).
  142.  - Function File :  [NONZ, ZER] = zgrownorm (MAT, MEPS)
  143.      returns NONZ = number of rows of MAT whose two norm exceeds MEPS
  144.      ZER = number of rows of mat whose two norm is less than meps
  145.    References:  ZGEP: Hodel, "Computation of Zeros with Balancing,"
  146. 1992, submitted to  LAA  Generalized CG: Golub and Van Loan, "Matrix
  147. Computations, 2nd ed" 1989
  148.  - Function File : [a ,b ] = zgsgiv(C,S,A,B)
  149.      apply givens rotation c,s to row vectors A,B  No longer used in
  150.      zero-balancing (zgpbal); kept for backward compatibility
  151.    References:
  152. *ZGEP*
  153.      Hodel, "Computation of Zeros with Balancing," 1992, Linear Algebra
  154.      and its Applications
  155. **Generalized CG**
  156.      Golub and Van Loan, "Matrix Computations, 2nd ed" 1989
  157. File: octave,  Node: sysprop,  Next: systime,  Prev: numerical,  Up: Control Theory
  158. System Analysis-Properties
  159. ==========================
  160.  - Function File: [N, M, P] = abcddim (A, B, C, D)
  161.      Check for compatibility of the dimensions of the matrices defining
  162.      the linear system  [A, B, C, D] corresponding to
  163.            dx/dt = a x + b u
  164.            y = c x + d u
  165.      or a similar discrete-time system.
  166.      If the matrices are compatibly dimensioned, then `abcddim' returns
  167.     N
  168.           The number of system states.
  169.     M
  170.           The number of system inputs.
  171.     P
  172.           The number of system outputs.
  173.      Otherwise `abcddim' returns N = M = P = -1.
  174.      Note: n = 0 (pure gain block) is returned without warning.
  175.      See also: is_abcd
  176.  - Function File : [Y, MY, NY] = abcddims (X)
  177.      Used internally in `abcddim'.  If X is a zero-size matrix,  both
  178.      dimensions are set to 0 in Y.  MY and NY are the row and column
  179.      dimensions of the result.
  180.  - Function File : QS = ctrb(SYS {, B})
  181.  - Function File : QS = ctrb(A, B)
  182.      Build controllability matrix
  183.                         2       n-1
  184.            Qs = [ B AB A B ... A   B ]
  185.      of a system data structure or the pair (A, B).
  186.      *Note* `ctrb' forms the controllability matrix.          The
  187.      numerical properties of `is_controllable'         are much better
  188.      for controllability tests.
  189.  - Function File : RETVAL = h2norm(SYS)
  190.      Computes the H2 norm of a system data structure (continuous time
  191.      only)
  192.      Reference:   Doyle, Glover, Khargonekar, Francis, "State Space
  193.      Solutions to Standard   H2 and Hinf Control Problems", IEEE TAC
  194.      August 1989
  195.  - Function File : [G, GMIN, GMAX] = hinfnorm(SYS{, TOL, GMIN, GMAX,
  196.           PTOL})
  197.      Computes the H infinity norm of a system data structure.
  198.      *Inputs*
  199.     SYS
  200.           system data structure
  201.     TOL
  202.           H infinity norm search tolerance (default: 0.001)
  203.     GMIN
  204.           minimum value for norm search (default: 1e-9)
  205.     GMAX
  206.           maximum value for norm search (default: 1e+9)
  207.     PTOL
  208.           pole tolerance:
  209.              * if sys is continuous, poles with  |real(pole)| <
  210.                ptol*||H|| (H is appropriate Hamiltonian)  are
  211.                considered to be on the imaginary axis.
  212.              * if sys is discrete, poles with  |abs(pole)-1| <
  213.                ptol*||[s1,s2]|| (appropriate symplectic pencil)  are
  214.                considered to be on the unit circle
  215.              * Default: 1e-9
  216.      *Outputs*
  217.     G
  218.           Computed gain, within TOL of actual gain.  G is returned as
  219.           Inf  if the system is unstable.
  220.     GMIN, GMAX
  221.           Actual system gain lies in the interval [GMIN, GMAX]
  222.      References:   Doyle, Glover, Khargonekar, Francis, "State space
  223.      solutions to standard      H2 and Hinf control problems", IEEE TAC
  224.      August 1989   Iglesias and Glover, "State-Space approach to
  225.      discrete-time Hinf control,"      Int. J. Control, vol 54, #5, 1991
  226.       Zhou, Doyle, Glover, "Robust and Optimal Control,"
  227.      Prentice-Hall, 1996   $Revision: 1.9 $
  228.  - Function File :  QB = obsv (SYS{, C})
  229.      Build observability matrix
  230.                 | C        |
  231.                 | CA       |
  232.            Qb = | CA^2     |
  233.                 | ...      |
  234.                 | CA^(n-1) |
  235.       of a system data structure or the pair (A, C).
  236.      Note: `obsv()' forms the observability matrix.
  237.      The numerical properties of is_observable()         are much
  238.      better for observability tests.
  239.  - Function File : [ZER, POL]= pzmap (SYS)
  240.      Plots the zeros and poles of a system in the complex plane.
  241.      *Inputs* SYS system data structure
  242.      *Outputs*  if omitted, the poles and zeros are plotted on the
  243.      screen.             otherwise, pol, zer are returned as the system
  244.      poles and zeros.             (see sys2zp for a preferable function
  245.      call)
  246.  - Function File :  RETVAL = is_abcd( A{, B, C, D})
  247.      Returns RETVAL = 1 if the dimensions of A, B, C, D   are
  248.      compatible, otherwise RETVAL = 0 with an appropriate diagnostic
  249.      message printed to the screen.  The matrices b, c, or d may be
  250.      omitted.
  251.  - Function File : [RETVAL, U] = is_controllable (SYS{, TOL})
  252.  - Function File : [RETVAL, U] = is_controllable (A{, B ,TOL})
  253.      Logical check for system controllability.
  254.      *Inputs*
  255.     SYS
  256.           system data structure
  257.     A, B
  258.           N by N, N by M matrices, respectively
  259.     TOL
  260.           optional roundoff paramter.  default value: `10*eps'
  261.      *Outputs*
  262.     RETVAL
  263.           Logical flag; returns true (1) if the system SYS or the  pair
  264.           (A,B) is controllable, whichever was passed as input
  265.           arguments.
  266.     U
  267.           U is an orthogonal basis of the controllable subspace.
  268.      *Method*  Controllability is determined by applying Arnoldi
  269.      iteration with  complete re-orthogonalization to obtain an
  270.      orthogonal basis of the  Krylov subspace
  271.            span ([b,a*b,...,a^{n-1}*b]).
  272.       The Arnoldi iteration is executed with `krylov' if the system has
  273.      a single input; otherwise a block Arnoldi iteration is performed
  274.      with `krylovb'.
  275.      *See also* `is_observable', `is_stabilizable', `is_detectable',
  276.      `krylov', `krylovb'
  277.  - Function File :  [RETVAL, U] = is_detectable (A, C{, TOL})
  278.  - Function File :  [RETVAL, U] = is_detectable (SYS{, TOL})
  279.      Test for detactability (observability of unstable modes) of (A,C).
  280.      Returns 1 if the system A or the pair (A,C)is   detectable, 0 if
  281.      not.
  282.      *See* `is_stabilizable' for detailed description of arguments and
  283.      computational method.
  284.      Default: tol = 10*norm(a,'fro')*eps
  285.  - Function File :  [RETVAL, DGKF_STRUCT ] = is_dgkf (ASYS, NU, NY, TOL
  286.           )
  287.      Determine whether a continuous time state space system meets
  288.      assumptions of DGKF algorithm.    Partitions system into:
  289.            [dx/dt] = [A  | Bw  Bu  ][w]
  290.            [ z   ]   [Cz | Dzw Dzu ][u]
  291.            [ y   ]   [Cy | Dyw Dyu ]
  292.       or similar discrete-time system.   If necessary, orthogonal
  293.      transformations QW, QZ and nonsingular   transformations RU, RY
  294.      are applied to respective vectors W, Z, U, Y in order to satisfy
  295.      DGKF assumptions.   Loop shifting is used if DYU block is nonzero.
  296.      *Inputs*
  297.     ASYS
  298.           system data structure
  299.     NU
  300.           number of controlled inputs
  301.     NY
  302.           number of measured outputs
  303.     TOL
  304.           threshhold for 0.  Default: 200EPS *Outputs*
  305.     RETVAL
  306.           true(1) if system passes check, false(0) otherwise
  307.     DGKF_STRUCT
  308.           data structure of `is_dgkf' results.  Entries:
  309.          NW, NZ
  310.                dimensions of W, Z
  311.          A
  312.                system A matrix
  313.          BW
  314.                (N x NW) QW-transformed disturbance input matrix
  315.          BU
  316.                (N x NU) RU-transformed controlled input matrix;
  317.                *Note* B = [Bw Bu]
  318.          CZ
  319.                (NZ x N) Qz-transformed error output matrix
  320.          CY
  321.                (NY x N) RY-transformed measured output matrix
  322.                *Note* C = [Cz; Cy]
  323.          DZU, DYW
  324.                off-diagonal blocks of transformed D matrix that enter
  325.                Z, Y from U, W respectively
  326.          RU
  327.                controlled input transformation matrix
  328.          RY
  329.                observed output transformation matrix
  330.          DYU_NZ
  331.                nonzero if the DYU block is nonzero.
  332.          DYU
  333.                untransformed DYU block
  334.          DFLG
  335.                nonzero if the system is discrete-time `is_dgkf' exits
  336.      with an error if the system is mixed discrete/continuous
  337.      *References*
  338.     *[1]*
  339.           Doyle, Glover, Khargonekar, Francis, "State Space Solutions
  340.              to Standard H2 and Hinf Control Problems," IEEE TAC
  341.           August 1989
  342.     *[2]*
  343.           Maciejowksi, J.M.: "Multivariable feedback design,"
  344.  - Function File :  [RETVAL,U] = is_observable (A, C{,TOL})
  345.  - Function File :  [RETVAL,U] = is_observable (SYS{, TOL})
  346.      Logical check for system observability.
  347.      Default: tol = 10*norm(a,'fro')*eps
  348.      Returns 1 if the system SYS or the pair (A,C) is   observable, 0
  349.      if not.
  350.      *See* `is_controllable' for detailed description of arguments  and
  351.      default values.
  352.  - Function File :  RETVAL = is_sample (TS)
  353.      return true if TS is a legal sampling time   (real,scalar, > 0)
  354.  - Function File :  RETVAL = is_siso (SYS)
  355.      return nonzero if the system data structure SYS is single-input,
  356.      single-output.
  357.  - Function File : [RETVAL, U] = is_stabilizable (SYS{, TOL})
  358.  - Function File : [RETVAL, U] = is_stabilizable (A{, B ,TOL})
  359.      Logical check for system stabilizability (i.e., all unstable modes
  360.      are controllable).
  361.      Test for stabilizability is performed via an ordered Schur
  362.      decomposition  that reveals the unstable subspace of the system A
  363.      matrix.
  364.      Returns `retval' = 1 if the system, `a', is stabilizable, if the
  365.      pair  (`a', `b') is stabilizable, or 0 if not.  `U' = orthogonal
  366.      basis of controllable subspace.
  367.      Controllable subspace is determined by applying Arnoldi iteration
  368.      with  complete re-orthogonalization to obtain an orthogonal basis
  369.      of the  Krylov subspace.
  370.              span ([b,a*b,...,a^   b]).
  371.       tol is a roundoff paramter, set to 200*eps if omitted.
  372.  - Function File: FLG = is_signal_list (MYLIST)
  373.      Returns true if mylist is a list of individual strings (legal for
  374.      input to SYSSETSIGNALS).
  375.  - Function File :  RETVAL = is_stable (A{,TOL,DFLG})
  376.  - Function File :  RETVAL = is_stable (SYS{,TOL})
  377.      Returns retval = 1 if the matrix A or the system SYS  is stable,
  378.      or 0 if not.
  379.      *Inputs*
  380.     TOL
  381.           is a roundoff paramter, set to 200*EPS if omitted.
  382.     DFLG
  383.           Digital system flag (not required for system data structure):
  384.          `DFLG != 0'
  385.                stable if eig(a) in unit circle
  386.          `DFLG == 0'
  387.                stable if eig(a) in open LHP (default)
  388. File: octave,  Node: systime,  Next: sysfreq,  Prev: sysprop,  Up: Control Theory
  389. System Analysis-Time Domain
  390. ===========================
  391.  - Function File :  DSYS = c2d (SYS{, OPT, T})
  392.  - Function File :  DSYS = c2d (SYS{, T})
  393.      *Inputs*
  394.     SYS
  395.           system data structure (may have both continuous time and
  396.           discrete time subsystems)
  397.     OPT
  398.           string argument; conversion option (optional argument;  may
  399.           be omitted as shown above)
  400.          `"ex"'
  401.                use the matrix exponential (default)
  402.          `"bi"'
  403.                use the bilinear transformation
  404.                     2(z-1)
  405.                 s = -----
  406.                     T(z+1)
  407.            FIXME: This option exits with an error if SYS is not purely
  408.           continuous. (The `ex' option can handle mixed systems.)
  409.     T
  410.           sampling time; required if sys is purely continuous.
  411.           *Note* If the 2nd argument is not a string, `c2d' assumes that
  412.           the 2nd argument is T and performs appropriate argument
  413.           checks.
  414.      *Outputs* DSYS discrete time equivalent via zero-order hold,
  415.      sample each T sec.
  416.      converts the system data structure describing
  417.            .
  418.            x = Ac x + Bc u
  419.       into a discrete time equivalent model
  420.            x[n+1] = Ad x[n] + Bd u[n]
  421.       via the matrix exponential or bilinear transform
  422.      *Note* This function adds the suffix  `_d'  to the names of the
  423.      new discrete states.
  424.  - Function File : CSYS = d2c (SYS{,TOL})
  425.  - Function File : CSYS = d2c (SYS, OPT)
  426.      Convert discrete (sub)system to a purely continuous system.
  427.      Sampling  time used is `sysgettsam(SYS)'
  428.      *Inputs*
  429.     SYS
  430.           system data structure with discrete components
  431.     TOL
  432.           Scalar value.    tolerance for convergence of default `"log"'
  433.           option (see below)
  434.     OPT
  435.           conversion option.  Choose from:
  436.          `"log"'
  437.                (default) Conversion is performed via a matrix logarithm.
  438.                Due to some problems with this computation, it is
  439.                followed by a steepest descent algorithm to identify
  440.                continuous time A, B, to get a better fit to the
  441.                original data.
  442.                If called as `d2c'(SYS,TOL), TOL=positive scalar,      the
  443.                `"log"' option is used.  The default value for TOL is
  444.                `1e-8'.
  445.          `"bi"'
  446.                Conversion is performed via bilinear transform z = (1 +
  447.                s T / 2)/(1 - s T / 2) where T is the  system sampling
  448.                time (see `sysgettsam').
  449.                FIXME: bilinear option exits with an error if SYS is not
  450.                purely discrete
  451.      *Outputs* CSYS continuous time system (same dimensions and  signal
  452.      names as in SYS).
  453.  - Function File : [DSYS, FIDX] = dmr2d (SYS, IDX, SPREFIX, TS2
  454.           {,CUFLG})
  455.      convert a multirate digital system to a single rate digital system
  456.       states specified by IDX, SPREFIX are sampled at TS2, all
  457.      others are assumed sampled at TS1 = `sysgettsam(SYS)'.
  458.      *Inputs*
  459.     SYS
  460.           discrete time system; `dmr2d' exits with an error if SYS is
  461.           not discrete
  462.     IDX
  463.           list of states with sampling time `sysgettsam(SYS)' (may be
  464.           empty)
  465.     SPREFIX
  466.           list of string prefixes of states with sampling time
  467.           `sysgettsam(SYS)'  (may be empty)
  468.     TS2
  469.           sampling time of states not specified by IDX, SPREFIX  must
  470.           be an integer multiple of `sysgettsam(SYS)'
  471.     CUFLG
  472.           "constant u flag" if CUFLG is nonzero then the system inputs
  473.           are          assumed to be constant over the revised sampling
  474.           interval TS2.           Otherwise, since the inputs can
  475.           change during the interval T in [k Ts2, (k+1) Ts2], an
  476.           additional set of inputs is          included in the revised
  477.           B matrix so that these intersample inputs          may be
  478.           included in the single-rate system.           default CUFLG =
  479.           1.
  480.      *Outputs*
  481.     DSYS
  482.           equivalent discrete time system with sampling time TS2.
  483.           The sampling time of sys is updated to TS2.
  484.           if CUFLG=0 then a set of additional inputs is added to
  485.             the system with suffixes _d1, ..., _dn to indicate their
  486.                  delay from the starting time k TS2, i.e.            u
  487.           = [u_1; u_1_d1; ..., u_1_dn] where u_1_dk is the input
  488.                 k*Ts1 units of time after u_1 is sampled. (Ts1 is
  489.                   the original sampling time of discrete time sys and
  490.           TS2 = (n+1)*Ts1)
  491.     FIDX
  492.           indices of "formerly fast" states specified by IDX and
  493.           SPREFIX;  these states are updated to the new (slower)
  494.           sampling interval TS2.
  495.      *WARNING* Not thoroughly tested yet; especially when CUFLG == 0.
  496.  - Function File :  damp(P{, TSAM})
  497.      Displays eigenvalues, natural frequencies and damping ratios
  498.      of the eigenvalues of a matrix P or the A-matrix of a
  499.      system P, respectively.         If P is a system, TSAM must not be
  500.      specified.         If P is a matrix and TSAM is specified,
  501.      eigenvalues        of P are assumed to be in Z-domain.
  502.      See also: `eig'
  503.  - Function File : GM = dcgain(SYS{, tol})
  504.      Returns dc-gain matrix. If dc-gain is infinite        an empty
  505.      matrix is returned.         The argument TOL is an optional
  506.      tolerance for the condition        number of A-Matrix in SYS
  507.      (default TOL = 1.0e-10)
  508.  - Function File : [Y, T] = impulse (SYS{, INP,TSTOP, N})
  509.      Impulse response for a linear system.          The system can be
  510.      discrete or multivariable (or both).   If no output arguments are
  511.      specified, `impulse'   produces a plot or the impulse response
  512.      data for system SYS.
  513.      *Inputs*
  514.     SYS
  515.           System data structure.
  516.     INP
  517.           Index of input being excited
  518.     TSTOP
  519.           The argument TSTOP (scalar value) denotes the time when the
  520.           simulation should end.
  521.     N
  522.           the number of data values.
  523.           Both parameters TSTOP and N can be omitted and will be
  524.           computed from the eigenvalues of the A-Matrix.  *Outputs* Y,
  525.      T: impulse response
  526.  - Function File : [Y, T] = impulse (SYS{, INP,TSTOP, N})
  527.      Step response for a linear system.          The system can be
  528.      discrete or multivariable (or both).   If no output arguments are
  529.      specified, `impulse'   produces a plot or the step response data
  530.      for system SYS.
  531.      *Inputs*
  532.     SYS
  533.           System data structure.
  534.     INP
  535.           Index of input being excited
  536.     TSTOP
  537.           The argument TSTOP (scalar value) denotes the time when the
  538.           simulation should end.
  539.     N
  540.           the number of data values.
  541.           Both parameters TSTOP and N can be omitted and will be
  542.           computed from the eigenvalues of the A-Matrix.  *Outputs* Y,
  543.      T: impulse response
  544.      When invoked with the output paramter y the plot is not displayed.
  545.  - Function File : [y, t] =  stepimp(SITYPE,SYS[, INP, TSTOP, N])
  546.      Impulse or step response for a linear system.         The system
  547.      can be discrete or multivariable (or both).         This m-file
  548.      contains the "common code" of step and impulse.
  549.      Produces a plot or the response data for system sys.
  550.      Limited argument checking; "do not attempt to do this at home".
  551.      Used internally in `impulse', `step'. Use `step'  or `impulse'
  552.      instead.
  553. File: octave,  Node: sysfreq,  Next: cacsd,  Prev: systime,  Up: Control Theory
  554. System Analysis-Frequency Domain
  555. ================================
  556.    *Demonstration/tutorial script*
  557.  - Function File :   frdemo ( )
  558.      Octave Controls toolbox demo: Frequency Response demo
  559.  - Function File : [MAG, PHASE, W] = bode(SYS{,W, OUT_IDX, IN_IDX})
  560.      If no output arguments are given: produce Bode plots of a system;
  561.      otherwise,  compute the frequency response of a system data
  562.      structure
  563.      *Inputs*
  564.     SYS
  565.           a system data structure (must be either purely continuous or
  566.           discrete;       see is_digital)
  567.     W
  568.           frequency values for evaluation.
  569.           if SYS is continuous, then bode evaluates G(jw) where G(s) is
  570.           the system transfer function.
  571.           if SYS is discrete, then bode evaluates G(`exp'(jwT)), where
  572.              * T=`sysgettsam(SYS)' (the system sampling time) and
  573.              * G(z) is the system transfer function.
  574.           * Default* the default frequency range is selected as
  575.           follows: (These          steps are NOT performed if W is
  576.           specified)
  577.             1. via routine bodquist, isolate all poles and zeros away
  578.                from W=0 (JW=0 or `exp'(jwT)=1) and select the frequency
  579.                range based on the breakpoint locations of the
  580.                frequencies.
  581.             2. if SYS is discrete time, the frequency range is limited
  582.                             to jwT in  [0,2 pi /T]
  583.             3. A "smoothing" routine is used to ensure that the plot
  584.                phase does                not change excessively from
  585.                point to point and that singular                points
  586.                (e.g., crossovers from +/- 180) are accurately shown.
  587.     OUT_IDX, IN_IDX
  588.           the indices of the output(s) and input(s) to be used in
  589.           the frequency response; see `sysprune'.  *Outputs*
  590.     MAG, PHASE
  591.           the magnitude and phase of the frequency response G(jw) or
  592.           G(`exp'(jwT)) at the selected frequency values.
  593.     W
  594.           the vector of frequency values used
  595.      *Notes*
  596.        1. If no output arguments are given, e.g.,
  597.                 bode(sys);
  598.            bode plots the results to the  screen.  Descriptive labels
  599.           are automatically placed.
  600.           Failure to include a concluding semicolon will yield some
  601.           garbage  being printed to the screen (`ans = []').
  602.        2. If the requested plot is for an MIMO system, mag is set to
  603.           ||G(jw)|| or ||G(`exp'(jwT))||  and phase information is not
  604.           computed.
  605.  - Function File : [WMIN, WMAX] = bode_bounds (ZER, POL, DFLG{, TSAM })
  606.      Get default range of frequencies based on cutoff frequencies of
  607.      system  poles and zeros.   Frequency range is the interval
  608.      [10^wmin,10^wmax]
  609.      Used internally in freqresp (`bode', `nyquist')
  610.  - Function File :  [F, W] = bodquist (SYS, W, OUT_IDX, IN_IDX)
  611.      used internally by bode, nyquist; compute system frequency
  612.      response.
  613.      *Inputs*
  614.     SYS
  615.           input system structure
  616.     W
  617.           range of frequencies; empty if user wants default
  618.     OUT_IDX
  619.           list of outputs; empty if user wants all
  620.     IN_IDX
  621.           list of inputs; empty if user wants all
  622.     RNAME
  623.           name of routine that called bodquist ("bode" or "nyquist")
  624.      *Outputs*
  625.     W
  626.           list of frequencies
  627.     F
  628.           frequency response of sys; f(ii) = f(omega(ii)) *Note*
  629.      bodquist could easily be incorporated into a Nichols  plot
  630.      function; this is in a "to do" list.
  631.      Both bode and nyquist share the same introduction, so the common
  632.      parts are  in bodquist.  It contains the part that finds the
  633.      number of arguments,  determines whether or not the system is
  634.      SISO, and computes the frequency  response.  Only the way the
  635.      response is plotted is different between the  two functions.
  636.  - Function File : [REALP, IMAGP, W] = nyquist (SYS{, W, OUT_IDX,
  637.           IN_IDX, ATOL})
  638.  - Function File :  nyquist (SYS{, W, OUT_IDX, IN_IDX, ATOL})
  639.      Produce Nyquist plots of a system; if no output arguments are
  640.      given, Nyquist  plot is printed to the screen.
  641.      Compute the frequency response of a system.  *Inputs* (pass as
  642.      empty to get default values)
  643.     SYS
  644.           system data structure (must be either purely continuous or
  645.           discrete;         see is_digital)
  646.     W
  647.           frequency values for evaluation.        if sys is continuous,
  648.           then bode evaluates G(jw)       if sys is discrete, then bode
  649.           evaluates G(exp(jwT)), where T=sysgettsam(SYS) (the system
  650.           sampling time)
  651.     DEFAULT
  652.           the default frequency range is selected as follows: (These
  653.             steps are NOT performed if W is specified)
  654.        1. via routine bodquist, isolate all poles and zeros away from
  655.           W=0 (JW=0 or exp(JWT)=1) and select the frequency  range
  656.           based on the breakpoint locations of the frequencies.
  657.        2. if SYS is discrete time, the frequency range is limited  to
  658.           JWT in  [0,2p*pi]
  659.        3. A "smoothing" routine is used to ensure that the plot phase
  660.           does               not change excessively from point to point
  661.           and that singular               points (e.g., crossovers from
  662.           +/- 180) are accurately shown.
  663.              outputs, inputs: the indices of the output(s) and input(s)
  664.      to be used in      the frequency response; see sysprune.
  665.      *Inputs* (pass as empty to get default values)
  666.     ATOL
  667.           for interactive nyquist plots: atol is a change-in-slope
  668.           tolerance  for the of asymptotes (default = 0; 1e-2 is a good
  669.           choice).  This allows  the user to "zoom in" on portions of
  670.           the Nyquist plot too small to be  seen with large asymptotes.
  671.      *Outputs*
  672.     REALP, IMAGP
  673.           the real and imaginary parts of the frequency response G(jw)
  674.           or G(exp(jwT)) at the selected frequency values.
  675.     W
  676.           the vector of frequency values used
  677.      If no output arguments are given, nyquist plots the results to the
  678.      screen.    If ATOL != 0 and asymptotes are detected then the user
  679.      is asked      interactively if they wish to zoom in (remove
  680.      asymptotes)   Descriptive labels are automatically placed.
  681.      Note: if the requested plot is for an MIMO system, a warning
  682.      message is   presented; the returned information is of the
  683.      magnitude   ||G(jw)|| or ||G(exp(jwT))|| only; phase information
  684.      is not computed.
  685.  - Function File :  ZR = tzero2 (A, B, C, D, BAL)
  686.      Compute the transmission zeros of a, b, c, d.
  687.      bal = balancing option (see balance); default is "B".
  688.      Needs to incorporate `mvzero' algorithm to isolate finite zeros;
  689.      use `tzero' instead.
  690. File: octave,  Node: cacsd,  Next: misc,  Prev: sysfreq,  Up: Control Theory
  691. Controller Design
  692. =================
  693.  - Function File :   dgkfdemo ( )
  694.      Octave Controls toolbox demo: H2/Hinfinity options demos
  695.  - Function File:  hinfdemo ()
  696.      H_infinity design demos for continuous SISO and MIMO systems and a
  697.      discrete system.  The SISO system is difficult to control because
  698.      it  is non minimum phase and unstable.  The second design example
  699.      controls the "jet707" plant, the linearized state space model of a
  700.      Boeing 707-321 aircraft at v=80m/s (M = 0.26, Ga0 = -3 deg,
  701.      alpha0 =  4 deg, kappa = 50 deg).  Inputs: (1) thrust and (2)
  702.      elevator angle  outputs: (1) airspeed and (2) pitch angle. The
  703.      discrete system is a  stable and second order.
  704.     SISO plant
  705.                               s - 2
  706.                    G(s) = --------------
  707.                           (s + 2)(s - 1)
  708.                
  709.                                             +----+
  710.                        -------------------->| W1 |---> v1
  711.                    z   |                    +----+
  712.                    ----|-------------+                   || T   ||     => min.
  713.                        |             |                       vz   infty
  714.                        |    +---+    v   y  +----+
  715.                      u *--->| G |--->O--*-->| W2 |---> v2
  716.                        |    +---+       |   +----+
  717.                        |                |
  718.                        |    +---+       |
  719.                        -----| K |<-------
  720.                             +---+
  721.               W1 und W2 are the robustness and performance
  722.           weighting        functions
  723.     MIMO plant
  724.           The optimal controller minimizes the H_infinity norm of the
  725.           augmented plant P (mixed-sensitivity problem):
  726.                w
  727.                       1 -----------+
  728.                                    |                   +----+
  729.                                +---------------------->| W1 |----> z1
  730.                      w         |   |                   +----+
  731.                       2 ------------------------+
  732.                                |   |            |
  733.                                |   v   +----+   v      +----+
  734.                             +--*-->o-->| G  |-->o--*-->| W2 |---> z2
  735.                             |          +----+      |   +----+
  736.                             |                      |
  737.                             ^                      v
  738.                              u (from                 y (to K)
  739.                                controller
  740.                                K)
  741.                
  742.                
  743.                                   +    +           +    +
  744.                                   | z  |           | w  |
  745.                                   |  1 |           |  1 |
  746.                                   | z  | = [ P ] * | w  |
  747.                                   |  2 |           |  2 |
  748.                                   | y  |           | u  |
  749.                                   +    +           +    +
  750.     DISCRETE SYSTEM
  751.           This is not a true discrete design. The design is carried out
  752.             in continuous time while the effect of sampling is
  753.           described by    a bilinear transformation of the sampled
  754.           system.     This method works quite well if the sampling
  755.           period is "small"    compared to the plant time constants.
  756.     The continuous plant
  757.                                  1
  758.                    G (s) = --------------
  759.                     k      (s + 2)(s + 1)
  760.            is discretised with a ZOH (Sampling period = Ts = 1
  761.           second):
  762.                              0.199788z + 0.073498
  763.                    G(s) = --------------------------
  764.                           (z - 0.36788)(z - 0.13534)
  765.                
  766.                                             +----+
  767.                        -------------------->| W1 |---> v1
  768.                    z   |                    +----+
  769.                    ----|-------------+                   || T   ||     => min.
  770.                        |             |                       vz   infty
  771.                        |    +---+    v      +----+
  772.                        *--->| G |--->O--*-->| W2 |---> v2
  773.                        |    +---+       |   +----+
  774.                        |                |
  775.                        |    +---+       |
  776.                        -----| K |<-------
  777.                             +---+
  778.               W1 and W2 are the robustness and performancs
  779.           weighting        functions
  780.  - Function File: [L, M, P, E] = dlqe (A, G, C, SIGW, SIGV, Z)
  781.      Construct the linear quadratic estimator (Kalman filter) for the
  782.      discrete time system
  783.            x[k+1] = A x[k] + B u[k] + G w[k]
  784.              y[k] = C x[k] + D u[k] + w[k]
  785.      where W, V are zero-mean gaussian noise processes with  respective
  786.      intensities `SIGW = cov (W, W)' and `SIGV = cov (V, V)'.
  787.      If specified, Z is `cov (W, V)'.  Otherwise `cov (W, V) = 0'.
  788.      The observer structure is
  789.            z[k+1] = A z[k] + B u[k] + k (y[k] - C z[k] - D u[k])
  790.      The following values are returned:
  791.     L
  792.           The observer gain,  (A - ALC).   is stable.
  793.     M
  794.           The Riccati equation solution.
  795.     P
  796.           The estimate error covariance after the measurement update.
  797.     E
  798.           The closed loop poles of  (A - ALC).
  799.  - Function File: [K, P, E] = dlqr (A, B, Q, R, Z)
  800.      Construct the linear quadratic regulator for the discrete time
  801.      system
  802.            x[k+1] = A x[k] + B u[k]
  803.      to minimize the cost functional
  804.            J = Sum (x' Q x + u' R u)
  805.      Z omitted or
  806.            J = Sum (x' Q x + u' R u + 2 x' Z u)
  807.      Z included.
  808.      The following values are returned:
  809.     K
  810.           The state feedback gain,  (A - BK)  is stable.
  811.     P
  812.           The solution of algebraic Riccati equation.
  813.     E
  814.           The closed loop poles of  (A - BK).  *References*
  815.        1. Anderson and Moore, Optimal Control: Linear Quadratic Methods,
  816.                Prentice-Hall, 1990, pp. 56-58
  817.        2. Kuo, Digital Control Systems, Harcourt Brace Jovanovich, 1992,
  818.                section 11-5-2.
  819.  - Function File : [K , GAIN, KC, KF, PC, PF] = h2syn(ASYS, NU, NY, TOL)
  820.      Design H2 optimal controller per procedure in   Doyle, Glover,
  821.      Khargonekar, Francis, "State Space Solutions to Standard   H2 and
  822.      Hinf Control Problems", IEEE TAC August 1989
  823.      Discrete time control per Zhou, Doyle, and Glover, ROBUST AND
  824.      OPTIMAL   CONTROL, Prentice-Hall, 1996
  825.      *Inputs* input system is passed as either
  826.     ASYS
  827.           system data structure (see ss2sys, sys2ss)
  828.              * controller is implemented for continuous time systems
  829.              * controller is NOT implemented for discrete time systems
  830.     NU
  831.           number of controlled inputs
  832.     NY
  833.           number of measured outputs
  834.     TOL
  835.           threshhold for 0.  Default: 200*eps
  836.      *Outputs*
  837.     K
  838.           system controller
  839.     GAIN
  840.           optimal closed loop gain
  841.     KC
  842.           full information control (packed)
  843.     KF
  844.           state estimator (packed)
  845.     PC
  846.           ARE solution matrix for regulator subproblem
  847.     PF
  848.           ARE solution matrix for filter subproblem
  849.  - Function File : K = hinf_ctr(DGS, F, H, Z, G)
  850.      Called by `hinfsyn' to compute the H_inf optimal controller.
  851.      *Inputs*
  852.     DGS
  853.           data structure returned by `is_dgkf'
  854.     F, H
  855.           feedback and filter gain (not partitioned)
  856.     G
  857.           final gamma value *Outputs*  controller K (system data
  858.      structure)
  859.      Do not attempt to use this at home; no argument checking performed.
  860.  - Function File : [K, G, GW, XINF, YINF] = hinfsyn(ASYS, NU, NY, GMIN,
  861.           GMAX, GTOL{, PTOL, TOL})
  862.      *Inputs* input system is passed as either
  863.     ASYS
  864.           system data structure (see ss2sys, sys2ss)
  865.              * controller is implemented for continuous time systems
  866.              * controller is NOT implemented for discrete time systems
  867.                (see  bilinear transforms in `c2d', `d2c')
  868.     NU
  869.           number of controlled inputs
  870.     NY
  871.           number of measured outputs
  872.     GMIN
  873.           initial lower bound on H-infinity optimal gain
  874.     GMAX
  875.           initial upper bound on H-infinity optimal gain
  876.     GTOL
  877.           gain threshhold.  Routine quits when gmax/gmin < 1+tol
  878.     PTOL
  879.           poles with abs(real(pole)) < ptol*||H|| (H is appropriate
  880.           Hamiltonian) are considered to be on the imaginary axis.
  881.           Default: 1e-9
  882.     TOL
  883.           threshhold for 0.  Default: 200*eps
  884.           GMAX, MIN, TOL, and TOL must all be postive scalars.
  885.      *Outputs*
  886.     K
  887.           system controller
  888.     G
  889.           designed gain value
  890.     GW
  891.           closed loop system
  892.     XINF
  893.           ARE solution matrix for regulator subproblem
  894.     YINF
  895.           ARE solution matrix for filter subproblem
  896.        1. Doyle, Glover, Khargonekar, Francis, "State Space Solutions
  897.              to Standard H2 and Hinf Control Problems," IEEE TAC
  898.           August 1989
  899.        2. Maciejowksi, J.M., "Multivariable feedback design,"
  900.           Addison-Wesley, 1989, ISBN 0-201-18243-2
  901.        3. Keith Glover and John C. Doyle, "State-space formulae for all
  902.                stabilizing controllers that satisfy and
  903.           h-infinity-norm bound       and relations to risk
  904.           sensitivity,"       Systems & Control Letters 11, Oct. 1988,
  905.           pp 167-172.
  906.  - Function File: [RETVAL, PC, PF] = hinfsyn_chk(A, B1, B2, C1, C2,
  907.           D12, D21, G, PTOL)
  908.      Called by `hinfsyn' to see if gain G satisfies conditions in
  909.      Theorem 3 of   Doyle, Glover, Khargonekar, Francis, "State Space
  910.      Solutions to Standard   H2 and Hinf Control Problems", IEEE TAC
  911.      August 1989
  912.      *Warning* Do not attempt to use this at home; no argument checking
  913.      performed.
  914.      *Inputs* as returned by `is_dgkf', except for:
  915.     G
  916.           candidate gain level
  917.     PTOL
  918.           as in `hinfsyn'
  919.      *Outputs*
  920.     RETVAL
  921.           1 if g exceeds optimal Hinf closed loop gain, else 0
  922.     PC
  923.           solution of "regulator" H-inf ARE
  924.     PF
  925.           solution of "filter" H-inf ARE  Do not attempt to use this at
  926.      home; no argument checking performed.
  927.  - Function File: [K, P, E] = lqe (A, G, C, SIGW, SIGV, Z)
  928.      Construct the linear quadratic estimator (Kalman filter) for the
  929.      continuous time system
  930.            dx
  931.            -- = a x + b u
  932.            dt
  933.           
  934.            y = c x + d u
  935.      where W and V are zero-mean gaussian noise processes with
  936.      respective intensities
  937.            sigw = cov (w, w)
  938.            sigv = cov (v, v)
  939.      The optional argument Z is the cross-covariance `cov (W, V)'.  If
  940.      it is omitted, `cov (W, V) = 0' is assumed.
  941.      Observer structure is `dz/dt = A z + B u + k (y - C z - D u)'
  942.      The following values are returned:
  943.     K
  944.           The observer gain,  (A - KC)  is stable.
  945.     P
  946.           The solution of algebraic Riccati equation.
  947.     E
  948.           The vector of closed loop poles of  (A - KC).
  949.    See also:  h2syn, lqe, lqr
  950.  - Function File: [K, P, E] = lqr (A, B, Q, R, Z)
  951.      construct the linear quadratic regulator for the continuous time
  952.      system
  953.            dx
  954.            -- = A x + B u
  955.            dt
  956.      to minimize the cost functional
  957.                  infinity
  958.                  /
  959.              J = |  x' Q x + u' R u
  960.                 /
  961.                t=0
  962.      Z omitted or
  963.                  infinity
  964.                  /
  965.              J = |  x' Q x + u' R u + 2 x' Z u
  966.                 /
  967.                t=0
  968.      Z included.
  969.      The following values are returned:
  970.     K
  971.           The state feedback gain,  (A - BK)  is stable and minimizes
  972.           the cost functional
  973.     P
  974.           The stabilizing solution of appropriate algebraic Riccati
  975.           equation.
  976.     E
  977.           The vector of the closed loop poles of  (A - BK).
  978.      *Reference*  Anderson and Moore, OPTIMAL CONTROL: LINEAR QUADRATIC
  979.      METHODS,  Prentice-Hall, 1990, pp. 56-58
  980.  - Function File :   lsim (SYS, U, T{,X0})
  981.      Produce output for a linear simulation of a system
  982.      Produces a plot for the output of the system, sys.
  983.      U is an array that contains the system's inputs.  Each column in u
  984.      corresponds to a different time step.  Each row in u corresponds
  985.      to a  different input.  T is an array that contains the time index
  986.      of the  system.  T should be regularly spaced.  If initial
  987.      conditions are required  on the system, the x0 vector should be
  988.      added to the argument list.
  989.      When the lsim function is invoked with output parameters:  [y,x] =
  990.      lsim(sys,u,t,[x0])  a plot is not displayed, however, the data is
  991.      returned in y = system output  and x = system states.
  992.  - Function File :  K = place (SYS, P)
  993.      Computes the matrix  K such that if the state  is feedback with
  994.      gain K, then the eigenvalues  of the closed loop  system (i.e.
  995.      A-BK) are those specified in the vector P.
  996.      Version: Beta (May-1997): If you have any comments, please let me
  997.      know.                   (see the file place.m for my address)
  998.      Written by: Jose Daniel Munoz Frias.
  999. File: octave,  Node: misc,  Prev: cacsd,  Up: Control Theory
  1000. Miscellaneous Functions (Not yet properly filed/documented)
  1001. ===========================================================
  1002.  - Function File :  AXVEC = axis2dlim (AXDATA)
  1003.      determine axis limits for 2-d data(column vectors); leaves a 10%
  1004.      margin   around the plots.    puts in margins of +/- 0.1 if data
  1005.      is one dimensional (or a single point)
  1006.      *Inputs* AXDATA nx2 matrix of data [x,y]
  1007.      *Outputs* AXVEC vector of axis limits appropriate for call to
  1008.      axis() function
  1009.  - Function File :  outputs = moddemo ( inputs )
  1010.        Octave Controls toolbox demo: Model Manipulations demo
  1011.        Written by David Clem August 15, 1994
  1012.  - Function File :  outputs = prompt ( inputs )
  1013.        function prompt([str])
  1014.        Prompt user to continue
  1015.        str: input string. Default value: "\n ---- Press a key to continue ---"
  1016.        Written by David Clem August 15, 1994
  1017.        Modified A. S. Hodel June 1995
  1018.  - Function File :  outputs = rldemo ( inputs )
  1019.      Octave Controls toolbox demo: Root Locus demo
  1020.  - Function File :  outputs = rlocus ( inputs )
  1021.        [rldata, k] = rlocus(sys[,increment,min_k,max_k])
  1022.        Displays root locus plot of the specified SISO system.
  1023.      
  1024.              -----   ---     --------
  1025.          --->| + |---|k|---->| SISO |----------->
  1026.              -----   ---     --------        |
  1027.              - ^                             |
  1028.                |_____________________________|
  1029.      
  1030.       inputs: sys = system data structure
  1031.               min_k, max_k,increment: minimum, maximum values of k and
  1032.                      the increment used in computing gain values
  1033.        Outputs: plots the root locus to the screen.
  1034.          rldata: Data points plotted column 1: real values, column 2: imaginary
  1035.                  values)
  1036.          k: gains for real axis break points.
  1037.  - Function File :  outputs = ss2tf ( inputs )
  1038.        [num,den] = ss2tf(a,b,c,d)
  1039.        Conversion from tranfer function to state-space.
  1040.        The state space system
  1041.             .
  1042.             x = Ax + Bu
  1043.             y = Cx + Du
  1044.      
  1045.        is converted to a transfer function
  1046.      
  1047.                       num(s)
  1048.                 G(s)=-------
  1049.                       den(s)
  1050.      
  1051.        used internally in system data structure format manipulations
  1052.  - Function File :  outputs = ss2zp ( inputs )
  1053.        Converts a state space representation to a set of poles and zeros.
  1054.      
  1055.        [pol,zer,k] = ss2zp(a,b,c,d) returns the poles and zeros of the state space
  1056.        system (a,b,c,d).  K is a gain associated with the zeros.
  1057.      
  1058.        used internally in system data structure format manipulations
  1059.  - Function File :  outputs = susball ( inputs )
  1060.  - Function File : [A, B, C, D] = zp2ss (ZER, POL, K)
  1061.      Conversion from zero / pole to state space.  *Inputs*
  1062.     ZER, POL
  1063.           vectors of (possibly) complex poles and zeros of a transfer
  1064.           function.  Complex values must come in conjugate pairs
  1065.           (i.e., x+jy in zer means that x-jy is also in zer)
  1066.     K
  1067.           real scalar (leading coefficient) *Outputs* A, B, C, D  The
  1068.      state space system
  1069.            .
  1070.            x = Ax + Bu
  1071.            y = Cx + Du
  1072.       is obtained from a vector of zeros and a vector of poles via the
  1073.      function call `[a,b,c,d] = zp2ss(zer,pol,k)'.   The vectors `zer'
  1074.      and `pol' may either be row or column vectors.  Each zero and pole
  1075.      that  has an imaginary part must have a conjugate in the list.
  1076.      The number of zeros must not exceed the number of poles.  `k' is
  1077.      `zp'-form leading coefficient.
  1078.  - Function File :  [POLY, RVALS] = zp2ssg2 (RVALS)
  1079.      Used internally in `zp2ss'  Extract 2 values from RVALS (if
  1080.      possible) and construct   a polynomial with those roots.
  1081.  - Function File : [NUM, DEN] = zp2tf (ZER, POL, K)
  1082.      Converts zeros / poles to a transfer function.  *Inputs*
  1083.     ZER, POL
  1084.           vectors of (possibly complex) poles and zeros of a transfer
  1085.           function.  Complex values should appear in conjugate pairs
  1086.     K
  1087.           real scalar (leading coefficient) `[num,den] =
  1088.      zp2tf(zer,pol,k)' forms the transfer function `num/den' from the
  1089.      vectors of poles and zeros.
  1090.    % DO NOT EDIT!  Generated automatically by munge-texi.
  1091.