Pole placement design
K = place(A,B,p)
[K,prec,message] = place(A,B,p)
Given the single- or multi-input system
?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)
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.