ulqr  0.1.0
LQRData Struct Reference

Holds the data for a single time step of LQR. More...

#include <lqr_data.h>

Data Fields

int nstates
 
int ninputs
 
Matrix Q
 
Matrix R
 
Matrix H
 
Matrix q
 
Matrix r
 
double * c
 
Matrix A
 
Matrix B
 
Matrix f
 
Matrix K
 Feedback gain.
 
Matrix d
 Feedforward gain.
 
Matrix P
 Hessian of the cost-to-go.
 
Matrix p
 gradient fo the cost-to-go
 
Matrix Qxx
 Action-value state Hessian.
 
Matrix Quu
 Action-value control Hessian.
 
Matrix Qux
 Action-value Hessian cross-term.
 
Matrix Qx
 Action-value state gradient.
 
Matrix Qu
 Action-value control gradient.
 
Matrix y
 dual variable
 
int datasize
 number of doubles needed to store the data
 

Detailed Description

Holds the data for a single time step of LQR.

Stores the \( Q, R, q, r, c \) values for the cost function:

\[ \frac{1}{2} x^T Q x + q^T x + \frac{1}{2} u^T R u + r^T r + c \]

and the \( A, B, d \) values for the dynamics:

\[ x_{k+1} = A x_k + B u_k + d \]

Construction and destruction

A new LQRData object is constructed using ulqr_NewLQRData(), which must be freed with a call to ulqr_FreeLQRData().

Methods

Getters

The follow methods return a Matrix object wrapping the data from an LQRData object. The user should NOT call FreeMatrix() on this data since it is owned by the LQRData object.


The documentation for this struct was generated from the following file: