Robust Control Toolbox | ![]() ![]() |
Generalized discrete algebraic Riccati solver.
[p1,p2,lamp,perr,wellposed,p] = daresolv(a,b,q,r) [p1,p2,lamp,perr,wellposed,p] = daresolv(a,b,q,r,Type)
Description
Daresolv solves the discrete algebraic Riccati equation
wellposed
is set to the string value 'FALSE'
.
The input variables and output variables are otherwise identical to the continuous time case--see aresolv
. If Type = 1
the eigenvector approach is used. If Type = 2
the Schur vector approach is used. The eigenvector approach is selected by default when no Type
is specified, unless the Hamiltonian matrix is defective in which case the algorithm defaults to the Schur approach. The residual and closed loop eigenvalues are returned in variables perr
and lamp
.
Algorithm
The algorithm is essentially the same as that employed for the continuous version of this function, save for the difference in the discrete Hamiltonian. The matrices P1 and P2 are computed such that the columns of
aresolv
.
Limitations
The Riccati equation is ill-posed if the Hamiltonian H has eigenvalues on the unit circle. In cases in which , it suffices for the system (A,R,Q) to be both stabilizable and detectable to avoid eigenvalues on the unit circle; in this case, the unique stabilizing Riccati solution will be positive semidefinite.
See Also
are
, cschur
, aresolv
, lqrc
, reig
, driccond
![]() | cgloci, dcgloci | des2ss | ![]() |