State feedback control
edit
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} \\[4pt]&=\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 x 0 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 {r} (t)-\mathbf {kx} (t)]\\[2pt]&=[\mathbf {A} -\mathbf {Bk} ]\mathbf {x} (t)+\mathbf {Br} (t),\\[4pt]\mathbf {y} (t)&=\mathbf {Cx} (t).\end{aligned}}}
In this new realization, the poles will be dependent on the characteristic polynomial Δnew of A − Bk , 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 )}.}
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)\\[2pt]\mathbf {\dot {x}} (t)&=\mathbf {Ax} (t)-\mathbf {Bk} ^{\rm {T}}\mathbf {x} (t),\end{aligned}}}
where k 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:
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.
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
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 A CL 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} \\[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]&=\mathbf {A} ^{2}-\mathbf {ABk} ^{\rm {T}}-\mathbf {Bk} ^{\rm {T}}\mathbf {A} +(\mathbf {Bk} ^{\rm {T}})^{2}\\[2pt]&=\mathbf {A} ^{2}-\mathbf {ABk} ^{\rm {T}}-(\mathbf {Bk} ^{\rm {T}})[\mathbf {A} -\mathbf {Bk} ^{\rm {T}}]\\[2pt]&=\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{aligned}}}
Replacing the previous equations into Δ(A CL ) 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}}\\[4pt]&=(\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]&=\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 T 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 , Δ(A CL ) = 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 T , 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} )}
Consider[ 4]
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}}\\[4pt]\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[{\begin{smallmatrix}2&3\\3&5\end{smallmatrix}}\right].}
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)\\[2pt]&={\begin{bmatrix}0&1\end{bmatrix}}{\begin{bmatrix}1&-1\\0&1\end{bmatrix}}{\begin{bmatrix}43&14\\14&57\end{bmatrix}}\\[2pt]&={\begin{bmatrix}0&1\end{bmatrix}}{\begin{bmatrix}29&-43\\14&57\end{bmatrix}}\\[6pt]&={\begin{bmatrix}14&57\end{bmatrix}}\end{aligned}}}
State observer design
edit
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 {y} (n)-\mathbf {\hat {y}} (n)]\\\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 T .
Ackermann's formula can also be applied on continuous-time observed systems.