BREAKING NEWS
Ackermann's formula

## Summary

In control theory, Ackermann's formula is a control system design method for solving the pole allocation problem for invariant-time systems by Jürgen Ackermann.[1] One of the primary problems in control system design is the creation of controllers that will change the dynamics of a system by changing the eigenvalues of the matrix representing the dynamics of the closed-loop system.[2] This is equivalent to changing the poles of the associated transfer function in the case that there is no cancellation of poles and zeros.

## State feedback control

Consider a linear continuous-time invariant system with a state-space representation

${\displaystyle {\dot {x}}(t)=Ax(t)+Bu(t)}$
${\displaystyle y(t)=Cx(t)}$

where x is the state vector, u is the input vector, and A, B and C are matrices of compatible dimensions that represent the dynamics of the system. An input-output description of this system is given by the transfer function

${\displaystyle G(s)=C(sI-A)^{-1}B=C\ {\frac {\operatorname {Adj} (sI-A)}{\det(sI-A)}}\ B.}$

Since the denominator of the right equation is given by the characteristic polynomial of A, the poles of G are eigenvalues of A (note that the converse is not necessarily true, since there may be cancellations between terms of the numerator and the denominator). If the system is unstable, or has a slow response or any other characteristic that does not specify the design criteria, it could be advantageous to make changes to it. The matrices A, B and C, however, may represent physical parameters of a system that cannot be altered. Thus, one approach to this problem might be to create a feedback loop with a gain K that will feed the state variable x into the input u.

If the system is controllable, there is always an input ${\displaystyle u(t)}$ such that any state ${\displaystyle x_{0}}$ can be transferred to any other state ${\displaystyle x(t)}$. With that in mind, a feedback loop can be added to the system with the control input ${\displaystyle u(t)=r(t)-Kx(t)}$, such that the new dynamics of the system will be

${\displaystyle {\dot {x}}(t)=Ax(t)+B[r(t)-Kx(t)]=[A-BK]x(t)+Br(t)}$
${\displaystyle y(t)=Cx(t).}$

In this new realization, the poles will be dependent on the characteristic polynomial ${\displaystyle \Delta _{new}}$ of ${\displaystyle A-BK}$, that is

${\displaystyle \Delta _{\text{new}}(s)=\det(sI-(A-BK)).}$

## Ackermann's formula

Computing the characteristic polynomial and choosing a suitable feedback matrix can be a challenging task, especially in larger systems. One way to make computations easier is through Ackermann's formula. For simplicity's sake, consider a single input vector with no reference parameter ${\displaystyle r}$, such as

${\displaystyle u(t)=-k^{T}x(t)}$
${\displaystyle {\dot {x}}(t)=Ax(t)-Bk^{T}x(t),}$

where ${\displaystyle k^{T}}$ is a feedback vector of compatible dimensions. Ackermann's formula states that the design process can be simplified by only computing the following equation:

${\displaystyle k^{T}=\left[0\ 0\ \cdots \ 0\ 1\right]{\mathcal {C}}^{-1}\Delta _{\text{new}}(A),}$

in which ${\displaystyle \Delta _{\text{new}}(A)}$ is the desired characteristic polynomial evaluated at matrix ${\displaystyle A}$, and ${\displaystyle {\mathcal {C}}}$ is the controllability matrix of the system.

### Proof

This proof is based on Encyclopedia of Life Support Systems entry on Pole Placement Control.[3] Assume that the system is controllable. The characteristic polynomial of ${\displaystyle A_{CL}:=(A-Bk^{T})}$ is given by

${\displaystyle \Delta (A_{CL})=(A_{CL})^{n}+\sum _{k=0}^{n-1}\alpha _{k}A_{CL}^{k}}$

Calculating the powers of ${\displaystyle A_{CL}}$ results in

{\displaystyle {\begin{aligned}(A_{CL})^{0}&=(A-Bk^{T})^{0}=I\\(A_{CL})^{1}&=(A-Bk^{T})^{1}=A-Bk^{T}\\(A_{CL})^{2}&=(A-Bk^{T})^{2}=A^{2}-ABk^{T}-Bk^{T}A+(Bk^{T})^{2}=A^{2}-ABk^{T}-(Bk^{T})[A-Bk^{T}]=A^{2}-ABk^{T}-Bk^{T}A_{CL}\\\vdots \\(A_{CL})^{n}&=(A-Bk^{T})^{n}=A^{n}-A^{n-1}Bk^{T}-A^{n-2}Bk^{T}A_{CL}-\cdots -Bk^{T}A_{CL}^{n-1}\end{aligned}}}

Replacing the previous equations into ${\displaystyle \Delta (A_{CL})}$ yields

