Ackermann's formula: Difference between revisions
Citation bot (talk | contribs) Add: url, s2cid. | You can use this bot yourself. Report bugs here. | Suggested by SemperIocundus | via #UCB_webform |
m Fixed typo Tags: Mobile edit Mobile app edit iOS app edit App section source |
||
(16 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
{{short description|Control system desiugn method}} |
|||
{{not to be confused with|Ackermann function}} |
|||
{{Distinguish|text=the [[Ackermann function]]. For other uses, see [[Ackermann (disambiguation)]]}} |
|||
{{Technical|date=July 2017}} |
{{Technical|date=July 2017}} |
||
'''Ackermann's formula''' is a [[control system]] design method for solving the [[Full state feedback|pole allocation]] problem for invariant-time systems by [[Jürgen Ackermann]].<ref>{{Cite journal|last=Ackermann|first=J.|date=1972|title=Der Entwurf linearer Regelungssysteme im Zustandsraum|journal=At - Automatisierungstechnik|volume=20|issue=1–12|pages=|doi=10.1524/auto.1972.20.112.297|s2cid=111291582|issn=2196-677X|url=https://elib.dlr.de/96054/1/Ackermann_Der%20Entwurf%20linearer%20Regelungssysteme%20im%20Zustandsraum_Regelungstechnik_1972.pdf}}</ref> 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.<ref> |
In [[control theory]], '''Ackermann's formula''' is a [[control system]] design method for solving the [[Full state feedback|pole allocation]] problem for invariant-time systems by [[Jürgen Ackermann]].<ref>{{Cite journal|last=Ackermann|first=J.|date=1972|title=Der Entwurf linearer Regelungssysteme im Zustandsraum|journal=At - Automatisierungstechnik|volume=20|issue=1–12|pages=297–300 |doi=10.1524/auto.1972.20.112.297|s2cid=111291582|issn=2196-677X|url=https://elib.dlr.de/96054/1/Ackermann_Der%20Entwurf%20linearer%20Regelungssysteme%20im%20Zustandsraum_Regelungstechnik_1972.pdf}}</ref> 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 and eigenvectors|eigenvalues]] of the [[Matrix (mathematics)|matrix]] representing the dynamics of the [[Closed-loop controller|closed-loop system]].<ref>Modern Control System Theory and Design, 2nd Edition by Stanley M. Shinners</ref> This is equivalent to changing the [[Zeros and poles|poles]] of the associated [[transfer function]] in the case that there is no cancellation of poles and zeros. |
||
==State feedback control== |
==State feedback control== |
||
Consider a linear continuous-time invariant system with a [[state-space representation]] |
Consider a linear continuous-time invariant system with a [[state-space representation]] |
||
<math display=block>\begin{align} |
|||
: <math> \dot{x}(t)=Ax(t)+Bu(t) </math> |
|||
\mathbf\dot{x}(t) &= \mathbf{Ax}(t) + \mathbf{Bu}(t) \\ |
|||
:<math> y(t)=Cx(t) </math> |
|||
\mathbf{y}(t) &= \mathbf{Cx}(t) |
|||
\end{align}</math> |
|||
where ''x'' is the state vector, ''u'' is the input vector, and ''A'', ''B'' |
where {{math|'''x'''}} is the state vector, {{math|'''u'''}} is the input vector, and {{math|'''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]] |
||
<math display=block>\begin{align} |
|||
:<math> G(s) = C(sI-A)^{-1}B=C\ \frac{\operatorname{Adj}(sI-A)}{\det(sI-A)}\ B.</math> |
|||
G(s) &= \mathbf{C}(s \mathbf{I} - \mathbf{A})^{-1} \mathbf{B} \\[4pt] |
|||
&= \mathbf{C}\ \frac{\operatorname{adj}(s \mathbf{I} - \mathbf{A})}{\det(s \mathbf{I} - \mathbf{A})}\ \mathbf{B}. |
|||
\end{align}</math> |
|||
where {{math|det}} is the [[determinant]] and {{math|adj}} is the [[Adjugate matrix|adjugate]]. |
|||
Since the denominator of the right equation is given by the [[characteristic polynomial]] of ''A'', the poles of ''G'' are [[eigenvalue]]s 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 [[Exponential stability|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''. |
|||
Since the denominator of the right equation is given by the [[characteristic polynomial]] of {{math|'''A'''}}, the poles of {{mvar|G}} are [[eigenvalue]]s of {{math|'''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 [[Exponential stability|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 {{math|'''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 {{math|'''k'''}} that will feed the state variable {{math|'''x'''}} into the input {{math|'''u'''}}. |
|||
If the system is [[Controllability|controllable]], there is always an input |
If the system is [[Controllability|controllable]], there is always an input {{math|'''u'''(''t'')}} such that any state {{math|'''x'''{{sub|0}}}} can be transferred to any other state {{math|'''x'''(''t'')}}. With that in mind, a feedback loop can be added to the system with the control input {{math|1='''u'''(''t'') = '''r'''(''t'') − '''kx'''(''t'')}}, such that the new dynamics of the system will be |
||
<math display=block>\begin{align} |
|||
: <math>\dot{x}(t)=Ax(t)+B[r(t)-Kx(t)]= [A-BK] x(t)+Br(t)</math> |
|||
\mathbf\dot{x}(t) &= \mathbf{Ax}(t) + \mathbf{B}[\mathbf{r}(t) - \mathbf{kx}(t)] \\[2pt] |
|||
:<math>y(t)=Cx(t).</math> |
|||
&= [\mathbf{A} - \mathbf{Bk}] \mathbf{x}(t) + \mathbf{Br}(t), \\[4pt] |
|||
\mathbf{y}(t) &= \mathbf{Cx}(t). |
|||
\end{align}</math> |
|||
In this new realization, the poles will be dependent on the characteristic polynomial |
In this new realization, the poles will be dependent on the characteristic polynomial {{math|Δ{{sub|new}}}} of {{math|'''A''' − '''Bk'''}}, that is |
||
<math display=block>\Delta_\text{new}(s) = \det\bigl(s \mathbf{I} - (\mathbf{A} - \mathbf{Bk}) \bigr).</math> |
|||
==Ackermann's formula== |
==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 |
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|'''r'''}}, such as |
||
<math display=block>\begin{align} |
|||
: <math>u(t)=-k^T x(t)</math> |
|||
\mathbf{u}(t) &= -\mathbf{k}^{\rm T} \mathbf{x}(t) \\[2pt] |
|||
:<math>\dot x(t)=Ax(t)-Bk^T x(t),</math> |
|||
\mathbf\dot{x}(t) &= \mathbf{Ax}(t) - \mathbf{Bk}^{\rm T} \mathbf{x}(t), |
|||
\end{align}</math> |
|||
where |
where {{math|'''k'''{{sup|T}}}} 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 display=block>\mathbf{k}^{\rm T} = \begin{bmatrix} |
|||
: <math>k^T =\left[0\ 0\ \cdots \ 0\ 1\right]\mathcal{C}^{-1}\Delta_\text{new}(A), |
|||
0 & \cdots & 0 & 1 |
|||
\end{bmatrix} \, \mathcal{C}^{-1} \Delta_\text{new}(\mathbf{A}), |
|||
</math> |
</math> |
||
in which |
in which {{math|Δ{{sub|new}}('''A''')}} is the desired characteristic polynomial evaluated at matrix {{math|'''A'''}}, and <math>\mathcal{C}</math> is the [[Controllability#Continuous linear time-invariant (LTI) systems|controllability matrix]] of the system. |
||
=== Proof=== |
=== Proof=== |
||
This proof is based on [[Encyclopedia of Life Support Systems]] entry on Pole Placement Control.<ref>{{Cite book|title=Control systems, robotics and automation|last=Ackermann|first=J. E.|date=2009|publisher=Eolss Publishers Co. Ltd|others=Unbehauen, Heinz.|isbn=9781848265905|location=Oxford |
This proof is based on [[Encyclopedia of Life Support Systems]] entry on Pole Placement Control.<ref>{{Cite book|title=Control systems, robotics and automation|last=Ackermann|first=J. E.|date=2009|publisher=Eolss Publishers Co. Ltd|others=Unbehauen, Heinz.|isbn=9781848265905|location=Oxford|chapter=Pole Placement Control|oclc=703352455}}</ref> Assume that the system is [[Controllability|controllable]]. The characteristic polynomial of <math>\mathbf{A}_{\rm CL} := (\mathbf{A} - \mathbf{Bk}^{\rm T})</math> is given by |
||
<math display=block>\Delta(\mathbf{A}_{\rm CL}) = (\mathbf{A}_{\rm CL})^n + \sum_{k=0}^{n-1} \alpha_k \mathbf{A}_{\rm CL}^{k}</math> |
|||
Calculating the powers of |
Calculating the powers of {{math|'''A'''{{sub|CL}}}} results in |
||
<math display=block>\begin{align} |
|||
( |
(\mathbf{A}_{\rm CL})^0 =&\ (\mathbf{A} - \mathbf{Bk}^{\rm T})^0 = \mathbf{I} \\[4pt] |
||
( |
(\mathbf{A}_{\rm CL})^1 =&\ (\mathbf{A} - \mathbf{Bk}^{\rm T})^1 = \mathbf{A} - \mathbf{Bk}^{\rm T} \\[4pt] |
||
(\mathbf{A}_{\rm CL})^2 =&\ (\mathbf{A} - \mathbf{Bk}^{\rm T})^2 \\[2pt] |
|||
(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} \\ |
|||
&= \mathbf{A}^2 - \mathbf{ABk}^{\rm T} - \mathbf{Bk}^{\rm T} \mathbf{A} + (\mathbf{Bk}^{\rm T})^2 \\[2pt] |
|||
\vdots \\ |
|||
&= \mathbf{A}^2 - \mathbf{ABk}^{\rm T} - (\mathbf{Bk}^{\rm T})[\mathbf{A} - \mathbf{Bk}^{\rm T}] \\[2pt] |
|||
(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} |
|||
&= \mathbf{A}^2 - \mathbf{ABk}^{\rm T} - \mathbf{Bk}^{\rm T} \mathbf{A}_{\rm CL} \\[4pt] |
|||
\vdots \ & \\[4pt] |
|||
(\mathbf{A}_{\rm CL})^n =&\ (\mathbf{A}-\mathbf{Bk}^{\rm T})^n \\[2pt] |
|||
&= \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{align}</math> |
\end{align}</math> |
||
Replacing the previous equations into |
Replacing the previous equations into {{math|Δ('''A'''{{sub|CL}})}} yields |
||
\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 (A+Bk^T) |
|||
\end{align}</math>Rewriting the above equation as a matrix product and omitting terms that <math>k^T</math> does not appear isolated yields |
|||
<math display="block">\begin{align} |
|||
\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} |
|||
\star \\ |
|||
+ \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} \\[4pt] |
|||
\vdots\\ |
|||
&= (\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}) \\[4pt] |
|||
k^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{array}\right]</math> |
|||
\end{align}</math> |
|||
Rewriting the above equation as a matrix product and omitting terms that {{math|'''k'''{{sup|T}}}} does not appear isolated yields |
|||
From the [[Cayley–Hamilton theorem]], <math>\Delta\left(A_{CL}\right)=0</math>, thus |
|||
<math>\ |
<math display="block"> \Delta(\mathbf{A}_{\rm CL}) = \Delta(\mathbf{A}) - \begin{bmatrix} |
||
\mathbf{B} & \mathbf{AB} & \cdots & \mathbf{A}^{n-1}\mathbf{B} |
|||
\star \\ |
|||
\end{bmatrix}\begin{bmatrix} |
|||
\vdots\\ |
|||
\star \\ |
|||
k^T |
|||
\vdots \\ |
|||
\end{array}\right]=\Delta(A)</math> |
|||
\mathbf{k}^{\rm T} |
|||
\end{bmatrix}</math> |
|||
From the [[Cayley–Hamilton theorem]], {{math|1=Δ('''A'''{{sub|CL}}) = 0}}, thus |
|||
Note that <math>\mathcal{C}=\left[B\ \ AB\ \ \cdots \ \ A^{n-1}B\right] </math> is the [[Controllability#Continuous linear time-invariant (LTI) systems|controllability matrix]] of the system. Since the system is controllable, <math>\mathcal{C}</math> is invertible. Thus, |
|||
<math display="block"> |
|||
:<math>\left[\begin{array}{c} |
|||
\begin{bmatrix} |
|||
\star \\ |
|||
\mathbf{B} & \mathbf{AB} & \cdots & \mathbf{A}^{n-1}\mathbf{B} |
|||
\vdots\\ |
|||
\end{bmatrix}\begin{bmatrix} |
|||
k^{T} |
|||
\star \\ |
|||
\end{array}\right]=\mathcal{C}^{-1}\Delta(A)</math> |
|||
\vdots \\ |
|||
\mathbf{k}^{\rm T} |
|||
\end{bmatrix} = \Delta(\mathbf{A})</math> |
|||
Note that <math>\mathcal{C} = \begin{bmatrix} \mathbf{B} & \mathbf{AB} & \cdots & \mathbf{A}^{n-1}\mathbf{B} \end{bmatrix} </math> is the [[Controllability#Continuous linear time-invariant (LTI) systems|controllability matrix]] of the system. Since the system is controllable, <math>\mathcal{C}</math> is invertible. Thus, |
|||
To find <math>k^{T}</math>, both sides can be multiplied by the vector <math>\left[\begin{array}{ccccc} |
|||
0 & 0 & 0 & \cdots & 1\end{array}\right]</math> giving |
|||
<math display=block> |
|||
:<math>\left[\begin{array}{ccccc} |
|||
\begin{bmatrix} |
|||
0 & 0 & 0 & \cdots & 1\end{array}\right]\left[\begin{array}{c} |
|||
\star \\ |
\star \\ |
||
\vdots\\ |
\vdots \\ |
||
k^{T} |
\mathbf{k}^{\rm T} |
||
\end{bmatrix} = \mathcal{C}^{-1} \Delta(\mathbf{A})</math> |
|||
\end{array}\right]=\left[\begin{array}{ccccc} |
|||
0 & 0 & 0 & \cdots & 1\end{array}\right]\mathcal{C}^{-1}\Delta(A)</math> |
|||
To find {{math|'''k'''{{sup|T}}}}, both sides can be multiplied by the vector <math> |
|||
\begin{bmatrix} |
|||
0 & \cdots & 0 & 1 |
|||
\end{bmatrix} |
|||
</math> giving |
|||
<math display=block>\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})</math> |
|||
Thus, |
Thus, |
||
<math display=block> \mathbf{k}^{\rm T} = |
|||
: <math>k^{T}=\left[\begin{array}{ccccc} |
|||
\begin{bmatrix} |
|||
0 & 0 & 0 & \cdots & 1\end{array}\right]\mathcal{C}^{-1}\Delta(A)</math> |
|||
0 & \cdots & 0 & 1 |
|||
\end{bmatrix} \, \mathcal{C}^{-1} \Delta(\mathbf{A})</math> |
|||
==Example== |
==Example== |
||
Consider<ref>{{cite web|url=http://web.mit.edu/16.31/www/Fall06/1631_topic13.pdf |title=Topic #13 : 16.31 Feedback Control|website=Web.mit.edu | |
Consider<ref>{{cite web|url=http://web.mit.edu/16.31/www/Fall06/1631_topic13.pdf |title=Topic #13 : 16.31 Feedback Control|website=Web.mit.edu |access-date=2017-07-06}}</ref> |
||
<math display=block> |
|||
<math>\dot{x}=\left[\begin{array}{cc} |
|||
\mathbf\dot{x} = \begin{bmatrix} |
|||
1 & 1\\ |
|||
1 & |
1 & 1 \\ |
||
1 & 2 |
|||
\end{array}\right]x+\left[\begin{array}{c} |
|||
\end{bmatrix}\mathbf{x} + \begin{bmatrix} |
|||
1\\ |
|||
1 \\ |
|||
0 |
|||
0 |
|||
\end{array}\right]u</math> |
|||
\end{bmatrix} \mathbf{u}</math> |
|||
We know from the characteristic polynomial of |
We know from the characteristic polynomial of {{math|'''A'''}} that the system is unstable since |
||
k_1 & k_2\end{array}\right]. </math> |
|||
<math display=block>\begin{align} |
|||
From Ackermann's formula, we can find a matrix <math>k</math> that will change the system so that its characteristic equation will be equal to a desired polynomial. Suppose we want <math>\Delta_\text{desired}(s)=s^2+11s+30</math>. |
|||
\det(s\mathbf{I} - \mathbf{A}) &= (s-1)(s-2) - 1 \\ |
|||
&= s^2 - 3s + 2, |
|||
\end{align}</math> |
|||
the matrix {{math|'''A'''}} will only have positive eigenvalues. Thus, to stabilize the system we shall put a feedback gain |
|||
Thus, <math>\Delta_\text{desired}(A)=A^2+11A+30I</math> and computing the controllability matrix yields |
|||
<math display=block>\mathbf{k} = \begin{bmatrix} |
|||
k_1 & k_2 \end{bmatrix}.</math> |
|||
B & AB\end{array}\right]=\left[\begin{array}{cc} |
|||
1 & 1\\ |
|||
0 & 1 |
|||
\end{array}\right]</math> and <math>\mathcal{C}^{-1}=\left[\begin{array}{cc} |
|||
1 & -1\\ |
|||
0 & 1 |
|||
\end{array}\right].</math> |
|||
From Ackermann's formula, we can find a matrix {{math|'''k'''}} that will change the system so that its characteristic equation will be equal to a desired polynomial. Suppose we want <math>\Delta_\text{desired}(s) = s^2 + 11s + 30.</math> |
|||
Also, we have that <math>A^2=\left[\begin{array}{cc} |
|||
2 & 3\\ |
|||
Thus, <math>\Delta_\text{desired}(\mathbf{A}) = \mathbf{A}^2 + 11\mathbf{A} + 30\mathbf{I}</math> and computing the controllability matrix yields |
|||
3 & 5 |
|||
\end{array}\right].</math> |
|||
<math display=block>\begin{align} |
|||
\mathcal{C} &= \begin{bmatrix} |
|||
\mathbf{B} & \mathbf{AB} |
|||
\end{bmatrix} = \begin{bmatrix} |
|||
1 & 1 \\ |
|||
0 & 1 |
|||
\end{bmatrix} \\[4pt] |
|||
\implies \mathcal{C}^{-1} &= \begin{bmatrix} |
|||
1 & -1 \\ |
|||
0 & 1 |
|||
\end{bmatrix} |
|||
\end{align}</math> |
|||
Also, we have that <math>\mathbf{A}^2 = \left[\begin{smallmatrix} |
|||
2 & 3 \\ |
|||
3 & 5 |
|||
\end{smallmatrix}\right].</math> |
|||
Finally, from Ackermann's formula |
Finally, from Ackermann's formula |
||
<math display=block>\begin{align} |
|||
\mathbf{k}^{\rm T} &= \begin{bmatrix} |
|||
0 & 1 |
|||
\end{bmatrix}\begin{bmatrix} |
|||
0 & 1 |
|||
1 & -1\\ |
|||
\end{array}\right]\left[\left[\begin{array}{cc} |
|||
0 & 1 |
|||
\end{bmatrix}\left(\begin{bmatrix} |
|||
3 & 5 |
|||
2 & 3\\ |
|||
\end{array}\right]+11\left[\begin{array}{cc} |
|||
3 & 5 |
|||
\end{bmatrix} + 11\begin{bmatrix} |
|||
1 & 2 |
|||
1 & 1\\ |
|||
\end{array}\right]+30I\right]</math> |
|||
1 & 2 |
|||
:<math>k^T=\left[\begin{array}{cc} |
|||
\end{bmatrix} + 30\mathbf{I} \right) \\[2pt] |
|||
&= \begin{bmatrix} |
|||
1 & -1\\ |
|||
0 & 1 |
0 & 1 |
||
\end{ |
\end{bmatrix} \begin{bmatrix} |
||
1 & -1\\ |
|||
0 & 1 |
|||
\end{ |
\end{bmatrix}\begin{bmatrix} |
||
43 & 14\\ |
|||
0 & 1\end{array}\right]\left[\begin{array}{cc} |
|||
14 & 57 |
|||
\end{bmatrix} \\[2pt] |
|||
14 & 57 |
|||
&= \begin{bmatrix} |
|||
\end{array}\right]</math> |
|||
0 & 1 |
|||
:<math>k^T=\left[\begin{array}{cc} |
|||
\end{bmatrix} \begin{bmatrix} |
|||
29 & -43\\ |
|||
14 & 57 |
|||
\end{bmatrix} \\[6pt] |
|||
&= \begin{bmatrix} |
|||
14 & 57 |
|||
\end{bmatrix} |
|||
\end{align}</math> |
|||
== State observer design == |
|||
==References== |
|||
Ackermann's formula can also be used for the design of [[State observer|state observers]]. Consider the linear discrete-time observed system |
|||
{{Reflist}} |
|||
<math display=block>\begin{align} |
|||
\mathbf\hat{x}(n+1) &= \mathbf{A\hat{x}}(n) + \mathbf{Bu}(n) + \mathbf{L}[\mathbf{y}(n) - \mathbf\hat{y}(n)] \\ |
|||
\mathbf\hat{y}(n) &= \mathbf{C\hat{x}}(n) |
|||
\end{align}</math> |
|||
with observer gain {{math|'''L'''}}. Then Ackermann's formula for the design of state observers is noted as |
|||
<math display=block> |
|||
\mathbf{L}^{\rm T} = \begin{bmatrix} |
|||
0 & 0 & \cdots & 1 |
|||
\end{bmatrix}(\mathcal{O}^{\rm T})^{-1} \Delta_\text{new}(\mathbf{A}^{\rm T}) |
|||
</math> |
|||
with [[Observability|observability matrix]] <math>\mathcal{O}</math>. Here it is important to note, that the observability matrix and the system matrix are '''transposed''': <math>\mathcal{O}^{\rm T}</math> and {{math|'''A'''{{sup|T}}}}. |
|||
Ackermann's formula can also be applied on continuous-time observed systems. |
|||
== See also == |
== See also == |
||
* [[Full state feedback]] |
* [[Full state feedback]] |
||
==References== |
|||
{{Reflist}} |
|||
== External links == |
== External links == |
||
* [[wikibooks: |
* [[wikibooks:Control Systems/State Feedback#Ackerman.27s formula|Chapter about Ackermann's Formula on Wikibook of Control Systems and Control Engineering]] |
||
[[Category:Mathematical concepts]] |
|||
[[Category:Engineering concepts]] |
[[Category:Engineering concepts]] |
||
[[Category:Control engineering]] |
[[Category:Control engineering]] |
||
[[Category:Control theory]] |
Latest revision as of 18:03, 28 November 2024
This article may be too technical for most readers to understand.(July 2017) |
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, 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
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
In this new realization, the poles will be dependent on the characteristic polynomial Δnew of A − Bk, that is
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 r, such as
where kT is a feedback vector of compatible dimensions. Ackermann's formula states that the design process can be simplified by only computing the following equation:
in which Δnew(A) is the desired characteristic polynomial evaluated at matrix A, and is the controllability matrix of the system.
Proof
[edit]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 ACL results in
Replacing the previous equations into Δ(ACL) yields
Rewriting the above equation as a matrix product and omitting terms that kT does not appear isolated yields
From the Cayley–Hamilton theorem, Δ(ACL) = 0, thus
Note that is the controllability matrix of the system. Since the system is controllable, is invertible. Thus,
To find kT, both sides can be multiplied by the vector giving
Thus,
Example
[edit]Consider[4]
We know from the characteristic polynomial of A that the system is unstable since
the matrix A 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 k 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
Also, we have that
Finally, from Ackermann's formula
State observer design
[edit]Ackermann's formula can also be used for the design of state observers. Consider the linear discrete-time observed system
with observer gain L. Then Ackermann's formula for the design of state observers is noted as
with observability matrix . Here it is important to note, that the observability matrix and the system matrix are transposed: and AT.
Ackermann's formula can also be applied on continuous-time observed systems.
See also
[edit]References
[edit]- ^ 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.
- ^ Modern Control System Theory and Design, 2nd Edition by Stanley M. Shinners
- ^ Ackermann, J. E. (2009). "Pole Placement Control". Control systems, robotics and automation. Unbehauen, Heinz. Oxford: Eolss Publishers Co. Ltd. ISBN 9781848265905. OCLC 703352455.
- ^ "Topic #13 : 16.31 Feedback Control" (PDF). Web.mit.edu. Retrieved 2017-07-06.