Misplaced Pages

Ackermann's formula

Article snapshot taken from[REDACTED] with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Control system desiugn method Not to be confused with the Ackermann function. For other uses, see Ackermann (disambiguation).
This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (July 2017) (Learn how and when to remove this message)

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. 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. 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

x ˙ ( t ) = A x ( t ) + B u ( t ) y ( t ) = C x ( t ) {\displaystyle {\begin{aligned}\mathbf {\dot {x}} (t)&=\mathbf {Ax} (t)+\mathbf {Bu} (t)\\\mathbf {y} (t)&=\mathbf {Cx} (t)\end{aligned}}}

where x is the state vector, u is the input vector, and A, B, 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 ( s I A ) 1 B = C   adj ( s I A ) det ( s I A )   B . {\displaystyle {\begin{aligned}G(s)&=\mathbf {C} (s\mathbf {I} -\mathbf {A} )^{-1}\mathbf {B} \\&=\mathbf {C} \ {\frac {\operatorname {adj} (s\mathbf {I} -\mathbf {A} )}{\det(s\mathbf {I} -\mathbf {A} )}}\ \mathbf {B} .\end{aligned}}}

where det is the determinant and adj is the adjugate. 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, 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) such that any state x0 can be transferred to any other state x(t). With that in mind, a feedback loop can be added to the system with the control input u(t) = r(t) − kx(t), such that the new dynamics of the system will be

x ˙ ( t ) = A x ( t ) + B [ r ( t ) k x ( t ) ] = [ A B k ] x ( t ) + B r ( t ) , y ( t ) = C x ( t ) . {\displaystyle {\begin{aligned}\mathbf {\dot {x}} (t)&=\mathbf {Ax} (t)+\mathbf {B} \\&=\mathbf {x} (t)+\mathbf {Br} (t),\\\mathbf {y} (t)&=\mathbf {Cx} (t).\end{aligned}}}

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

Δ new ( s ) = det ( s I ( A B k ) ) . {\displaystyle \Delta _{\text{new}}(s)=\det {\bigl (}s\mathbf {I} -(\mathbf {A} -\mathbf {Bk} ){\bigr )}.}

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

u ( t ) = k T x ( t ) x ˙ ( t ) = A x ( t ) B k T x ( t ) , {\displaystyle {\begin{aligned}\mathbf {u} (t)&=-\mathbf {k} ^{\rm {T}}\mathbf {x} (t)\\\mathbf {\dot {x}} (t)&=\mathbf {Ax} (t)-\mathbf {Bk} ^{\rm {T}}\mathbf {x} (t),\end{aligned}}}

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

k T = [ 0 0 1 ] C 1 Δ new ( A ) , {\displaystyle \mathbf {k} ^{\rm {T}}={\begin{bmatrix}0&\cdots &0&1\end{bmatrix}}\,{\mathcal {C}}^{-1}\Delta _{\text{new}}(\mathbf {A} ),}

in which Δnew(A) is the desired characteristic polynomial evaluated at matrix A, and C {\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. Assume that the system is controllable. The characteristic polynomial of A C L := ( A B k T ) {\displaystyle \mathbf {A} _{\rm {CL}}:=(\mathbf {A} -\mathbf {Bk} ^{\rm {T}})} is given by

Δ ( A C L ) = ( A C L ) n + k = 0 n 1 α k A C L k {\displaystyle \Delta (\mathbf {A} _{\rm {CL}})=(\mathbf {A} _{\rm {CL}})^{n}+\sum _{k=0}^{n-1}\alpha _{k}\mathbf {A} _{\rm {CL}}^{k}}

Calculating the powers of ACL results in

( A C L ) 0 =   ( A B k T ) 0 = I ( A C L ) 1 =   ( A B k T ) 1 = A B k T ( A C L ) 2 =   ( A B k T ) 2 = A 2 A B k T B k T A + ( B k T ) 2 = A 2 A B k T ( B k T ) [ A B k T ] = A 2 A B k T B k T A C L   ( A C L ) n =   ( A B k T ) n = A n A n 1 B k T A n 2 B k T A C L B k T A C L n 1 {\displaystyle {\begin{aligned}(\mathbf {A} _{\rm {CL}})^{0}=&\ (\mathbf {A} -\mathbf {Bk} ^{\rm {T}})^{0}=\mathbf {I} \\(\mathbf {A} _{\rm {CL}})^{1}=&\ (\mathbf {A} -\mathbf {Bk} ^{\rm {T}})^{1}=\mathbf {A} -\mathbf {Bk} ^{\rm {T}}\\(\mathbf {A} _{\rm {CL}})^{2}=&\ (\mathbf {A} -\mathbf {Bk} ^{\rm {T}})^{2}\\&=\mathbf {A} ^{2}-\mathbf {ABk} ^{\rm {T}}-\mathbf {Bk} ^{\rm {T}}\mathbf {A} +(\mathbf {Bk} ^{\rm {T}})^{2}\\&=\mathbf {A} ^{2}-\mathbf {ABk} ^{\rm {T}}-(\mathbf {Bk} ^{\rm {T}})\\&=\mathbf {A} ^{2}-\mathbf {ABk} ^{\rm {T}}-\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}\\\vdots \ &\\(\mathbf {A} _{\rm {CL}})^{n}=&\ (\mathbf {A} -\mathbf {Bk} ^{\rm {T}})^{n}\\&=\mathbf {A} ^{n}-\mathbf {A} ^{n-1}\mathbf {Bk} ^{\rm {T}}-\mathbf {A} ^{n-2}\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}-\ldots -\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}^{n-1}\end{aligned}}}

