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
[edit]
Consider a linear continuous-time invariant system with a state-space representation


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

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
such that any state
can be transferred to any other state
. With that in mind, a feedback loop can be added to the system with the control input
, 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)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/46b2f272a6d9f6d9961e14fb365a04cedef8bffb)

In this new realization, the poles will be dependent on the characteristic polynomial
of
, that is

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
, such as


where
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),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6b8203c830fa477535079e2847a234c424dc3934)
in which
is the desired characteristic polynomial evaluated at matrix
, and
is the controllability matrix of the system.
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
is given by

Calculating the powers of
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}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0b7321dd8c36adc83c038a386ab6b99e36c8131e)
Replacing the previous equations into
yields
Rewriting the above equation as a matrix product and omitting terms that
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]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/69da073f81563572410f590f3701a57968a459e5)
From the Cayley–Hamilton theorem,
, thus
Note that
is the controllability matrix of the system. Since the system is controllable,
is invertible. Thus,
![{\displaystyle \left[{\begin{array}{c}\star \\\vdots \\k^{T}\end{array}}\right]={\mathcal {C}}^{-1}\Delta (A)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e15b78f4811def2fd01771b2e52f8a16357562b5)
To find
, both sides can be multiplied by the vector
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)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0348e89a0003bdbbf755b54e7dc936fc375f854c)
Thus,
![{\displaystyle k^{T}=\left[{\begin{array}{ccccc}0&0&0&\cdots &1\end{array}}\right]{\mathcal {C}}^{-1}\Delta (A)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a69c0cb248d6e52117000700a83285063dba4f27)
Consider[4]
We know from the characteristic polynomial of
that the system is unstable since
, the matrix
will only have positive eigenvalues. Thus, to stabilize the system we shall put a feedback gain
From Ackermann's formula, we can find a matrix
that will change the system so that its characteristic equation will be equal to a desired polynomial. Suppose we want
.
Thus,
and computing the controllability matrix yields
and ![{\displaystyle {\mathcal {C}}^{-1}=\left[{\begin{array}{cc}1&-1\\0&1\end{array}}\right].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c39f68769097cc9a6feecc819a09ec59dc22e063)
Also, we have that
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]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f5f9030a690179cdb94b8231ce357b2fd0bd6dcc)
![{\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]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a61e0d18412ce3873d86daeecfec5a73e0170537)
![{\displaystyle k^{T}=\left[{\begin{array}{cc}14&57\end{array}}\right]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/26f77f5d5a2f0d870b5fd8f422744daeeea665d1)
State observer design
[edit]
Ackermann's formula can also be used for the design of state observers. Consider the linear discrete-time observed system
![{\displaystyle {\hat {x}}(n+1)=A{\hat {x}}(n)+Bu(n)+L[y(n)-{\hat {y}}(n)]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/859c55ddcab563e6fa347b14fdfa365557908b84)

with observer gain L. Then Ackermann's formula for the design of state observers is noted as
^{-1}\Delta _{\text{new}}(A^{\top })}](https://wikimedia.org/api/rest_v1/media/math/render/svg/825eacdc2df42d42ba132b59937ba6b451be946a)
with observability matrix
. Here it is important to note, that the observability matrix and the system matrix are transposed:
and
.
Ackermann's formula can also be applied on continuous-time observed systems.