Английская Википедия: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

Шаблон:Reflist

External links

  1. Шаблон:Cite journal
  2. Modern Control System Theory and Design, 2nd Edition by Stanley M. Shinners
  3. Шаблон:Cite book
  4. Шаблон:Cite web