Replacing the previous equations into Δ(ACL) yields

Δ ( A C L ) = ( A n A n 1 B k T A n 2 B k T A C L B k T A C L n 1 ) ( A C L ) n + + α 2 ( A 2 A B k T B k T A C L ) + α 1 ( A B k T ) + α 0 I k = 0 n 1 α k A C L k = ( A n + α n 1 A n 1 + + α 2 A 2 + α 1 A + α 0 I ) ( A n 1 B k T + A n 2 B k T A C L + + B k T A C L n 1 ) + α 2 ( A B k T + B k T A C L ) α 1 ( B k T ) = Δ ( A ) ( A n 1 B k T + A n 2 B k T A C L + + B k T A C L n 1 ) α 2 ( A B k T + B k T A C L ) α 1 ( B k T ) {\displaystyle {\begin{aligned}\Delta (\mathbf {A} _{\rm {CL}})&=\overbrace {(\mathbf {A} ^{n}-\mathbf {A} ^{n-1}\mathbf {Bk} ^{\rm {T}}-\mathbf {A} ^{n-2}\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}-\ldots -\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}^{n-1})} ^{(\mathbf {A} _{\rm {CL}})^{n}}+\overbrace {\ldots +\alpha _{2}(\mathbf {A} ^{2}-\mathbf {ABk} ^{\rm {T}}-\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}})+\alpha _{1}(\mathbf {A} -\mathbf {Bk} ^{\rm {T}})+\alpha _{0}\mathbf {I} } ^{\sum _{k=0}^{n-1}\alpha _{k}\mathbf {A} _{\rm {CL}}^{k}}\\&=(\mathbf {A} ^{n}+\alpha _{n-1}\mathbf {A} ^{n-1}+\ldots +\alpha _{2}\mathbf {A} ^{2}+\alpha _{1}\mathbf {A} +\alpha _{0}\mathbf {I} )-(\mathbf {A} ^{n-1}\mathbf {Bk} ^{\rm {T}}+\mathbf {A} ^{n-2}\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}+\ldots +\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}^{n-1})+\ldots -\alpha _{2}(\mathbf {ABk} ^{\rm {T}}+\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}})-\alpha _{1}(\mathbf {Bk} ^{\rm {T}})\\&=\Delta (\mathbf {A} )-(\mathbf {A} ^{n-1}\mathbf {Bk} ^{\rm {T}}+\mathbf {A} ^{n-2}\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}+\ldots +\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}}^{n-1})-\ldots -\alpha _{2}(\mathbf {ABk} ^{\rm {T}}+\mathbf {Bk} ^{\rm {T}}\mathbf {A} _{\rm {CL}})-\alpha _{1}(\mathbf {Bk} ^{\rm {T}})\end{aligned}}}

Rewriting the above equation as a matrix product and omitting terms that k does not appear isolated yields

Δ ( A C L ) = Δ ( A ) [ B A B A n 1 B ] [ k T ] {\displaystyle \Delta (\mathbf {A} _{\rm {CL}})=\Delta (\mathbf {A} )-{\begin{bmatrix}\mathbf {B} &\mathbf {AB} &\cdots &\mathbf {A} ^{n-1}\mathbf {B} \end{bmatrix}}{\begin{bmatrix}\star \\\vdots \\\mathbf {k} ^{\rm {T}}\end{bmatrix}}}

From the Cayley–Hamilton theorem, Δ(ACL) = 0, thus

[ B A B A n 1 B ] [ k T ] = Δ ( A ) {\displaystyle {\begin{bmatrix}\mathbf {B} &\mathbf {AB} &\cdots &\mathbf {A} ^{n-1}\mathbf {B} \end{bmatrix}}{\begin{bmatrix}\star \\\vdots \\\mathbf {k} ^{\rm {T}}\end{bmatrix}}=\Delta (\mathbf {A} )}

Note that C = [ B A B A n 1 B ] {\displaystyle {\mathcal {C}}={\begin{bmatrix}\mathbf {B} &\mathbf {AB} &\cdots &\mathbf {A} ^{n-1}\mathbf {B} \end{bmatrix}}} is the controllability matrix of the system. Since the system is controllable, C {\displaystyle {\mathcal {C}}} is invertible. Thus,

[ k T ] = C 1 Δ ( A ) {\displaystyle {\begin{bmatrix}\star \\\vdots \\\mathbf {k} ^{\rm {T}}\end{bmatrix}}={\mathcal {C}}^{-1}\Delta (\mathbf {A} )}

