Hinf and LQR Design
Hinf and LQR Design
November 7, 2021
1 Polytopic system:
Consider the following discrete-time polytopic system:
N
!
X
xk+1 = αk (i)Ai xk + Buk + Ewk (1)
i=1
where xk ∈ Rn is the state vector, at instant k, and xk+1 its successor, uk ∈ Rp and wk ∈ Rm
are the control input and the process disturbance input, respectively. Matrices Ai with
i = {1, 2, . . . , N }, B and E are the state-space matrices with appropriated dimensions.
LPV systems where the scheduling parameter ρk appears in an affine form into the state-
space matrices, can be written in a polytopical form as follows:
N
!
X
A(ρk ) = αk (i)Ai (2)
i=1
for a given scheduling parameter ρk ∈ Ωρ , then there exists a column vector αk ∈ RN , formed
by positive scalar elements αk (i) ≥ 0, i = {1, . . . , N }, such that
αk (1)
θ1 θ2 . . . θN αk (2)
ρk
.. = (3)
1 1 ... 1 1
.
| {z }
M (θ) αk (N )
| {z }
αk
where the column vectors θi ∈ RL , i = {1, . . . , N }, are the a priori known vertices of the
polytopic set Ωρ ⊂ RL . Notice that the column vector αk ∈ RN , solving the Problem (3) can
be obtained as a solution of a LP problem. In Section ?? it is presented an algorithm for
solving this problem in real-time, allowing the implementation of polytopic controllers and/or
observers.
1
2 Polytopic H∞ state feedback control design
For a given symmetric matrix Q ∈ Rn×n , positive definite Q 0. The closed-loop system has a
quadratic H∞ performance less than γ (γ > 0) if there exist a symmetric positive definite matrix
U ∈ Rn×n and matrices Yi ∈ Rn×p , for i = {1, . . . , N }, satisfying the following condition:
UAi − Yi BT
−U 0n×m U
? −γ 2 Im×m ET 0m×n 0
(4)
? ? −U 0n×n
? ? ? −Q−1
for i = {1, . . . , N }.
where the polytopic state-feedback gain matrices , Ki ∈ Rp×n , are obtained as:
Ki = (U−1 Yi )T (6)
for i = {1, . . . , N }.
This means that we can chose a matrix Q to focus the optimization to a particular ”perfor-
mance” output. For instance, if we are interested on minimizing the impact of the disturbance
wk on the output zk , with zk = Hxk , then we can chose Q = HT H and obtaining that:
where vk stands by measurements noise. Consider the polytopic estimation error dynamics:
N
!
X wk
ek+1 = αk (i)(Ai − Li C) ek + [E Li F] (10)
vk
i=1
For a given symmetric matrix Q ∈ Rn×n , Q 0, the H∞ norm of the estimation error
dynamics is less than γ > 0 if there exist a symmetric positive definite matrix P ∈ Rn×n and
matrices Ui ∈ Rn×q satisfying the following condition:
ATi P − CT UTi
−P + Q 0n×m
? −γ 2 Im×m [PE − Ui F]T 0 (11)
? ? −P
2
for i = {1, . . . , N }.
Moreover, the observer gain matrices Li ∈ Rn×q , can be obtained as
Li = P−1 Ui (12)
for i = {1, . . . , N }.
The polytopic observer is implemented as follows:
N
! N
!
X X
x̂k+1 = αk (i)Ai x̂k + Buk + αk (i)Li (yk − Cx̂k ) (13)
i=1 i=1
with m ≤ n.
3
4 Polytopic LQR synthesis
A LQR problem can be solved by finding a state feedback gain K and a matrix P 0 such
that:
min trace (C − DK)P (C − DK)T
(18)
P >0 (19)
(A − BK)P (A − BK)T − P + Q ≤ 0 (20)
which means that we looking for the gain K which minimizes a quadratic function of the output
z = Cx + Du (i.e. the norm 2 of z) with
1/2
Q
C= (21)
0
and
0
D= (22)
R1/2
The problem (18)-(20) can be numerically solved by re-written the problem as a LMI. Remark
that condition (20) can be written as:
(A − BK)P P −1 P (A − BK)T − P + Q ≤ 0 (23)
Now applying a Schur complement, the condition becomes:
−P + Q (AP − BKP )
0 (24)
∗ −P
Thus, by considering a change of variables, Y := KP :
−P + Q (AP − BY )
0 (25)
∗ −P
In addition, the cost function has to be rewritten by defining an upper bound as follows:
W ≥ (C − DK)P (C − DK)T
(26)
and by applying a Schur complement to that condition, we have:
W (CP + DY )
0 (27)
∗ P
The LQR problem becomes to find W , P and Y such that
min trace (W ) (28)
P >0 (29)
subject to condition (25) and (27).
Exercise: Explain why it is possible to use that problem statement to solve the LQR
problem for polytopic systems ?
Write the problem in a polytopic form. Provide an example of Matlab code which allow us to
numerically solve this problem (use for instance CVX toolbox).