Ackermann's formula

From HandWiki

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

[math]\displaystyle{ \dot{x}(t)=Ax(t)+Bu(t) }[/math]
[math]\displaystyle{ y(t)=Cx(t) }[/math]

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

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

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 [math]\displaystyle{ u(t) }[/math] such that any state [math]\displaystyle{ x_{0} }[/math] can be transferred to any other state [math]\displaystyle{ x(t) }[/math]. With that in mind, a feedback loop can be added to the system with the control input [math]\displaystyle{ u(t)=r(t)-Kx(t) }[/math], such that the new dynamics of the system will be

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

In this new realization, the poles will be dependent on the characteristic polynomial [math]\displaystyle{ \Delta_{new} }[/math] of [math]\displaystyle{ A-BK }[/math], that is

[math]\displaystyle{ \Delta_\text{new}(s)=\det(sI-(A-BK)). }[/math]

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 [math]\displaystyle{ r }[/math], such as

[math]\displaystyle{ u(t)=-k^T x(t) }[/math]
[math]\displaystyle{ \dot x(t)=Ax(t)-Bk^T x(t), }[/math]

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

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

in which [math]\displaystyle{ \Delta_\text{new}(A) }[/math] is the desired characteristic polynomial evaluated at matrix [math]\displaystyle{ A }[/math], and [math]\displaystyle{ \mathcal{C} }[/math] 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 [math]\displaystyle{ A_{CL}:=(A-Bk^{T}) }[/math] is given by

[math]\displaystyle{ \Delta(A_{CL})=(A_{CL})^n + \sum_{k=0}^{n-1} \alpha_k A_{CL}^{k} }[/math]

Calculating the powers of [math]\displaystyle{ A_{CL} }[/math] results in

[math]\displaystyle{ \begin{align} (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{align} }[/math]


Replacing the previous equations into [math]\displaystyle{ \Delta(A_{CL}) }[/math] yields[math]\displaystyle{ \begin{align} \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_0I \\ & = (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^TA_{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{align} }[/math]Rewriting the above equation as a matrix product and omitting terms that [math]\displaystyle{ k^T }[/math] does not appear isolated yields

[math]\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] }[/math]

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

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

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

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

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

[math]\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) }[/math]

Thus,

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

Example

Consider[4]

[math]\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 }[/math]

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

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

Thus, [math]\displaystyle{ \Delta_\text{desired}(A)=A^2+11A+30I }[/math] and computing the controllability matrix yields

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

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

Finally, from Ackermann's formula

[math]\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] }[/math]
[math]\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] }[/math]
[math]\displaystyle{ k^T=\left[\begin{array}{cc} 14 & 57\end{array}\right] }[/math]

State observer design

Ackermann's formula can also be used for the design of state observers. Consider the linear discrete-time observed system

[math]\displaystyle{ \hat{x}(n+1) = A \hat{x}(n) + B u(n) + L [\hat{y}(n) - y(n)] }[/math]
[math]\displaystyle{ \hat{y}(n) = C \hat{x}(n) }[/math]

with observer gain L. Then Ackermann's formula for the design of state observers is noted as

[math]\displaystyle{ L^{\top} =\left[0\ 0\ \cdots \ 0\ 1\right](\mathcal{O}^{\top})^{-1} \Delta_\text{new}(A^{\top}) }[/math]

with observability matrix [math]\displaystyle{ \mathcal{O} }[/math]. Here it is important to note, that the observability matrix and the system matrix are transposed: [math]\displaystyle{ \mathcal{O}^{\top} }[/math] and [math]\displaystyle{ A^{\top} }[/math].

Ackermann's formula can also be applied on continuous-time observed systems.

See also

References

  1. Ackermann, J. (1972). "Der Entwurf linearer Regelungssysteme im Zustandsraum". At - Automatisierungstechnik 20 (1–12): 297–300. doi:10.1524/auto.1972.20.112.297. ISSN 2196-677X. https://elib.dlr.de/96054/1/Ackermann_Der%20Entwurf%20linearer%20Regelungssysteme%20im%20Zustandsraum_Regelungstechnik_1972.pdf. 
  2. Modern Control System Theory and Design, 2nd Edition by Stanley M. Shinners
  3. Ackermann, J. E. (2009). "Pole Placement Control". Control systems, robotics and automation. Unbehauen, Heinz.. Oxford: Eolss Publishers Co. Ltd. ISBN 9781848265905. OCLC 703352455. 
  4. "Topic #13 : 16.31 Feedback Control". http://web.mit.edu/16.31/www/Fall06/1631_topic13.pdf. 

External links

  • Chapter about Ackermann's Formula on Wikibook of Control Systems and Control Engineering