Pole placement design

`K = place(A,B,p)`

[K,prec,message] = place(A,B,p)

Given the single- or multi-input system

$$\dot{x}=Ax+Bu$$

and a vector `p`

of desired self-conjugate
closed-loop pole locations, `place`

computes a gain
matrix `K`

such that the state feedback *u* =
–*Kx* places the closed-loop poles at the
locations `p`

. In other words, the eigenvalues of *A* – *BK* match
the entries of `p`

(up to the ordering).

`K = place(A,B,p)`

places the desired closed-loop poles `p`

by computing a state-feedback gain matrix `K`

. All the inputs of the plant are assumed to be control inputs.
The length of `p`

must match the row size of `A`

. `place`

works
for multi-input systems and is based on the algorithm from [1]. This algorithm uses the extra degrees
of freedom to find a solution that minimizes the sensitivity of the
closed-loop poles to perturbations in *A* or *B*.

`[K,prec,message] = place(A,B,p)`

returns `prec`

,
an estimate of how closely the eigenvalues of *A* – *BK* match
the specified locations `p`

(`prec`

measures
the number of accurate decimal digits in the actual closed-loop poles).
If some nonzero closed-loop pole is more than 10% off from the desired
location, `message`

contains a warning message.

You can also use `place`

for estimator gain
selection by transposing the `A`

matrix and substituting `C'`

for `B`

.

l = place(A',C',p).'

**Pole
Placement Design**

Consider a state-space system `(a,b,c,d)`

with
two inputs, three outputs, and three states. You can compute the feedback
gain matrix needed to place the closed-loop poles at ```
p =
[-1 -1.23 -5.0]
```

by

p = [-1 -1.23 -5.0]; K = place(a,b,p)

[1] Kautsky, J., N.K. Nichols, and P. Van
Dooren, "Robust Pole Assignment in Linear State Feedback," *International
Journal of Control,* 41 (1985), pp. 1129-1155.

[2] Laub, A.J. and M. Wette, *Algorithms
and Software for Pole Assignment and Observers*, UCRL-15646
Rev. 1, EE Dept., Univ. of Calif., Santa Barbara, CA, Sept. 1984.

Was this topic helpful?