ml_dare_nwt_fac
Discrete-time Riccati equation solver.
Contents
Syntax
[Z, info] = ml_dare_nwt_fac(A, B, C) [Z, info] = ml_dare_nwt_fac(A, B, C, []) [Z, info] = ml_dare_nwt_fac(A, B, C, [], opts)
[Z, info] = ml_dare_nwt_fac(A, B, C, E) [Z, info] = ml_dare_nwt_fac(A, B, C, E, opts)
Description
Computes the full-rank solutions of the standard discrete-time Riccati equation
A'*X*A - X - A'*X*B*inv(I + B'*X*B)*B'*X*A + C'*C = 0, (1)
or of the generalized Riccati equation
A'*X*A - E'*X*E - A'*X*B*inv(I + B'*X*B)*B'*X*A + C'*C = 0, (2)
with X = Z*Z', using the Newton-Kleinman iteration. It is assumed that the eigenvalues of A (or s*E - A) lie inside the open unit disk, otherwise a stabilizing initial feedback K0 is given as parameter.
Input
- A - matrix with dimensions n x n in (1) or (2)
- B - matrix with dimensions n x m in (1) or (2)
- C - matrix with dimensions p x n in (1) or (2)
- E - matrix with dimensions n x n in (2), if empty the standard equation (1) is solved
- opts - structure, containing the following optional entries:
Parameter | Meaning |
AbsTol | nonnegative scalar, tolerance for the absolute error in the last iteration step default: 0 |
Info | {0, 1}, used to disable/enable display of verbose status information during iteration steps default: 0 |
K0 | matrix with dimensions m x n, used to stabilize the spectrum of s*E - A, such that s*E - (A - BK0) has only d-stable eigenvalues default: zeros(m, n) |
dlyapopts | structure, containing the optional parameters for Lyapunov equation solver, see ml_dlyap_smith_fac default: struct() |
MaxIter | positive integer, maximum number of iteration steps default: 100 |
RelTol | nonnegative scalar, tolerance for the relative error in the last iteration step default: 1.0e+02*n*eps |
Output
- Z - full-rank solution factor of (1) or (2), such that X = Z*Z'
- info - structure, containing the following information:
Entry | Meaning |
AbsErr | vector, containing the absolute error of the solution matrix in each iteration step |
infoDLYAP | array of structs, containing information about the used Lyapunov equations solver for every iteration step, see ml_dlyap_smith_fac |
IterationSteps | number of performed iteration steps |
RelErr | vector, containing the relative error of the solution matrix in each iteration step |
Reference
G. A. Hewer, An iterative technique for the computation of steady state gains for the discrete optimal regulator, IEEE TRans. Autom. Control, vol. 16, pp. 382--384, 1971. https://doi.org/10.1109/TAC.1971.1099755
See Also