Main Content

# place

Pole placement design

## Syntax

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

## Description

Given the single- or multi-input system

`$\stackrel{˙}{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 ABK 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 ABK 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).' ```

## Examples

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) ```

## Algorithms

`place` uses the algorithm of [1] which, for multi-input systems, optimizes the choice of eigenvectors for a robust solution.

In high-order problems, some choices of pole locations result in very large gains. The sensitivity problems attached with large gains suggest caution in the use of pole placement techniques. See [2] for results from numerical testing.

## References

[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.

## See Also

Introduced before R2006a

## Support

#### Learn how to automatically tune PID controller gains

Download code examples