Английская Википедия:Ackermann's formula
Шаблон:Distinguish Шаблон:Technical
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> \dot{x}(t)=Ax(t)+Bu(t) </math>
- <math> 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> 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>u(t)</math> such that any state <math>x_{0}</math> can be transferred to any other state <math>x(t)</math>. With that in mind, a feedback loop can be added to the system with the control input <math>u(t)=r(t)-Kx(t)</math>, such that the new dynamics of the system will be
- <math>\dot{x}(t)=Ax(t)+B[r(t)-Kx(t)]= [A-BK] x(t)+Br(t)</math>
- <math>y(t)=Cx(t).</math>
In this new realization, the poles will be dependent on the characteristic polynomial <math>\Delta_{new}</math> of <math>A-BK</math>, that is
- <math>\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>r</math>, such as
- <math>u(t)=-k^T x(t)</math>
- <math>\dot x(t)=Ax(t)-Bk^T x(t),</math>
where <math>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>k^T =\left[0\ 0\ \cdots \ 0\ 1\right]\mathcal{C}^{-1}\Delta_\text{new}(A),
</math>
in which <math>\Delta_\text{new}(A)</math> is the desired characteristic polynomial evaluated at matrix <math>A</math>, and <math>\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>A_{CL}:=(A-Bk^{T})</math> is given by
- <math>\Delta(A_{CL})=(A_{CL})^n + \sum_{k=0}^{n-1} \alpha_k A_{CL}^{k}</math>
Calculating the powers of <math>A_{CL}</math> results in
- <math>\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>\Delta(A_{CL})</math> yields<math display="block">\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>k^T</math> does not appear isolated yields
- <math display="block">\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>\Delta\left(A_{CL}\right)=0</math>, thus
<math>\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>\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>\mathcal{C}</math> is invertible. Thus,
- <math>\left[\begin{array}{c}
\star \\ \vdots\\ k^{T} \end{array}\right]=\mathcal{C}^{-1}\Delta(A)</math>
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>\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>k^{T}=\left[\begin{array}{ccccc}
0 & 0 & 0 & \cdots & 1\end{array}\right]\mathcal{C}^{-1}\Delta(A)</math>
Example
Consider[4]
<math>\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>A</math> that the system is unstable since <math>det(sI-A)=(s-1)(s-2)-1=s^2-3s+2</math>, the matrix <math>A</math> will only have positive eigenvalues. Thus, to stabilize the system we shall put a feedback gain <math>K=\left[\begin{array}{cc} k_1 & k_2\end{array}\right]. </math>
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>.
Thus, <math>\Delta_\text{desired}(A)=A^2+11A+30I</math> and computing the controllability matrix yields
- <math>\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>\mathcal{C}^{-1}=\left[\begin{array}{cc} 1 & -1\\ 0 & 1 \end{array}\right].</math>
Also, we have that <math>A^2=\left[\begin{array}{cc} 2 & 3\\ 3 & 5 \end{array}\right].</math>
Finally, from Ackermann's formula
- <math>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>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>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> \hat{x}(n+1) = A \hat{x}(n) + B u(n) + L [\hat{y}(n) - y(n)] </math>
- <math> \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>L^{\top} =\left[0\ 0\ \cdots \ 0\ 1\right](\mathcal{O}^{\top})^{-1} \Delta_\text{new}(A^{\top})
</math>
with 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}^{\top}</math> and <math>A^{\top}</math>.
Ackermann's formula can also be applied on continuous-time observed systems.
See also
References
External links
- ↑ Шаблон:Cite journal
- ↑ Modern Control System Theory and Design, 2nd Edition by Stanley M. Shinners
- ↑ Шаблон:Cite book
- ↑ Шаблон:Cite web