StateFeedbackGains

StateFeedbackGains[sspec,{p1,,pn}]

gives the state feedback gains for the system specification sspec to place its closed-loop poles at pi.

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 closed-loop system poles to be at positions pi.
  • 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 yref and the number of signals yref.
  • Pole placement works for linear systems as specified by StateSpaceModel:
  • continuous-time system
    discrete-time system
  • The performance of the resulting closed-loop system csys is primarily determined by the location of the poles pi.
  • 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 uf, yt and yref 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"sysany one of the models
    "FeedbackInputs"Allthe feedback inputs uf
    "TrackedOutputs"Nonethe tracked outputs yt
    "TrackedSignal"Automaticthe dynamics of yref
  • 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]]continuous-time system
    Function[{r,k},r[k+1]-r[k]]discrete-time system
  • The feedback inputs and tracked outputs can have the following forms:
  • {num1,,numn}numbered inputs numi used by StateSpaceModel, AffineStateSpaceModel and NonlinearStateSpaceModel
    {name1,,namen}named inputs namei used by SystemModel
    Alluses 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 closed-loop 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 {gm1,gm2}
    "FeedbackInputs"inputs uf of sys used for feedback
    "InputModel"input model sys
    "InputCount"number of inputs u of sys
    "OpenLoopPoles"poles of "DesignModel"
    "OutputCount"number of outputs y of sys
    "SamplingPeriod"sampling period of sys
    "StateCount"number of states x of sys
    "TrackedOutputs"outputs yt 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:
  • Automaticautomatic method selection
    "Ackermann"Ackermann method
    "KNVD"KautskyNicholsVan Dooren method

Examples

open allclose all

Basic Examples  (3)

The feedback gains for a system specification sspec with a feedback uf and exogenous input ue:

A set of poles:

The feedback gains:

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:

Stabilize an unstable system:

Compare the open-loop and closed-loop poles:

Scope  (32)

Basic Uses  (8)

Compute the state feedback gain that places the closed-loop pole at p:

The closed-loop system has pole p:

Compute the gain to stabilize an unstable system:

The closed-loop 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 multiple-state 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 multiple-input 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 multiple-input systems:

Choose the first input:

The second:

Both inputs:

Compute the gains for a nonlinear system:

The controller is returned as a vector and takes operating points into consideration:

The controller for the approximate linear system:

Plant Models  (6)

Continuous-time StateSpaceModel:

Discrete-time StateSpaceModel:

Descriptor StateSpaceModel:

AffineStateSpaceModel with no operating point is taken to be 0:

NonlinearStateSpaceModel with no operating point is taken to be 0:

SystemModel:

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 closed-loop system:

The poles of the linearized closed-loop 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:

The design method:

Properties related to the input model:

Get the controller data object:

The list of available properties:

The value of a specific property:

Tracking  (5)

Design a tracking controller:

The closed-loop system tracks the reference signal :

Design a tracking controller for a discrete-time system:

The closed-loop system tracks the reference signal :

Track multiple outputs:

The closed-loop system tracks two different reference signals:

Compute the controller effort:

The controller model:

The controller inputs:

The controller effort:

Track a desired reference signal:

The reference signal is of order 2:

And a sinusoid:

Design a controller to track one output of a first-order system:

The number of pole specifications is k+m q:

Compute the controller:

The closed-loop system tracks the reference:

Closed-Loop System  (3)

Assemble the closed-loop system for a nonlinear plant model:

The closed-loop system with a linearized model:

Compare the response of the two systems:

Assemble the merged closed-loop of a plant with one disturbance and one feedback input:

The unmerged closed-loop system:

When merged, it gives the same result as before:

Explicitly specify the merged closed-loop system:

Create a closed-loop system with a desired name:

The closed-loop system has the specified name:

The name can be directly used to specify the closed-loop model in other functions:

The response simulation plot:

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 multi-input systems:

The "Ackermann" method uses only one input for multi-input systems:

The second input is not used:

The input selected has the lowest controllability matrix condition number:

The "KNVD" closed-loop poles are less sensitive to the feedback gain perturbations than "Ackermann":

Add random perturbations to the gain matrices:

The resulting closed-loop 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 PT:

The nonlinear model of the Segway PT:

Without a controller, the Segway's position and orientation are not balanced:

Design a controller to balance the Segway using pole placement:

Verify the closed-loop poles:

The open-loop system was unstable:

Obtain the closed-loop system:

It is balanced from a nonzero initial position:

So is its response to a nudge:

Assess its control effort:

Design a regulator for a single-link robotic manipulator with a flexible joint:

A model of the system:

The arm's angular position is unregulated:

Design a state feedback controller:

Obtain the closed-loop system:

The feedback controller regulates the arm's angular position:

Obtain the controller model:

The control effort:

Design a discrete-time stabilizing controller for a ball and beam system:

The linear continuous-time model of the system:

Discretize the model with a sampling period of :

The ball's position is unstable if the beam is perturbed:

Compute a stabilizing controller:

Obtain the closed-loop system:

The ball's position is stabilized:

The control effort:

Suppress the oscillations of a two-mass damper system:

The model of the system:

Discretize it with a sampling period of using the zero-order hold method:

The masses and oscillate when perturbed:

Compute state feedback gains for a set of poles within the unit circle:

Compute gains for a set of poles that are less damped:

Obtain the closed-loop systems for each set of poles:

Compare their responses to a perturbation:

Obtain the feedback gains:

Compare their control efforts:

Electromechanical Systems  (1)

Dampen the oscillations on an angular gauge:

The model of the system:

A disturbance of the gauge's position results in significant oscillations:

