Ackermann's formula

From testwiki
Revision as of 20:02, 31 January 2025 by imported>7804j
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Short description Template:DistinguishIn control theory, Ackermann's formula provides a method for designing controllers to achieve desired system behavior by directly calculating the feedback gains needed to place the closed-loop system's poles (eigenvalues)[1] at specific locations (pole allocation problem).

These poles directly influence how the system responds to inputs and disturbances. Ackermann's formula provides a direct way to calculate the necessary adjustments—specifically, the feedback gains—needed to move the system's poles to the target locations. This method, developed by Jürgen Ackermann,[2] is particularly useful for systems that don't change over time (time-invariant systems), allowing engineers to precisely control the system's dynamics, such as its stability and responsiveness.

State feedback control

Consider a linear continuous-time invariant system with a state-space representation

𝐱˙(t)=𝐀𝐱(t)+𝐁𝐮(t)𝐲(t)=𝐂𝐱(t)

where Template:Math is the state vector, Template:Math is the input vector, and Template:Math 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)=𝐂(s𝐈𝐀)1𝐁=𝐂 adj(s𝐈𝐀)det(s𝐈𝐀) 𝐁.

where Template:Math is the determinant and Template:Math is the adjugate. Since the denominator of the right equation is given by the characteristic polynomial of Template:Math, the poles of Template:Mvar are eigenvalues of Template:Math (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 Template:Math, 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 Template:Math that will feed the state variable Template:Math into the input Template:Math.

If the system is controllable, there is always an input Template:Math such that any state Template:Math can be transferred to any other state Template:Math. With that in mind, a feedback loop can be added to the system with the control input Template:Math, such that the new dynamics of the system will be

𝐱˙(t)=𝐀𝐱(t)+𝐁[𝐫(t)𝐤𝐱(t)]=[𝐀𝐁𝐤]𝐱(t)+𝐁𝐫(t),𝐲(t)=𝐂𝐱(t).

In this new realization, the poles will be dependent on the characteristic polynomial Template:Math of Template:Math, that is

Δnew(s)=det(s𝐈(𝐀𝐁𝐤)).

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 Template:Math, such as

𝐮(t)=𝐤T𝐱(t)𝐱˙(t)=𝐀𝐱(t)𝐁𝐤T𝐱(t),

where Template: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:

𝐤T=[001]𝒞1Δnew(𝐀),

in which Template:Math is the desired characteristic polynomial evaluated at matrix Template:Math, and 𝒞 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 𝐀CL:=(𝐀𝐁𝐤T) is given by

Δ(𝐀CL)=(𝐀CL)n+k=0n1αk𝐀CLk

Calculating the powers of Template:Math results in

(𝐀CL)0= (𝐀𝐁𝐤T)0=𝐈(𝐀CL)1= (𝐀𝐁𝐤T)1=𝐀𝐁𝐤T(𝐀CL)2= (𝐀𝐁𝐤T)2=𝐀2𝐀𝐁𝐤T𝐁𝐤T𝐀+(𝐁𝐤T)2=𝐀2𝐀𝐁𝐤T(𝐁𝐤T)[𝐀𝐁𝐤T]=𝐀2𝐀𝐁𝐤T𝐁𝐤T𝐀CL (𝐀CL)n= (𝐀𝐁𝐤T)n=𝐀n𝐀n1𝐁𝐤T𝐀n2𝐁𝐤T𝐀CL𝐁𝐤T𝐀CLn1

Replacing the previous equations into Template:Math yields

Δ(𝐀CL)=(𝐀n𝐀n1𝐁𝐤T𝐀n2𝐁𝐤T𝐀CL𝐁𝐤T𝐀CLn1)(𝐀CL)n++α2(𝐀2𝐀𝐁𝐤T𝐁𝐤T𝐀CL)+α1(𝐀𝐁𝐤T)+α0𝐈k=0n1αk𝐀CLk=(𝐀n+αn1𝐀n1++α2𝐀2+α1𝐀+α0𝐈)(𝐀n1𝐁𝐤T+𝐀n2𝐁𝐤T𝐀CL++𝐁𝐤T𝐀CLn1)+α2(𝐀𝐁𝐤T+𝐁𝐤T𝐀CL)α1(𝐁𝐤T)=Δ(𝐀)(𝐀n1𝐁𝐤T+𝐀n2𝐁𝐤T𝐀CL++𝐁𝐤T𝐀CLn1)α2(𝐀𝐁𝐤T+𝐁𝐤T𝐀CL)α1(𝐁𝐤T)

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

Δ(𝐀CL)=Δ(𝐀)[𝐁𝐀𝐁𝐀n1𝐁][𝐤T]

From the Cayley–Hamilton theorem, Template:Math, thus

[𝐁𝐀𝐁𝐀n1𝐁][𝐤T]=Δ(𝐀)

Note that 𝒞=[𝐁𝐀𝐁𝐀n1𝐁] is the controllability matrix of the system. Since the system is controllable, 𝒞 is invertible. Thus,

[𝐤T]=𝒞1Δ(𝐀)

To find Template:Math, both sides can be multiplied by the vector [001] giving

[001][𝐤T]=[001]𝒞1Δ(𝐀)

Thus,

𝐤T=[001]𝒞1Δ(𝐀)

Example

Consider[4]

𝐱˙=[1112]𝐱+[10]𝐮

We know from the characteristic polynomial of Template:Math that the system is unstable since

det(s𝐈𝐀)=(s1)(s2)1=s23s+2,

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

𝐤=[k1k2].

From Ackermann's formula, we can find a matrix Template:Math that will change the system so that its characteristic equation will be equal to a desired polynomial. Suppose we want Δdesired(s)=s2+11s+30.

Thus, Δdesired(𝐀)=𝐀2+11𝐀+30𝐈 and computing the controllability matrix yields

𝒞=[𝐁𝐀𝐁]=[1101]𝒞1=[1101]

Also, we have that 𝐀2=[2335].

Finally, from Ackermann's formula

𝐤T=[01][1101]([2335]+11[1112]+30𝐈)=[01][1101][43141457]=[01][29431457]=[1457]

State observer design

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

𝐱^(n+1)=𝐀𝐱^(n)+𝐁𝐮(n)+𝐋[𝐲(n)𝐲^(n)]𝐲^(n)=𝐂𝐱^(n)

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

𝐋T=[001](𝒪T)1Δnew(𝐀T)

with observability matrix 𝒪. Here it is important to note, that the observability matrix and the system matrix are transposed: 𝒪T and Template:Math.

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

See also

References

Template:Reflist

  1. Modern Control System Theory and Design, 2nd Edition by Stanley M. Shinners
  2. Template:Cite journal
  3. Template:Cite book
  4. Template:Cite web