Go to the previous, next section.
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 equation
a' 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'
(c'*c
) instead.
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"
.
c2d (a, b, t)
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 equation
a' 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
c'*c
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).
opt is an option passed to the eigenvalue balancing routine.
The default is "B"
.
dgram (a, b)
dgram (a, b)
returns the discrete controllability
gramian and dgram (a', c')
returns the observability
gramian.
dlqe (a, g, c, sigw, sigv [, z])
sigw = cov (w, w)
and
sigv = cov (v, v)
.
If specified, z is cov (w, v)
. Otherwise
cov (w, v) = 0
.
The 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)
.
dlqr (a, b, q, r [, z])
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).
dlyap (a, b)
a x a' - x + b = 0
for square matrices a, b. If b is not square, then the function attempts to solve either
a 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).
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 intensities
sigw = cov (w, w) sigv = cov (v, v)
z (if specified) is the cross-covariance
cov (w, v)
; the default value is
cov (w, v) = 0
.
Observer 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)
.
lqr (a, b, q, r, z)
[k, p, e] = lqr (a, b, q, r, z)
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 equation
a x + x b + c = 0
If only (a, b)
are specified, then lyap
returns the
solution of the Lyapunov equation
a' x + x a + b = 0
If b is not square, then lyap
returns the solution of either
a' 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).
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 previous, next section.