ulqr
0.1.0
|
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 | |
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 \]
A new LQRData object is constructed using ulqr_NewLQRData(), which must be freed with a call to ulqr_FreeLQRData().
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.