{\displaystyle {\begin{aligned}\Delta (A_{CL})&=(A^{n}-A^{n-1}Bk^{T}-A^{n-2}Bk^{T}A_{CL}-\cdots -Bk^{T}A_{CL}^{n-1})+\cdots +\alpha _{2}(A^{2}-ABk^{T}-Bk^{T}A_{CL})+\alpha _{1}(A-Bk^{T})+\alpha _{0}I\\&=(A^{n}+\alpha _{n-1}A^{n-1}+\cdots +\alpha _{2}A^{2}+\alpha _{1}A+\alpha _{0}I)-(A^{n-1}Bk^{T}+A^{n-2}Bk^{T}A_{CL}+\cdots +Bk^{T}A_{CL}^{n-1})+\cdots -\alpha _{2}(ABk^{T}+Bk^{T}A_{CL})-\alpha _{1}(Bk^{T})\\&=\Delta (A)-(A^{n-1}Bk^{T}+A^{n-2}Bk^{T}A_{CL}+\cdots +Bk^{T}A_{CL}^{n-1})-\cdots -\alpha _{2}(ABk^{T}+Bk^{T}A_{CL})-\alpha _{1}(Bk^{T})\end{aligned}}}
Rewriting the above equation as a matrix product and omitting terms that ${\displaystyle k^{T}}$ does not appear isolated yields

${\displaystyle \Delta (A_{CL})=\Delta (A)-\left[B\ \ AB\ \ \cdots \ \ A^{n-1}B\right]\left[{\begin{array}{c}\star \\\vdots \\k^{T}\end{array}}\right]}$

From the Cayley–Hamilton theorem, ${\displaystyle \Delta \left(A_{CL}\right)=0}$, thus

${\displaystyle \left[B\ \ AB\ \ \cdots \ \ A^{n-1}B\right]\left[{\begin{array}{c}\star \\\vdots \\k^{T}\end{array}}\right]=\Delta (A)}$

Note that ${\displaystyle {\mathcal {C}}=\left[B\ \ AB\ \ \cdots \ \ A^{n-1}B\right]}$ is the controllability matrix of the system. Since the system is controllable, ${\displaystyle {\mathcal {C}}}$ is invertible. Thus,

${\displaystyle \left[{\begin{array}{c}\star \\\vdots \\k^{T}\end{array}}\right]={\mathcal {C}}^{-1}\Delta (A)}$

To find ${\displaystyle k^{T}}$, both sides can be multiplied by the vector ${\displaystyle \left[{\begin{array}{ccccc}0&0&0&\cdots &1\end{array}}\right]}$ giving

${\displaystyle \left[{\begin{array}{ccccc}0&0&0&\cdots &1\end{array}}\right]\left[{\begin{array}{c}\star \\\vdots \\k^{T}\end{array}}\right]=\left[{\begin{array}{ccccc}0&0&0&\cdots &1\end{array}}\right]{\mathcal {C}}^{-1}\Delta (A)}$

Thus,

${\displaystyle k^{T}=\left[{\begin{array}{ccccc}0&0&0&\cdots &1\end{array}}\right]{\mathcal {C}}^{-1}\Delta (A)}$

## Example

Consider[4]

${\displaystyle {\dot {x}}=\left[{\begin{array}{cc}1&1\\1&2\end{array}}\right]x+\left[{\begin{array}{c}1\\0\end{array}}\right]u}$

We know from the characteristic polynomial of ${\displaystyle A}$ that the system is unstable since ${\displaystyle det(sI-A)=(s-1)(s-2)-1=s^{2}-3s+1}$, the matrix ${\displaystyle A}$ will only have positive eigenvalues. Thus, to stabilize the system we shall put a feedback gain ${\displaystyle K=\left[{\begin{array}{cc}k_{1}&k_{2}\end{array}}\right].}$

From Ackermann's formula, we can find a matrix ${\displaystyle k}$ that will change the system so that its characteristic equation will be equal to a desired polynomial. Suppose we want ${\displaystyle \Delta _{\text{desired}}(s)=s^{2}+11s+30}$.

Thus, ${\displaystyle \Delta _{\text{desired}}(A)=A^{2}+11A+30I}$ and computing the controllability matrix yields

${\displaystyle {\mathcal {C}}=\left[{\begin{array}{cc}B&AB\end{array}}\right]=\left[{\begin{array}{cc}1&1\\0&1\end{array}}\right]}$ and ${\displaystyle {\mathcal {C}}^{-1}=\left[{\begin{array}{cc}1&-1\\0&1\end{array}}\right].}$

Also, we have that ${\displaystyle A^{2}=\left[{\begin{array}{cc}2&3\\3&5\end{array}}\right].}$

Finally, from Ackermann's formula

${\displaystyle k^{T}=\left[{\begin{array}{cc}0&1\end{array}}\right]\left[{\begin{array}{cc}1&-1\\0&1\end{array}}\right]\left[\left[{\begin{array}{cc}2&3\\3&5\end{array}}\right]+11\left[{\begin{array}{cc}1&1\\1&2\end{array}}\right]+30I\right]}$
${\displaystyle k^{T}=\left[{\begin{array}{cc}0&1\end{array}}\right]\left[{\begin{array}{cc}1&-1\\0&1\end{array}}\right]\left[{\begin{array}{cc}43&14\\14&57\end{array}}\right]=\left[{\begin{array}{cc}0&1\end{array}}\right]\left[{\begin{array}{cc}29&-43\\14&57\end{array}}\right]}$
${\displaystyle k^{T}=\left[{\begin{array}{cc}14&57\end{array}}\right]}$