StateFeedbackGains
StateFeedbackGains[sspec,{p_{1},…,p_{n}}]
gives the state feedback gains for the system specification sspec to place its closedloop poles at p_{i}.
StateFeedbackGains[…,"prop"]
gives the value of the property "prop".
Details and Options
 StateFeedbackGains is also known as pole placement or eigenvalue placement.
 StateFeedbackGains is used to compute a regulating controller or tracking controller.
 StateFeedbackGains works by modifying the closedloop system poles to be at positions p_{i}.
 A regulating controller aims to maintain the system at an equilibrium state despite disturbances pushing it away. Typical examples include maintaining an inverted pendulum in its upright position or maintaining an aircraft in level flight.
 The regulating controller is given by a control law of the form , where is the computed gain matrix.
 The number of poles n to place is given by SystemsModelOrder of the system sys.
 A tracking controller aims to track a reference signal despite disturbances interfering with it. Typical examples include a cruise control system for a car or path tracking for a robot.
 The tracking controller is given by a control law of the form , where is the computed gain matrix for the augmented system that includes the system sys as well as the dynamics for .
 The number of poles n to place is given by , where is given by SystemsModelOrder of sys, the order of y_{ref} and the number of signals y_{ref}.
 Pole placement works for linear systems as specified by StateSpaceModel:

continuoustime system discretetime system  The performance of the resulting closedloop system csys is primarily determined by the location of the poles p_{i}.
 Typically there are performance constraints such as settling time and quality constraints such as overshoot. These correspond to certain regions that are desirable pole locations.
 The system specification sspec is the system sys together with the u_{f}, y_{t} and y_{ref} specifications.
 The system specification sspec can have the following forms:

StateSpaceModel[…] linear control input and linear state AffineStateSpaceModel[…] linear control input and nonlinear state NonlinearStateSpaceModel[…] nonlinear control input and nonlinear state SystemModel[…] general system model <… > detailed system specification given as an Association  The detailed system specification can have the following keys:

"InputModel" sys any one of the models "FeedbackInputs" All the feedback inputs u_{f} "TrackedOutputs" None the tracked outputs y_{t} "TrackedSignal" Automatic the dynamics of y_{ref}  The tracked signal dynamics is given as a function of the reference signal and time variable. By default, it is assumed to be constant.

