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.
Consider a linear continuous-time invariant system with a state-space representation
x |
(t)=Ax(t)+Bu(t)
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
G(s)=C(sI-A)-1B=C
\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
u(t)
x0
x(t)
u(t)=r(t)-Kx(t)
x |
(t)=Ax(t)+B[r(t)-Kx(t)]=[A-BK]x(t)+Br(t)
y(t)=Cx(t).
In this new realization, the poles will be dependent on the characteristic polynomial
\Deltanew
A-BK
\Deltanew(s)=\det(sI-(A-BK)).
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
r
u(t)=-kTx(t)
x(t)=Ax(t)-Bk |
Tx(t),
where
kT
kT=\left[0 0 … 0 1\right]l{C}-1\Deltanew(A),
in which
\Deltanew(A)
A
l{C}
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
ACL:=(A-BkT)
\Delta(ACL)=(ACL)n+
n-1 | |
\sum | |
k=0 |
\alphak
k | |
A | |
CL |
Calculating the powers of
ACL
\begin{align} (ACL)0&=(A-BkT)0=I\\ (ACL)1&=(A-BkT)1=A-BkT\\ (ACL)2&=(A-BkT)2=A2-ABkT-BkTA+(BkT)2=A2-ABkT-(BkT)[A-BkT]=A2-ABkT-BkTACL\\ \vdots\\ (ACL)n&=(A-BkT)n=An-An-1BkT-An-2BkTACL- … -BkT
n-1 | |
A | |
CL |
\end{align}
Replacing the previous equations into
\Delta(ACL)
kT
From the Cayley–Hamilton theorem,
\Delta\left(ACL\right)=0
\left[B AB … An-1B\right]\left[\begin{array}{c} \star\\ \vdots\\ kT \end{array}\right]=\Delta(A)
Note that
l{C}=\left[B AB … An-1B\right]
l{C}
\left[\begin{array}{c} \star\\ \vdots\\ kT\end{array}\right]=l{C}-1\Delta(A)
To find
kT
\left[\begin{array}{ccccc} 0&0&0& … &1\end{array}\right]
\left[\begin{array}{ccccc} 0&0&0& … &1\end{array}\right]\left[\begin{array}{c} \star\\ \vdots\\ kT\end{array}\right]=\left[\begin{array}{ccccc} 0&0&0& … &1\end{array}\right]l{C}-1\Delta(A)
Thus,
kT=\left[\begin{array}{ccccc} 0&0&0& … &1\end{array}\right]l{C}-1\Delta(A)
Consider[4]
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
A
det(sI-A)=(s-1)(s-2)-1=s2-3s+2
A
K=\left[\begin{array}{cc} k1&k2\end{array}\right].
From Ackermann's formula, we can find a matrix
k
2+11s+30 | |
\Delta | |
desired(s)=s |
Thus,
2+11A+30I | |
\Delta | |
desired(A)=A |
l{C}=\left[\begin{array}{cc} B&AB\end{array}\right]=\left[\begin{array}{cc} 1&1\\ 0&1 \end{array}\right]
l{C}-1=\left[\begin{array}{cc} 1&-1\\ 0&1 \end{array}\right].
Also, we have that
A2=\left[\begin{array}{cc} 2&3\\ 3&5 \end{array}\right].
Finally, from Ackermann's formula
kT=\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]
kT=\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]
kT=\left[\begin{array}{cc} 14&57\end{array}\right]
Ackermann's formula can also be used for the design of state observers. Consider the linear discrete-time observed system
\hat{x}(n+1)=A\hat{x}(n)+Bu(n)+L[y(n)-\hat{y}(n)]
\hat{y}(n)=C\hat{x}(n)
with observer gain L. Then Ackermann's formula for the design of state observers is noted as
L\top=\left[0 0 … 0 1\right](l{O}\top)-1
\top | |
\Delta | |
new(A |
)
l{O}
l{O}\top
A\top
Ackermann's formula can also be applied on continuous-time observed systems.