rsLQR  0.1
lqr_data.h
Go to the documentation of this file.
1 
13 #pragma once
14 
15 #include "matrix.h"
16 
54 typedef struct {
55  int nstates;
56  int ninputs;
57  double* Q;
58  double* R;
59  double* q;
60  double* r;
61  double* c;
62  double* A;
63  double* B;
64  double* d;
65 } LQRData;
66 
83 int ndlqr_InitializeLQRData(LQRData* lqrdata, double* Q, double* R, double* q, double* r,
84  double c, double* A, double* B, double* d);
85 
95 LQRData* ndlqr_NewLQRData(int nstates, int ninputs);
96 
104 int ndlqr_FreeLQRData(LQRData* lqrdata);
105 
115 int ndlqr_CopyLQRData(LQRData* dest, LQRData* src);
116 
117 Matrix ndlqr_GetA(LQRData* lqrdata);
118 Matrix ndlqr_GetB(LQRData* lqrdata);
119 Matrix ndlqr_Getd(LQRData* lqrdata);
120 Matrix ndlqr_GetQ(LQRData* lqrdata);
121 Matrix ndlqr_GetR(LQRData* lqrdata);
122 Matrix ndlqr_Getq(LQRData* lqrdata);
123 Matrix ndlqr_Getr(LQRData* lqrdata);
124 
132 void ndlqr_PrintLQRData(LQRData* lqrdata);
133 
ndlqr_Getq
Matrix ndlqr_Getq(LQRData *lqrdata)
Get affine state cost.
Definition: lqr_data.c:96
ndlqr_InitializeLQRData
int ndlqr_InitializeLQRData(LQRData *lqrdata, double *Q, double *R, double *q, double *r, double c, double *A, double *B, double *d)
Copy data into an initialized LQRData structure.
Definition: lqr_data.c:10
ndlqr_GetQ
Matrix ndlqr_GetQ(LQRData *lqrdata)
Get state cost Hessian.
Definition: lqr_data.c:91
ndlqr_PrintLQRData
void ndlqr_PrintLQRData(LQRData *lqrdata)
Prints the data contained in LQRData.
Definition: lqr_data.c:119
matrix.h
Matrix type and basic operations.
ndlqr_Getd
Matrix ndlqr_Getd(LQRData *lqrdata)
Get (n,) affine dynamice term.
Definition: lqr_data.c:86
Matrix
Represents a matrix of double-precision data.
Definition: matrix.h:71
ndlqr_Getr
Matrix ndlqr_Getr(LQRData *lqrdata)
Get affine control cost.
Definition: lqr_data.c:106
ndlqr_NewLQRData
LQRData * ndlqr_NewLQRData(int nstates, int ninputs)
Allocate memory for a new LQRData structure.
Definition: lqr_data.c:24
ndlqr_FreeLQRData
int ndlqr_FreeLQRData(LQRData *lqrdata)
Free the memory for and LQRData object.
Definition: lqr_data.c:51
LQRData
Holds the data for a single time step of LQR.
Definition: lqr_data.h:54
ndlqr_GetA
Matrix ndlqr_GetA(LQRData *lqrdata)
Get (n,n) state transition matrix.
Definition: lqr_data.c:76
ndlqr_GetB
Matrix ndlqr_GetB(LQRData *lqrdata)
Get (n,m) control input matrix.
Definition: lqr_data.c:81
ndlqr_GetR
Matrix ndlqr_GetR(LQRData *lqrdata)
Get control cost Hessian.
Definition: lqr_data.c:101
ndlqr_CopyLQRData
int ndlqr_CopyLQRData(LQRData *dest, LQRData *src)
Copies one LQRData object to another.
Definition: lqr_data.c:61