# bdm::LQG Class Reference

## Detailed Description

Linear Quadratic Gaussian designer for constant penalizations and constant target Its internals are very close to Kalman estimator

`#include <ctrlbase.h>`

List of all members.

## Public Member Functions
void | set_system (shared_ptr< StateSpace< fsqmat > > S0)
| set system parameters from given matrices
void | set_control_parameters (const mat &Qy0, const mat &Qu0, const vec &y_req0, int horizon0)
| set penalization matrices and control horizon
void | initialize ()
| set system parameters from Kalman filter
void | validate ()
| validation procedure
virtual void | update_state ()
| function for future use which is called at each time td; Should call initialize()!
void | ricatti_step ()
| redesign one step of the
void | redesign ()
| Redesign control strategy.
vec | apply (const vec &state, const vec &ukm)
| compute control action
virtual vec | apply (const vec &cond)
| apply control strategy to obtain control input
## Protected Attributes
shared_ptr< StateSpace< fsqmat > > | S
| StateSpace model from which we read data.
vec | y_req
| required value of the output y at time t (assumed constant)
vec | u_req
| required value of the output y at time t (assumed constant)
int | horizon
| Control horizon, set to maxint for infinite horizons.
mat | Qy
| penalization matrix Qy
mat | Qu
| penalization matrix Qu
int | td
| time of the design step - from horizon->0
mat | L
| controller parameters
temporary storage for ricatti - use initialize
convenience parameters
int | dimx
int | dimy
| convenience parameters
int | dimu
| convenience parameters
mat | pr
| parameters
mat | qux
| penalization
mat | qyx
| penalization
mat | s
| internal quadratic form
mat | qy
| penalization
mat | hqy
| pre_qr part
mat | pre_qr
| pre qr matrix
mat | post_qr
| post qr matrix

## Member Function Documentation

void bdm::LQG::initialize | ( |  | ) |

set system parameters from Kalman filter

refresh temporary storage - inefficient can be improved

References dimu, dimy, hqy, post_qr, pr, pre_qr, Qu, qux, Qy, qyx, s, and S.

Referenced by set_control_parameters().

The documentation for this class was generated from the following files:

- ctrlbase.h
- ctrlbase.cpp