Form linear-quadratic-Gaussian (LQG) regulator

`rlqg = lqgreg(kest,k)`

rlqg = lqgreg(kest,k,controls)

`lqgreg `

forms the linear-quadratic-Gaussian
(LQG) regulator by connecting the Kalman estimator designed with `kalman`

and
the optimal state-feedback gain designed with `lqr`

, `dlqr`

,
or `lqry`

. The LQG regulator minimizes some quadratic
cost function that trades off regulation performance and control effort.
This regulator is dynamic and relies on noisy output measurements
to generate the regulating commands.

In continuous time, the LQG regulator generates the commands

$$u=-K\widehat{x}$$

where $$\widehat{x}$$ is the Kalman state estimate. The regulator state-space equations are

$$\begin{array}{l}\dot{\widehat{x}}=[A-LC-(B-LD)K]\widehat{x}+Ly\\ u=-K\widehat{x}\end{array}$$

where *y* is the vector of plant output measurements
(see `kalman`

for background and notation). The following
diagram shows this dynamic regulator in relation to the plant.

In discrete time, you can form the LQG regulator using either
the delayed state estimate $$\widehat{x}[n|n-1]$$ of *x*[*n*],
based on measurements up to *y*[*n–1*],
or the current state estimate $$\widehat{x}[n|n]$$,
based on all available measurements including *y*[*n*].
While the regulator

$$u\left[n\right]=-K\widehat{x}\left[n|n-1\right]$$

is always well-defined,
the *current regulator*

$$u\left[n\right]=-K\widehat{x}\left[n|n\right]$$

is causal only when *I*-*KMD* is
invertible (see `kalman`

for the notation). In addition,
practical implementations of the current regulator should allow for
the processing time required to compute *u*[*n*]
after the measurements *y*[*n*]
become available (this amounts to a time delay in the feedback loop).

See the example LQG Regulation.

Was this topic helpful?