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
![{\displaystyle {\dot {x}}(t)=Ax(t)+Bu(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0bf0420687df3296478180e7b6da974e5b9b57cd)
![{\displaystyle y(t)=Cx(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/07b80f8df8972c2d05541459acc5b1bc7dad8eae)
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.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/502b470a90cf25303d127a8fcfe2a833383fb4d4)
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)
![{\displaystyle y(t)=Cx(t).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a74ac583a1f62caa38f92aadf3a18f11cf8b6369)
In this new realization, the poles will be dependent on the characteristic polynomial
of
, that is
![{\displaystyle \Delta _{\text{new}}(s)=\det(sI-(A-BK)).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/de529f4ca983fb91625e3f984cbbbe342a0909ac)
Ackermann's formula[edit]
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
![{\displaystyle u(t)=-k^{T}x(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1aba9429c17634f2ab8c925967ece6f86b66fd2a)
![{\displaystyle {\dot {x}}(t)=Ax(t)-Bk^{T}x(t),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7587193cef795d0fec6387ef938aa84b6046dd39)
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
![{\displaystyle \Delta (A_{CL})=(A_{CL})^{n}+\sum _{k=0}^{n-1}\alpha _{k}A_{CL}^{k}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/699f5ac2965081ae517bcdfc35ce8c09665c11a7)
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
![{\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}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/28c0b5b0446692e350b6349d2a0eea659fffc226)
Rewriting the above equation as a matrix product and omitting terms that
![{\displaystyle k^{T}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/67c4d1dc82937798968cbde2d2fad0ce43789ad8)
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)
Example[edit]
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)
![{\displaystyle {\hat {y}}(n)=C{\hat {x}}(n)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a22b140a0cad1df095b3ee055189ea15ae9b401a)
with observer gain L. Then Ackermann's formula for the design of state observers is noted as
![{\displaystyle L^{\top }=\left[0\ 0\ \cdots \ 0\ 1\right]({\mathcal {O}}^{\top })^{-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.
See also[edit]
References[edit]
External links[edit]