`abcddim (`

`a`,`b`,`c`,`d`)-
Check for compatibility of the dimensions of the matrices defining
the linear system [A, B, C, D] corresponding to
or a similar discrete-time system.
If the matrices are compatibly dimensioned, then
`abcddim`

returns`n`= number of system states,`m`= number of system inputs, and`p`= number of system outputs. Otherwise`abcddim`

returns`n`=`m`=`p`= -1. `are (`

`a`,`b`,`c`,`opt`)-
Returns the solution,
`x`, of the algebraic Riccati equationa' x + x a - x b x + c = 0

for identically dimensioned square matrices`a`,`b`,`c`. If`b`(`c`) is not square, then the function attempts to use

(`b`*`b`'

) instead. Solution method: apply Laub's Schur method (IEEE Transactions on Automatic Control, 1979) to the appropriate Hamiltonian matrix.`c`'*`c``opt`is an option passed to the eigenvalue balancing routine. Default is`"B"`

. `c2d (`

`a`,`b`,`t`)-
Converts the continuous time system described by:
into a discrete time equivalent model
via the matrix exponential assuming a zero-order hold on the input and
sample time
`t`. `dare (`

`a`,`b`,`c`,`r`,`opt`)-
Returns the solution,
`x`of the discrete-time algebraic Riccati equationa' x a - x + a' x b (r + b' x b)^(-1) b' x a + c = 0

for matrices with dimensions:

If`a`:`n`by`n``b`:`n`by`m``c`:`n`by`n`, symmetric positive semidefinite`r`:`m`by`m`, symmetric positive definite (invertible)`c`is not square, then the function attempts to use

instead. Solution method: Laub's Schur method (IEEE Transactions on Automatic Control, 1979) is applied to the appropriate symplectic matrix. See also: Ran and Rodman, Stable Hermitian Solutions of Discrete Algebraic Riccati Equations, Mathematics of Control, Signals and Systems, Volume 5, Number 2 (1992).`c`'*`c``opt`is an option passed to the eigenvalue balancing routine. The default is`"B"`

. `dgram (`

`a`,`b`)-
Returns the discrete controllability and observability gramian for the
discrete time system described by
`dgram (`

returns the discrete controllability gramian and`a`,`b`)`dgram (`

returns the observability gramian.`a`',`c`') `dlqe (`

`a`,`g`,`c`,`sigw`,`sigv`[,`z`])-
Linear quadratic estimator (Kalman filter) design for the discrete time
system
where
`w`,`v`are zero-mean gaussian noise processes with respective intensities

and`sigw`= cov (`w`,`w`)

. If specified,`sigv`= cov (`v`,`v`)`z`is`cov (`

. Otherwise`w`,`v`)`cov (`

. The observer structure is Returns:`w`,`v`) = 0`l`is the observer gain,`(A - A L C)`

is stable.`m`is the Ricatti equation solution.`p`is the estimate error covariance after the measurement update.`e`are the closed loop poles of`(A - A L C)`

. `dlqr (`

`a`,`b`,`q`,`r`[,`z`])-
Linear quadratic regulator design for the discrete time system
to minimize the cost functional
J = Sum [ x' Q x + u' R u ], Z omitted

orJ = Sum [ x' Q x + u' R u +2 x' Z u ], Z included

Returns:`k`is the state feedback gain,`(A - B K)`

is stable.`p`is the solution of algebraic Riccati equation.`e`are the closed loop poles of`(A - B K)`. `dlyap (`

`a`,`b`)-
Solve the discrete-time Lyapunov equation
a x a' - x + b = 0

for square matrices`a`,`b`. If`b`is not square, then the function attempts to solve eithera x a' - x + b b' = 0

ora' x a - x + b' b = 0

whichever is appropriate. Uses Schur decomposition method as in Kitagawa, International Journal of Control (1977); column-by-column solution method as suggested in Hammarling, IMA Journal of Numerical Analysis, (1982). `is_controllable (`

`a`,`b`,`tol`)-
If the pair (a, b) is controllable, then return value 1.
Otherwise, returns a value of 0.
`tol`is a roundoff parameter, set to`2*eps`

if omitted. Currently just constructs the controllability matrix and checks rank. A better method is as follows (Boley and Golub, Systems and Control Letters, 1984): Controllability is determined by applying Arnoldi iteration with complete re-orthogonalization to obtain an orthogonal basis of the Krylov subspace `is_observable (`

`a`,`c`,`tol`)-
Returns 1 if the pair
`(a, c)`

is observable. Otherwise, returns a value of 0. `lqe (`

`a`,`g`,`c`,`sigw`,`sigv`,`z`)-
[k, p, e] = lqe (a, g, c, sigw, sigv, z)

Linear quadratic estimator (Kalman filter) design for the continuous time system where`w`,`v`are zero-mean gaussian noise processes with respective intensitiessigw = cov (w, w) sigv = cov (v, v)

`z`(if specified) is the cross-covariance`cov (`

; the default value is`w`,`v`)`cov (`

. Observer structure is`w`,`v`) = 0`dz/dt = A z + B u + k (y - C z - D u)`

returns:`k`is observer gain:`(A - K C)`

is stable.`p`is solution of algebraic Riccati equation.`e`is the vector of closed loop poles of`(A - K C)`

. `lqr (`

`a`,`b`,`q`,`r`,`z`)`[`

`k`,`p`,`e`] = lqr (`a`,`b`,`q`,`r`,`z`)-
Linear quadratic regulator design for the continuous time system
to minimize the cost functional
`z`omitted or`z`included Returns:`k`is state feedback gain:`(A - B K)`

is stable.`p`is the stabilizing solution of appropriate algebraic Riccati equation.`e`is the vector of the closed loop poles of`(A - B K)`

. `lyap (`

`a`,`b`,`c`)-
Solve the Lyapunov (or Sylvester) equation via the Bartels-Stewart
algorithm (Communications of the ACM, 1972).
If
`(a, b, c)`

are specified, then`lyap`

returns the solution of the Sylvester equationa x + x b + c = 0

If only`(a, b)`

are specified, then`lyap`

returns the solution of the Lyapunov equationa' x + x a + b = 0

If`b`is not square, then`lyap`

returns the solution of eithera' x + x a + b' b = 0

ora x + x a' + b b' = 0

whichever is appropriate. Solves by using the Bartels-Stewart algorithm (1972). `tzero (`

`a`,`b`,`c`,`d`,`bal`)-
Compute the transmission zeros of [A, B, C, D].
`bal`= balancing option (see balance); default is`"B"`

. Needs to incorporate`mvzero`

algorithm to isolate finite zeros; see Hodel, Computation of System Zeros with Balancing, Linear Algebra and its Applications, July 1993.

Go to the first, previous, next, last section, table of contents.