Documentation Center

  • Trial Software
  • Product Updates


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

where is the Kalman state estimate. The regulator state-space equations are

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 of x[n], based on measurements up to y[n–1], or the current state estimate , based on all available measurements including y[n]. While the regulator

is always well-defined, the current regulator

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.

More About

expand all


rlqg = lqgreg(kest,k) returns the LQG regulator rlqg (a state-space model) given the Kalman estimator kest and the state-feedback gain matrix k. The same function handles both continuous- and discrete-time cases. Use consistent tools to design kest and k:

  • Continuous regulator for continuous plant: use lqr or lqry and kalman

  • Discrete regulator for discrete plant: use dlqr or lqry and kalman

  • Discrete regulator for continuous plant: use lqrd and kalmd

In discrete time, lqgreg produces the regulator

  • when kest is the "current" Kalman estimator

  • when kest is the "delayed" Kalman estimator

For more information on Kalman estimators, see the kalman reference page.

rlqg = lqgreg(kest,k,controls) handles estimators that have access to additional deterministic known plant inputs ud. The index vector controls then specifies which estimator inputs are the controls u, and the resulting LQG regulator rlqg has ud and y as inputs (see the next figure).

    Note   Always use positive feedback to connect the LQG regulator to the plant.

See Also

| | | | | |

Was this topic helpful?