Main Content

Closed-loop pole locations have a direct impact on time response characteristics such as
rise time, settling time, and transient oscillations. Root locus uses compensator gains to
move closed-loop poles to achieve design specifications for SISO systems. You can, however,
use state-space techniques to assign closed-loop poles. This design technique is known as *pole placement*, which differs from root locus in the
following ways:

Using pole placement techniques, you can design dynamic compensators.

Pole placement techniques are applicable to MIMO systems.

Pole placement requires a state-space model of the system (use `ss`

to
convert other model formats to state space). In continuous time, such models are of the
form

$$\begin{array}{l}\dot{x}=Ax+Bu\\ y=Cx+Du\end{array}$$

where *u* is the vector of control inputs, *x* is the
state vector, and *y* is the vector of measurements.

Under state feedback $$u=-Kx$$, the closed-loop dynamics are given by

$$\dot{x}=(A-BK)x$$

and the closed-loop poles are the eigenvalues of
*A*-*BK*. Using the `place`

function, you can compute a gain matrix *K* that
assigns these poles to any desired locations in the complex plane (provided that
(*A*,*B*) is controllable).

For example, for state matrices

and
*A*

, and vector
*B*

that contains the desired locations of the closed
loop poles, *p*

K = place(A,B,p);

computes an appropriate gain matrix

.*K*

You cannot implement the state-feedback law $$u=-Kx$$ unless the full state *x* is measured. However, you can
construct a state estimate $$\xi $$ such that the law $$u=-K\xi $$ retains similar pole assignment and closed-loop properties. You can
achieve this by designing a state estimator (or observer) of the form

$$\dot{\xi}=A\xi +Bu+L(y-C\xi -Du)$$

The estimator poles are the eigenvalues of *A*-*LC*,
which can be arbitrarily assigned by proper selection of the estimator gain matrix
*L*, provided that (*C, A*) is observable. Generally,
the estimator dynamics should be faster than the controller dynamics (eigenvalues of
*A*-*BK*).

Use the `place`

function to calculate the
*L* matrix

L = place(A',C',q).'

where `A`

and `C`

are the state and output matrices,
and `q`

is the vector containing the desired closed-loop poles for the
observer.

Replacing *x* by its estimate $$\xi $$ in $$u=-Kx$$ yields the dynamic output-feedback compensator

$$\begin{array}{l}\dot{\xi}=[A-LC-(B-LD)K]\xi +Ly\\ u=-K\xi \end{array}$$

Note that the resulting closed-loop dynamics are

$$\left[\begin{array}{c}\dot{x}\\ \dot{e}\end{array}\right]=\left[\begin{array}{cc}A-BK& BK\\ 0& A-LC\end{array}\right]\left[\begin{array}{c}x\\ e\end{array}\right],\text{\hspace{1em}}e=x-\xi $$

Hence, you actually assign all closed-loop poles by independently placing the
eigenvalues of *A*-*BK* and
*A*-*LC*.

Given a continuous-time state-space model

sys_pp = ss(A,B,C,D)

with seven outputs and four inputs, suppose you have designed

A state-feedback controller gain

`K`

using inputs 1, 2, and 4 of the plant as control inputsA state estimator with gain

`L`

using outputs 4, 7, and 1 of the plant as sensorsInput 3 of the plant as an additional known input

You can then connect the controller and estimator and form the dynamic compensator using this code:

controls = [1,2,4]; sensors = [4,7,1]; known = [3]; regulator = reg(sys_pp,K,L,sensors,known,controls)

You can use functions to

Compute gain matrices

*K*and*L*that achieve the desired closed-loop pole locations.Form the state estimator and dynamic compensator using these gains.

The following table summarizes the functions for pole placement.

Functions |
Description |
---|---|

`estim` |
Form state estimator given estimator gain |

`place` |
Pole placement design |

`reg` |
Form output-feedback compensator given state-feedback and estimator gains |

Pole placement can be badly conditioned if you choose unrealistic pole locations. In particular, you should avoid:

Placing multiple poles at the same location.

Moving poles that are weakly controllable or observable. This typically requires high gain, which in turn makes the entire closed-loop eigenstructure very sensitive to perturbation.