gives the estimator gain matrix for the StateSpaceModel ssm, such that the poles of the estimator are pi.


specifies the measured outputs outi to use.

Details and Options

  • EstimatorGains is also known as observer gains or observer pole placement.
  • The state-space model ssm can be given as StateSpaceModel[{a,b,c,d}], where a, b, c, and d represent the state, input, output, and transmission matrices in either a continuous-time or a discrete-time system:
  • continuous-time system
    discrete-time system
  • If ssm is observable, the eigenvalues of will be {p1,p2,,pn}, where is the computed estimator gain matrix.
  • For a descriptor system StateSpaceModel[{a,b,c,d,e}], the number of poles that can be specified is determined by the rank of e and the observability of the system.
  • EstimatorGains also accepts nonlinear systems specified by AffineStateSpaceModel and NonlinearStateSpaceModel.
  • For nonlinear systems, the operating values of state and input variables are taken into consideration, and the gains are computed based on the approximate Taylor linearization.
  • EstimatorGains[{ssm,{out1,}},] is equivalent to EstimatorGains[ssm1,], where ssm1SystemsModelExtract[ssm,All,{out1,}].
  • The observer dynamics are given by:
  • continuous-time system
    discrete-time system
  • In the case of a square nonsingular matrix , the state vector can be computed as x=TemplateBox[{c}, Inverse].(y-d.u).
  • EstimatorGains accepts a Method option with settings given by:
  • Automaticautomatic method selection
    "Ackermann"Ackermann method
    "KNVD"KautskyNicholsVan Dooren method
  • The estimator gains are computed as the state feedback gains of the dual system.


open allclose all

Basic Examples  (3)

Compute estimator gains for a continuous-time system:

A discrete-time system:

Estimator gains for a two-output system with only the second output measured:

Scope  (6)

A set of gains for a SISO system:

Verify the solution:

An observer gain matrix for a two-output system:

Estimator gain matrix for a three-output system with specified measurements:

Compute the estimator gains with poles specified as the roots of a polynomial:

Determine estimator gains symbolically:

Compute the gains for an AffineStateSpaceModel:

Assemble the estimator:

The estimator poles are at the desired location:

Options  (6)

Method  (6)

For systems with more outputs than states, Automatic finds the gains using LinearSolve:

The Ackermann method is used by default for systems with exact values:

The Ackermann method is also used for symbolic values:

For systems with numeric values, Automatic uses the "KNVD" method:

An inexact, multiple-output state-space model and desired estimator pole locations:

Find the condition number of the observability matrix for the first input:

Find the condition number of the observability matrix for the second input:

By default, the output with the lowest condition number is chosen:

Find gains for estimation through the first output:

The KNVD method uses all available outputs to estimate the states:

Applications  (2)

Construct an observer for a continuous-time system:

Simulate the system with input Sin[t] and from a random initial condition:

Compare each state and its estimate:

Construct an observer for a zero-input sampled-data system:

Compute the actual and estimated states for initial states {1,0.75,0.5} and initial observer states {0,0,0}:

Examine the state tracking achieved by the observer:

Properties & Relations  (7)

The error dynamics:

StateOutputEstimator assembles an observer that estimates both the states and outputs:

The prediction estimator dynamics for a discrete-time system:

Estimator gains are the conjugate transpose of state feedback gains of the dual system:

Or vice versa:

For an observable, nonsingular descriptor system, all the estimator poles can be placed: »

For a singular system that is observable, only MatrixRank[e] poles can be placed:

An impulsive system where only the slow subsystem is observable:

Only the estimator pole for the slow system can be placed:

Possible Issues  (4)

The KNVD method does not handle exact systems with fewer outputs than states:

Evaluate numerically:

The KNVD method does not support a pole multiplicity greater than the number of outputs:

Use the Ackermann method:

The KNVD method can give different sets of gains on different computer systems:

The observer's eigenvalues are the same:

The system must be observable:

It is not observable:

Wolfram Research (2010), EstimatorGains, Wolfram Language function, (updated 2014).


Wolfram Research (2010), EstimatorGains, Wolfram Language function, (updated 2014).


@misc{reference.wolfram_2020_estimatorgains, author="Wolfram Research", title="{EstimatorGains}", year="2014", howpublished="\url{}", note=[Accessed: 05-March-2021 ]}


@online{reference.wolfram_2020_estimatorgains, organization={Wolfram Research}, title={EstimatorGains}, year={2014}, url={}, note=[Accessed: 05-March-2021 ]}


Wolfram Language. 2010. "EstimatorGains." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014.


Wolfram Language. (2010). EstimatorGains. Wolfram Language & System Documentation Center. Retrieved from