To find k, both sides can be multiplied by the vector [ 0 0 1 ] {\displaystyle {\begin{bmatrix}0&\cdots &0&1\end{bmatrix}}} giving

[ 0 0 1 ] [ k T ] = [ 0 0 1 ] C 1 Δ ( A ) {\displaystyle {\begin{bmatrix}0&\cdots &0&1\end{bmatrix}}{\begin{bmatrix}\star \\\vdots \\\mathbf {k} ^{\rm {T}}\end{bmatrix}}={\begin{bmatrix}0&\cdots &0&1\end{bmatrix}}\,{\mathcal {C}}^{-1}\Delta (\mathbf {A} )}

Thus,

k T = [ 0 0 1 ] C 1 Δ ( A ) {\displaystyle \mathbf {k} ^{\rm {T}}={\begin{bmatrix}0&\cdots &0&1\end{bmatrix}}\,{\mathcal {C}}^{-1}\Delta (\mathbf {A} )}

Example

Consider

x ˙ = [ 1 1 1 2 ] x + [ 1 0 ] u {\displaystyle \mathbf {\dot {x}} ={\begin{bmatrix}1&1\\1&2\end{bmatrix}}\mathbf {x} +{\begin{bmatrix}1\\0\end{bmatrix}}\mathbf {u} }

We know from the characteristic polynomial of A that the system is unstable since

det ( s I A ) = ( s 1 ) ( s 2 ) 1 = s 2 3 s + 2 , {\displaystyle {\begin{aligned}\det(s\mathbf {I} -\mathbf {A} )&=(s-1)(s-2)-1\\&=s^{2}-3s+2,\end{aligned}}}

the matrix A will only have positive eigenvalues. Thus, to stabilize the system we shall put a feedback gain

k = [ k 1 k 2 ] . {\displaystyle \mathbf {k} ={\begin{bmatrix}k_{1}&k_{2}\end{bmatrix}}.}

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

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

C = [ B A B ] = [ 1 1 0 1 ] C 1 = [ 1 1 0 1 ] {\displaystyle {\begin{aligned}{\mathcal {C}}&={\begin{bmatrix}\mathbf {B} &\mathbf {AB} \end{bmatrix}}={\begin{bmatrix}1&1\\0&1\end{bmatrix}}\\\implies {\mathcal {C}}^{-1}&={\begin{bmatrix}1&-1\\0&1\end{bmatrix}}\end{aligned}}}

Also, we have that A 2 = [ 2 3 3 5 ] . {\displaystyle \mathbf {A} ^{2}=\left.}

Finally, from Ackermann's formula

k T = [ 0 1 ] [ 1 1 0 1 ] ( [ 2 3 3 5 ] + 11 [ 1 1 1 2 ] + 30 I ) = [ 0 1 ] [ 1 1 0 1 ] [ 43 14 14 57 ] = [ 0 1 ] [ 29 43 14 57 ] = [ 14 57 ] {\displaystyle {\begin{aligned}\mathbf {k} ^{\rm {T}}&={\begin{bmatrix}0&1\end{bmatrix}}{\begin{bmatrix}1&-1\\0&1\end{bmatrix}}\left({\begin{bmatrix}2&3\\3&5\end{bmatrix}}+11{\begin{bmatrix}1&1\\1&2\end{bmatrix}}+30\mathbf {I} \right)\\&={\begin{bmatrix}0&1\end{bmatrix}}{\begin{bmatrix}1&-1\\0&1\end{bmatrix}}{\begin{bmatrix}43&14\\14&57\end{bmatrix}}\\&={\begin{bmatrix}0&1\end{bmatrix}}{\begin{bmatrix}29&-43\\14&57\end{bmatrix}}\\&={\begin{bmatrix}14&57\end{bmatrix}}\end{aligned}}}

State observer design

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

x ^ ( n + 1 ) = A x ^ ( n ) + B u ( n ) + L [ y ( n ) y ^ ( n ) ] y ^ ( n ) = C x ^ ( n ) {\displaystyle {\begin{aligned}\mathbf {\hat {x}} (n+1)&=\mathbf {A{\hat {x}}} (n)+\mathbf {Bu} (n)+\mathbf {L} \\\mathbf {\hat {y}} (n)&=\mathbf {C{\hat {x}}} (n)\end{aligned}}}

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

L T = [ 0 0 1 ] ( O T ) 1 Δ new ( A T ) {\displaystyle \mathbf {L} ^{\rm {T}}={\begin{bmatrix}0&0&\cdots &1\end{bmatrix}}({\mathcal {O}}^{\rm {T}})^{-1}\Delta _{\text{new}}(\mathbf {A} ^{\rm {T}})}

with observability matrix O {\displaystyle {\mathcal {O}}} . Here it is important to note, that the observability matrix and the system matrix are transposed: O T {\displaystyle {\mathcal {O}}^{\rm {T}}} and A.

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" (PDF). At - Automatisierungstechnik. 20 (1–12): 297–300. doi:10.1524/auto.1972.20.112.297. ISSN 2196-677X. S2CID 111291582.
  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" (PDF). Web.mit.edu. Retrieved 2017-07-06.

External links

Categories: