gives the state feedback gain matrix for the state-space model ssm, such that the poles of the closed-loop system are pi.


specifies control inputs ini to use.

Details and Options

  • StateFeedbackGains is also known as pole placement gains.
  • The state-space model ssm can be given as StateSpaceModel[{a,b,}], where a and b represent the state and input matrices in either a continuous-time or a discrete-time system:
  • continuous-time system
    discrete-time system
  • If ssm is controllable, the eigenvalues of will be {p1,p2,,pn}, where is the computed state feedback 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 controllability of the system.
  • StateFeedbackGains 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 and returned as a vector.
  • StateFeedbackGains[{ssm,{in1,}},] is equivalent to StateFeedbackGains[ssm1,], where ssm1SystemsModelExtract[ssm,{in1,}].
  • StateFeedbackGains accepts a Method option with settings given by:
  • Automaticautomatic method selection
    "Ackermann"Ackermann method
    "KNVD"KautskyNicholsVan Dooren method


open allclose all

Basic Examples  (4)

Place the poles at :

Place all the eigenvalues of a discrete-time system at the origin:

Eigenvalue assignment for a two-input system:

Calculate the feedback gains for a two-input system, using the first input:

Scope  (6)

Compute the state feedback gains that place poles at specific locations:

Verify the result:

The state feedback gains for a multiple-input system:

Gains for a system in which only the third and the fifth inputs are feedback inputs:

Shift the pole of an integrator to :

Feedback gain for a symbolic first-order system:

The closed-loop system:

Compute the state feedback gains of a symbolic discrete-time system:

The poles of the closed-loop system:

Compute the gains for a NonlinearStateSpaceModel:

The closed-loop system:

The poles of the closed-loop system:

Options  (5)

Method  (5)

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

For systems with exact or symbolic values, Automatic uses the "Ackermann" method:

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

By default, the KNVD method is chosen for inexact inputs:

The solution using Ackermann's formula:

The KNVD method is more robust:

An inexact, multiple-input state-space model and desired closed-loop pole locations:

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

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

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

Find gains for feedback through the second input:

Applications  (5)

Stabilize a system using state feedback:

A system with two masses, a spring, and a damper:

The choice of poles can be used to tune the response of the system:

The gain gives an overdamped response, while results in a slightly damped system:

Compute the state feedback gains to regulate an inverted pendulum about the upright position:

Displacements and of the cart and the pendulum from an initial cart position of :

The displacements are also regulated when disturbances are present:

The motion of a spacecraft linearized about a circular Kepler orbit:

Determine a set of thruster commands to regain the nominal trajectory after an initial disturbance:

The response plot:

Solve the deadbeat control problem of determining the control input required to bring the output of a discrete-time system to zero in the smallest number of time steps:

With the poles at the origin, the output of a third-order system is zero in three time steps:

Properties & Relations  (6)

Use SystemsModelStateFeedbackConnect to obtain the closed-loop system:

A larger displacement between the open- and closed-loop poles requires a larger control effort:

The distances between the open- and closed-loop poles and the corresponding gain norms:

State feedback does not affect the input-blocking properties of a system:

The input Sin[2t] is blocked by both systems:

The closed-loop system is unobservable if the feedback moves any of the poles to the zeros:

The system ssm has a zero at the pole location -4:

For a nonsingular descriptor system, all the closed-loop poles can be placed. »

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

An impulsive system where only the slow subsystem is controllable:

Only the poles of the slow system can be placed:

Possible Issues  (3)

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

The closed-loop eigenvalues are the same:

For a MIMO system, the Ackermann method uses only one of the inputs as the feedback input:

With the default KNVD method, the control effort is shared between all the feedback inputs:

Arbitrary pole assignment by state feedback requires a controllable model:

Verify controllability:

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


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


@misc{reference.wolfram_2020_statefeedbackgains, author="Wolfram Research", title="{StateFeedbackGains}", year="2014", howpublished="\url{}", note=[Accessed: 19-April-2021 ]}


@online{reference.wolfram_2020_statefeedbackgains, organization={Wolfram Research}, title={StateFeedbackGains}, year={2014}, url={}, note=[Accessed: 19-April-2021 ]}


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


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