ulqr
0.1.0
|
Basic methods for creating and using the Riccati solver. More...
Go to the source code of this file.
Data Structures | |
struct | RiccatiSolver |
Solver that uses Riccati recursion to solve an LQR problem. More... | |
Functions | |
RiccatiSolver * | ulqr_NewRiccatiSolver (int nstates, int ninputs, int nhorizon) |
Initialize a new Riccati solver. More... | |
int | ulqr_FreeRiccatiSolver (RiccatiSolver **solver) |
Free the memory for a Riccati solver. More... | |
int | ulqr_PrintRiccatiSummary (RiccatiSolver *solver) |
Prints a summary of the solve. More... | |
int | ulqr_GetNumVars (RiccatiSolver *solver) |
enum ulqr_ReturnCode | ulqr_SetInitialState (RiccatiSolver *solver, double *x0) |
Set the initial state. More... | |
enum ulqr_ReturnCode | ulqr_SetCost (RiccatiSolver *solver, const double *Q, const double *R, const double *H, const double *q, const double *r, double c, int k_start, int k_end) |
enum ulqr_ReturnCode | ulqr_SetDynamics (RiccatiSolver *solver, const double *A, const double *B, const double *f, int k_start, int k_end) |
Matrix * | ulqr_GetA (RiccatiSolver *solver, int k) |
Get (n,n) state transition matrix. | |
Matrix * | ulqr_GetB (RiccatiSolver *solver, int k) |
Get (n,m) control input matrix. | |
Matrix * | ulqr_Getf (RiccatiSolver *solver, int k) |
Get (n,) affine dynamice term. | |
Matrix * | ulqr_GetQ (RiccatiSolver *solver, int k) |
Get state cost Hessian. | |
Matrix * | ulqr_GetR (RiccatiSolver *solver, int k) |
Get control cost Hessian. | |
Matrix * | ulqr_GetH (RiccatiSolver *solver, int k) |
Get cost Hessian cross-term (m,n) | |
Matrix * | ulqr_Getq (RiccatiSolver *solver, int k) |
Get affine state cost. | |
Matrix * | ulqr_Getr (RiccatiSolver *solver, int k) |
Get affine control cost. | |
double | ulqr_Getc (RiccatiSolver *solver, int k) |
Get cost constant. | |
Matrix * | ulqr_GetFeedbackGain (RiccatiSolver *solver, int k) |
Get (m,n) feedback gain. | |
Matrix * | ulqr_GetFeedforwardGain (RiccatiSolver *solver, int k) |
Get (m,) feedforward gain. | |
Matrix * | ulqr_GetCostToGoHessian (RiccatiSolver *solver, int k) |
Get (n,n) Hessian of the cost-to-go. | |
Matrix * | ulqr_GetCostToGoGradient (RiccatiSolver *solver, int k) |
Get (n,) Gradient of the cost-to-go. | |
Matrix * | ulqr_GetQxx (RiccatiSolver *solver, int k) |
Get (n,n) Action-value state Hessian. | |
Matrix * | ulqr_GetQuu (RiccatiSolver *solver, int k) |
Get (m,m) Action-value control Hessian. | |
Matrix * | ulqr_GetQux (RiccatiSolver *solver, int k) |
Get (m,n) Action-value Hessian cross-term. | |
Matrix * | ulqr_GetQx (RiccatiSolver *solver, int k) |
Get (n,) Action-value state gradient. | |
Matrix * | ulqr_GetQu (RiccatiSolver *solver, int k) |
Get (m,) Action-value conrol gradient. | |
Matrix * | ulqr_GetState (RiccatiSolver *solver, int k) |
Get (n,) state vector. | |
Matrix * | ulqr_GetInput (RiccatiSolver *solver, int k) |
Get (m,) input vector. | |
Matrix * | ulqr_GetDual (RiccatiSolver *solver, int k) |
Get (n,) dual vector. | |
double | ulqr_CalcCost (RiccatiSolver *solver) |
Basic methods for creating and using the Riccati solver.