Function[{r, t},r'[t]] continuoustime system Function[{r,k},r[k+1]r[k]] discretetime system  The feedback inputs and tracked outputs can have the following forms:

{num_{1},…,num_{n}} numbered inputs num_{i} used by StateSpaceModel, AffineStateSpaceModel and NonlinearStateSpaceModel {name_{1},…,name_{n}} named inputs name_{i} used by SystemModel All uses all inputs  For nonlinear systems such as AffineStateSpaceModel, NonlinearStateSpaceModel and SystemModel, the system will be linearized around its stored operating point.
 StateFeedbackGains[…,"Data"] returns a SystemsModelControllerData object cd that can be used to extract additional properties using the form cd["prop"].
 StateFeedbackGains[…,"prop"] can be used to directly get the value of cd["prop"].
 Possible values for properties "prop" include:

"ClosedLoopPoles" poles of the linearized "ClosedLoopSystem" "ClosedLoopSystem" system csys {"ClosedLoopSystem", cspec} detailed control over the form of the closedloop system "ControllerModel" model cm "Design" type of controller design "DesignModel" model used for the design "FeedbackGains" gain matrix κ or its equivalent "FeedbackGainsModel" model gm or {gm_{1},gm_{2}} "FeedbackInputs" inputs u_{f} of sys used for feedback "InputModel" input model sys "InputsCount" number of inputs u of sys "OpenLoopPoles" poles of "DesignModel" "OutputsCount" number of outputs y of sys "SamplingPeriod" sampling period of sys "StatesCount" number of states x of sys "TrackedOutputs" outputs y_{t} of sys that are tracked  Possible keys for cspec include:

"InputModel" input model in csys "Merge" whether to merge csys "ModelName" name of csys  The diagram of the regulator layout.
 The diagram of the tracker layout.
 StateFeedbackGains accepts a Method option with settings given by:

Automatic automatic method selection "Ackermann" Ackermann method "KNVD" Kautsky–Nichols–Van Dooren method
Examples
open allclose allBasic Examples (7)
The feedback gains for a StateSpaceModel and specified pole locations:
The feedback gains for a twoinput system:
Use only the first control input:
The feedback gains for a discretetime system:
The feedback gains for a nonlinear system:
The gains have an offset because of the nonzero operating points:
The gains of the approximate linearized system do not have the offset:
The feedback gains for a tracking problem:
Scope (32)
Basic Uses (8)
Compute the state feedback gain that places the closedloop pole at p:
The closedloop system has pole p:
Compute the gain to stabilize an unstable system:
The closedloop system has pole :
The unstable pole and the stabilized pole can be seen in the system's responses:
Compute the state feedback gains for a multiplestate system:
The dimensions of the result correspond to the number of inputs and the system's order:
Compute the gains for a system with 2 inputs and 3 states:
Place the poles at conjugate pole locations:
If the poles are not complex conjugate, the gains will be complex:
Place the poles at conjugate pole locations for a multipleinput system:
If the poles are not complex conjugate, the control will be complex and use only one of the inputs:
The first input is not used for feedback:
Choose the feedback inputs for multipleinput systems:
Compute the gains for a nonlinear system:
The controller is returned as a vector and takes operating points into consideration:
Plant Models (6)
Properties (10)
StateFeedbackGains returns the feedback gains by default:
In general, the feedback is affine in the states:
It is of the form κ_{0}+κ_{1}.x, where κ_{0} and κ_{1} are constants:
The systems model of the feedback gains:
An affine feedback gains systems model:
The poles of the linearized closedloop system:
They should be the specified poles:
The model used to compute the feedback gains:
The feedback gains of the input model and the design model, respectively:
Properties related to the input model:
Get the controller data object:
Tracking (5)
The closedloop system tracks the reference signal :
Design a tracking controller for a discretetime system:
The closedloop system tracks the reference signal :
The closedloop system tracks two different reference signals:
Compute the controller effort:
Track a desired reference signal:
The reference signal is of order 2:
Design a controller to track one output of a firstorder system:
ClosedLoop System (3)
Assemble the closedloop system for a nonlinear plant model:
The closedloop system with a linearized model:
Compare the response of the two systems:
Assemble the merged closedloop of a plant with one disturbance and one feedback input:
The unmerged closedloop system:
When merged, it gives the same result as before:
Explicitly specify the merged closedloop system:
Create a closedloop system with a desired name:
The closedloop system has the specified name:
The name can be directly used to specify the closedloop model in other functions:
Options (6)
Method (6)
The "Ackermann" method is used by default for systems with exact or symbolic values:
The "KNVD" method is used by default for inexact systems:
LinearSolve is used for inexact systems with at least as many inputs as states:
The "KNVD" method is typically used for multiinput systems:
The "Ackermann" method uses only one input for multiinput systems:
The input selected has the lowest controllability matrix condition number:
The "KNVD" closedloop poles are less sensitive to the feedback gain perturbations than "Ackermann":
Add random perturbations to the gain matrices:
The resulting closedloop poles:
The maximum error from the specified poles is smaller for the "KNVD" method:
Applications (14)
Mechanical Systems (4)
Design a balancing controller for a Segway:
The nonlinear model of the system:
Design a controller that places the poles at the specified locations:
The openloop system was unstable:
The nonlinear closedloop system of the Segway with the stabilizing controller:
The response of the system to a set of initial conditions:
The response of the system to an impulse like input:
Compute the controller effort of the closedloop system:
Design a regulator for a singlelink robotic manipulator with a flexible joint:
Design a statefeedback controller:
The response of the system for a set of initial conditions:
The nonlinear controller model:
Compute and plot the control effort:
Design a discretetime stabilizing controller for a ball and beam system:
The linear continuoustime model of the system:
Discretize the model with a sampling period of 0.2:
The openloop system is unstable:
Compute a stabilizing controller:
The stabilized response of the ball for a nonzero initial displacement:
Suppress the oscillations of a two massdamper system:
Discretize it with a sampling period of 0.4 using the zeroorder hold method:
The openloop response is unstable:
Design a set of state feedback gains with poles at desired locations within the unit circle:
Design another set of gains with poles that are less damped:
Assemble a zero input signal to the system:
Compare the responses of the two designs to an initial condition:
Electromechanical Systems (1)
Aerospace Systems (2)
Improve the handling of an aircraft's response about the longitudinal axis:
It's response to an initial perturbation takes about 1500 seconds to stabilize:
Design a controller to improve the response:
The response of the closedloop system now stabilizes in about 10 seconds:
Design an output feedback controller to regulate an orbiting satellite's trajectory:
Compute a set of feedback and estimator gains:
Assemble the estimator regulator:
Electrical Systems (2)
Tune the frequency response of a circuit:
A descriptor model of the circuit:
Its response has a large magnitude at certain frequencies:
Compute the gains for a set of dampening poles:
Plot the closedloop response:
The peak of the frequency response is eliminated in the compensated circuit:
Tune an active bandpass filter:
A statespace realization of the filter:
Design a set of controllers to improve the filter characteristics:
The oscillations is the filter's response are gradually eliminated:
Chemical Systems (2)
Improve the response of the flow rate in a mixing tank:
The response to a disturbance in the flow rate q_{2}is sluggish:
Design a statefeedback controller to accelerate the response:
The response of the closedloop system is faster:
Balance the material in a two stage chemical reactor with delayed recycle:
Remove the delay and obtain a minimal realization of the model:
Compute a set of regulator gains:
Assemble the estimator regulator using the computed gains:
Assemble a Smith compensator for the original system:
Obtain the closedloop system of the model with the Smith compensator in the feedback path:
The closedloop response to an initial perturbation has been improved:
Deadbeat Control (1)
Tracking (2)
Design a speed controller for a DC motor:
Design a controller that places poles at the specified locations:
The response to a reference speed of rpm:
Design a ship controller that can track the desired heading angle:
Design a tracking controller with poles at the desired locations:
The response for various reference inputs:
The control effort for the various reference values:
The control effort increases as the reference value increases:
Properties & Relations (17)
The state feedback gains are computed for negative feedback:
The closedloop poles with negative feedback κ.x:
They are the same as the specified poles:
The closedloop system is obtained using state feedback:
Obtain it directly as a property:
The control effort increases as the closedloop poles are moved further away from the openloop poles:
For a nonlinear system the gains are affine and of the form :
The gains of the linearized system are linear of the form :
The affine gains are obtained by solving :
All the poles of a controllable standard StateSpaceModel can be controlled using state feedback:
The closedloop poles are the specified poles:
All the poles of a controllable nonsingular descriptor StateSpaceModel can also be controlled:
The closedloop poles are the specified poles:
Only a subsystem of an an uncontrollable standard StateSpaceModel can be controlled:
The eigenvalue is controllable and is not:
Move only the controllable eigenvalue to :
It is not possible to move the uncontrollable eigenvalue:
Only the poles of the controllable slow subsystem of a nonsingular descriptor can be controlled:
The dimension of the slow subsystem:
The gain corresponding to the fast subsystem is :
The pole of the slow subsystem is moved to the desired location and the pole at corresponding to the fast subsystem is unchanged:
The complete system is uncontrollable and is of order less than the number of states:
None of the poles of the controllable slow subsystem of a nonsingular descriptor can be controlled:
The dimension of the slow subsystem:
None of the poles are changed:
LQRegulatorGains and StateFeedbackGains yield the same results for a singleinput system:
StateFeedbackGains with the closedloop poles of the LQRegulatorGains design:
LQRegulatorGains gives the same gains:
The closedloop poles that minimize ρ c.c x(t)^{2}+u(t)^{2}t can be obtained using the symmetric root locus plot:
The symmetric root locus plot:
The closedloop poles for the parameter value :
The feedback gains to place the poles at the specified locations:
The same gains are obtained using LQRegulatorGains:
For a StateSpaceModel, StateFeedbackGains and FullInformationOutputRegulator give the same results:
An estimator regulator is assembled using state feedback and estimator gain matrices:
The estimator regulator with the computed gains:
State feedback gains correspond to the gain in the closedloop system for singleinput systems:
The closedloop poles for a gain value κ:
The controllable canonical statespace realization of the system:
For this realization, the state feedback gains are of the form {{κ,0,…,0}}:
The closedloop poles for a gain value κ:
The controllable canonical statespace realization of the system:
For this realization, the state feedback gains are of the form {{κ,0,…,0}}:
The state feedback and estimator gains are duals of each other:
The state feedback gains of the system for a set of poles:
The estimator gains of the dual system for the conjugate set of poles:
The state feedback gain matrix is the conjugate transpose of the estimator gain matrix and conversely:
State feedback does not alter the inputblocking properties of a system:
The closedloop system for a specific set of poles:
Both the open and closedloop systems block the input Sin[2t]:
The closedloop system becomes unobservable if the state feedback makes a pole and a zero coincident:
The closedloop system with the pole coinciding with the zero:
The coincident polezero pair makes the closedloop system unobservable:
Possible Issues (4)
The gains cannot be calculated for an uncontrollable system:
An uncontrollable descriptor system:
The dimension of the slow subsystem:
None of the poles are changed:
The KNVD method does not handle exact systems with fewer inputs than states:
The KNVD method can give different sets of gains on different computer systems:
Text
Wolfram Research (2010), StateFeedbackGains, Wolfram Language function, https://reference.wolfram.com/language/ref/StateFeedbackGains.html (updated 2021).
CMS
Wolfram Language. 2010. "StateFeedbackGains." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/StateFeedbackGains.html.
APA
Wolfram Language. (2010). StateFeedbackGains. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StateFeedbackGains.html