Package org.hipparchus.linear
Class RiccatiEquationSolverImpl
- java.lang.Object
-
- org.hipparchus.linear.RiccatiEquationSolverImpl
-
- All Implemented Interfaces:
RiccatiEquationSolver
public class RiccatiEquationSolverImpl extends Object implements RiccatiEquationSolver
This solver computes the solution using the following approach: 1. Compute the Hamiltonian matrix 2. Extract its complex eigen vectors (not the best solution, a better solution would be ordered Schur transformation) 3. Approximate the initial solution given by 2 using the Kleinman algorithm (an iterative method)
-
-
Constructor Summary
Constructors Constructor Description RiccatiEquationSolverImpl(RealMatrix A, RealMatrix B, RealMatrix Q, RealMatrix R)
Constructor of the solver.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RealMatrix
getK()
{inheritDoc}RealMatrix
getP()
{inheritDoc}
-
-
-
Constructor Detail
-
RiccatiEquationSolverImpl
public RiccatiEquationSolverImpl(RealMatrix A, RealMatrix B, RealMatrix Q, RealMatrix R)
Constructor of the solver. A and B should be compatible. B and R must be multiplicative compatible. A and Q must be multiplicative compatible. R must be invertible.- Parameters:
A
- state transition matrixB
- control multipliers matrixQ
- state cost matrixR
- control cost matrix
-
-
Method Detail
-
getP
public RealMatrix getP()
{inheritDoc}- Specified by:
getP
in interfaceRiccatiEquationSolver
- Returns:
- the p
-
getK
public RealMatrix getK()
{inheritDoc}- Specified by:
getK
in interfaceRiccatiEquationSolver
- Returns:
- the linear controller k
-
-