Main Content

Pole Placement

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


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

State-Feedback Gain Selection

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


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 A and B, and vector p that contains the desired locations of the closed loop poles,

K = place(A,B,p);

computes an appropriate gain matrix K.

State Estimator Design

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


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 ξ in u=Kx yields the dynamic output-feedback compensator


Note that the resulting closed-loop dynamics are


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 inputs

  • A state estimator with gain L using outputs 4, 7, and 1 of the plant as sensors

  • Input 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)

Pole Placement Tools

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.




Form state estimator given estimator gain


Pole placement design


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.

See Also

| |