Set the current i as the feedback input:

Design a state feedback controller to dampen the oscillations:

Verify the closed-loop poles:

Obtain the closed-loop system:

The oscillations are damped:

A sinusoidal torque disturbance is also blocked by the controller:

Obtain the controller model:

Its control effort:

Aerospace Systems  (2)

Improve the handling of an aircraft's response about the longitudinal axis:

The model of the system:

Its pitch angle takes about 1500 seconds to stabilize after an initial perturbation:

Design a controller to improve the response:

Obtain the closed-loop system:

The response of the closed-loop system now stabilizes in about 10 seconds:

Obtain the controller model:

The controller effort:

Design an output feedback controller to regulate an orbiting satellite's trajectory:

A model of the system:

The orbit is unstable if perturbed:

Compute a set of feedback gains:

Compute a set of estimator gains:

Assemble the estimator regulator:

Obtain the closed-loop system:

Compute the response of the closed-loop system:

Obtain the controller model:

Plot the control effort:

Electrical Systems  (3)

Tune the frequency response of a circuit:

A descriptor model of the circuit:

Its step response is highly oscillatory:

The oscillatory response is due to its underdamped poles:

Design a state feedback controller with poles that are not underdamped:

Obtain the closed-loop system:

The oscillations are damped:

Compare the frequency responses of the open- and closed-loop systems:

The control effort:

Tune an active bandpass filter:

A state-space realization of the filter:

Its poles:

Design a set of controllers to improve the filter's characteristics:

The more damped the poles are, the smaller the oscillations:

Design a speed controller for a DC motor:

Set the motor speed as a tracked output:

Compute a pole placement controller:

Compute an estimator:

Assemble an estimator regulator that tracks the motor velocity:

The closed-loop system:

The response to a reference speed of rpm:

The controller effort:

It is volts:

Chemical Systems  (2)

Improve the response of the flow rate in a mixing tank:

The response to a disturbance in the flow rate q2is sluggish:

Design a state feedback controller to accelerate the response:

The closed-loop system:

The response of the closed-loop system is faster:

Obtain the feedback gains:

The control effort:

Improve the response of a two-stage chemical reactor with delayed recycle:

A model of the reactor:

The reactor's response to a perturbation is delayed:

Remove the delay and obtain a minimal realization of the model:

Compute a set of regulator gains:

And a set of estimator gains:

Assemble the estimator regulator using the computed gains:

Assemble a Smith compensator for the original system:

Obtain the closed-loop system of the model with the Smith compensator in the feedback path:

The closed-loop response to an initial perturbation has been improved:

Deadbeat Control  (1)

Solve the deadbeat control problem for a discrete-time system:

The closed-loop system with all poles at the origin:

The order of the open-loop system is :

Thus the closed-loop system's outputs are zero within three steps:

Its plot:

Nautical Systems  (1)

Design a controller for a boat to track a desired heading angle:

A model of the boat:

Design a tracking controller with poles at the desired locations:

The closed-loop system:

The response for various heading angle references:

Obtain the controller model:

The controller inputs:

The control effort increases as the reference value increases:

Properties & Relations  (17)

The state feedback gains are computed for negative feedback:

The closed-loop poles with negative feedback -κ.x:

They are the same as the specified poles:

The closed-loop system is obtained using state feedback:

Obtain it directly as a property:

The control effort increases as the closed-loop poles are moved further away from the open-loop poles:

For a nonlinear system the gains are affine and of the form :

The affine gains:

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:

A set of new stable poles:

The gains of the controller:

The closed-loop poles are the specified poles:

All the poles of a controllable nonsingular descriptor StateSpaceModel can also be controlled:

A set of new stable poles:

The gains of the controller:

The closed-loop 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:

A new stable pole:

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:

A new stable pole:

None of the poles are changed:

LQRegulatorGains and StateFeedbackGains yield the same results for a single-input system:

StateFeedbackGains with the closed-loop poles of the LQRegulatorGains design:

LQRegulatorGains gives the same gains:

The closed-loop poles that minimize ρ c.c x(t)2+u(t)2t can be obtained using the symmetric root locus plot:

The symmetric root locus plot:

The closed-loop 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 closed-loop system for single-input systems:

The closed-loop poles for a gain value κ:

The controllable canonical state-space realization of the system:

For this realization, the state feedback gains are of the form {{κ,0,,0}}:

The closed-loop poles for a gain value κ:

The controllable canonical state-space 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 input-blocking properties of a system:

The zeros of the system:

The closed-loop system for a specific set of poles:

Both the open- and closed-loop systems block the input Sin[2t]:

The closed-loop system becomes unobservable if the state feedback makes a pole and a zero coincident:

The closed-loop system with the pole coinciding with the zero:

The coincident pole-zero pair makes the closed-loop system unobservable:

Possible Issues  (5)

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 gains cannot be calculated for an unstabilizable system:

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

Evaluate numerically:

Or use the Ackermann method:

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

The closed-loop eigenvalues are the same:

Wolfram Research (2010), StateFeedbackGains, Wolfram Language function, https://reference.wolfram.com/language/ref/StateFeedbackGains.html (updated 2021).

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

BibTeX

@misc{reference.wolfram_2023_statefeedbackgains, author="Wolfram Research", title="{StateFeedbackGains}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/StateFeedbackGains.html}", note=[Accessed: 18-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_statefeedbackgains, organization={Wolfram Research}, title={StateFeedbackGains}, year={2021}, url={https://reference.wolfram.com/language/ref/StateFeedbackGains.html}, note=[Accessed: 18-March-2024 ]}