__Function File:__**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.

__Function File:__**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.`c`'*`c`Solution method: apply Laub's Schur method (IEEE Transactions on Automatic Control, 1979) to the appropriate Hamiltonian matrix.

`opt`is an option passed to the eigenvalue balancing routine. Default is`"B"`

.

__Function File:__**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`.

__Function File:__**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:

`a`:`n`by`n``b`:`n`by`m``c`:`n`by`n`, symmetric positive semidefinite`r`:`m`by`m`, symmetric positive definite (invertible)If

`c`is not square, then the function attempts to use

instead.`c`'*`c`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).

`opt`is an option passed to the eigenvalue balancing routine. The default is`"B"`

.

__Function File:__**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`')

__Function File:__**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`)

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

`z`is`cov (`

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

.`w`,`v`) = 0The observer structure is

Returns:

`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)`

.

__Function File:__**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

or

J = 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)`.

__Function File:__**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

or

a' 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).

__Function File:__**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

__Function File:__**is_observable***(*`a`,`c`,`tol`)-
Returns 1 if the pair

`(a, c)`

is observable. Otherwise, returns a value of 0.

__Function File:__**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 (`

.`w`,`v`) = 0Observer structure is

`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)`

.

__Function File:__**lqr***(*`a`,`b`,`q`,`r`,`z`)__Function File:__[`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`includedReturns:

`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)`

.

__Function File:__**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

or

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

whichever is appropriate.

Solves by using the Bartels-Stewart algorithm (1972).

__Function File:__**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.