Regionless Explicit MPC of a Distillation Columndrgona/files/presentation/ECC16.pdf · Regionless...
Transcript of Regionless Explicit MPC of a Distillation Columndrgona/files/presentation/ECC16.pdf · Regionless...
Regionless Explicit MPC of a Distillation Column
Ján Drgoňa, Filip Janeček, Martin Klaučo, and Michal Kvasnica
Slovak University of Technology in Bratislava, Slovakia
June 30, 2016
IAM
Ján Drgoňa (STU) ECC16 June 30, 2016 1 / 17
Model Predictive Control
Ján Drgoňa (STU) ECC16 June 30, 2016 2 / 17
Model Predictive Control
Ján Drgoňa (STU) ECC16 June 30, 2016 2 / 17
Model Predictive Control
Ján Drgoňa (STU) ECC16 June 30, 2016 2 / 17
Implicit vs Explicit MPC
Implicit MPC Explicit MPC
Ján Drgoňa (STU) ECC16 June 30, 2016 3 / 17
Implicit vs Explicit MPC
Implicit MPC
Large systems
Expensive implementation
Matrix inversions
Harder to certify
Explicit MPC
Ján Drgoňa (STU) ECC16 June 30, 2016 3 / 17
Implicit vs Explicit MPC
Implicit MPC
Large systems
Expensive implementation
Matrix inversions
Harder to certify
Explicit MPC
Small systems
Cheap implementation
Division-free
Rigorous analysis
Ján Drgoňa (STU) ECC16 June 30, 2016 3 / 17
Implicit vs Explicit MPC
Implicit MPC
Large systems
Expensive implementation
Matrix inversions
Harder to certify
Explicit MPC
Small systems
Cheap implementation
Division-free
Rigorous analysis
Regionless Explicit MPC
Ján Drgoňa (STU) ECC16 June 30, 2016 3 / 17
Region-Based Explicit MPC
minU
1
2UT HU + θT FU
s.t. GU ≤ w + Sθ
Ján Drgoňa (STU) ECC16 June 30, 2016 4 / 17
Region-Based Explicit MPC
U⋆ = Viθ + vi
λ⋆ = Qiθ + qi
Ri = θ | GU⋆ ≤ w + Sθ, λ⋆ ≥ 0
Ján Drgoňa (STU) ECC16 June 30, 2016 4 / 17
Active Sets – Geometric Method1
1M. Baotić: Optimal Control of Piecewise Affine Systems – A Multi-parametric Approach, 2005
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Pick an arbitrary point in Ω.
1M. Baotić: Optimal Control of Piecewise Affine Systems – A Multi-parametric Approach, 2005
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Construct an initial critical region. R1
1M. Baotić: Optimal Control of Piecewise Affine Systems – A Multi-parametric Approach, 2005
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Pick new points in Ω. R1
1M. Baotić: Optimal Control of Piecewise Affine Systems – A Multi-parametric Approach, 2005
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Construct new critical regions. R1
R2R3
R4
R5
R6
R7
1M. Baotić: Optimal Control of Piecewise Affine Systems – A Multi-parametric Approach, 2005
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Repeat recursively until whole Ω iscovered.
R1
R2R3
R4
R5
R6
R7
1M. Baotić: Optimal Control of Piecewise Affine Systems – A Multi-parametric Approach, 2005
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Repeat recursively until whole Ω iscovered.
R1
R2R3
R4
R5
R6
R7
R8
R9
R10R11
R12
R13
R14
R15
R16
R17R18
R19
1M. Baotić: Optimal Control of Piecewise Affine Systems – A Multi-parametric Approach, 2005
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
The Idea
Avoid the construction and thestorage of regions!
R1
R2R3
R4
R5
R6
R7
R8
R9
R10R11
R12
R13
R14
R15
R16
R17R18
R19
Ján Drgoňa (STU) ECC16 June 30, 2016 6 / 17
The Idea
U⋆ = Viθ + viV (Ai)
λ⋆ = Qiθ + qiQ(Ai)
Ri = θ | GU⋆ ≤ w + Sθ, λ⋆ ≥ 0
R1
R2R3
R4
R5
R6
R7
R8
R9
R10R11
R12
R13
R14
R15
R16
R17R18
R19
Ján Drgoňa (STU) ECC16 June 30, 2016 6 / 17
The Idea2
U⋆ = V (Ai)θ + v(Ai)
λ⋆ = Q(Ai)θ + q(Ai)
A = A1, . . . ,AR
A1
A2A3
A4
A5
A6
A7
A8
A9
A10A11
A12
A13
A14
A15
A16
A17A18
A19
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 6 / 17
Active Sets – Extensive Enumeration3
. . .. . .
. . .. . .
. . .
1 2 3 r
1, 2 1, 3 1, r 3, 1 3, 2 3, r
1, 3, 2 1, 3, r 3, 1, 2 3, 1, r
A1
A2A3
A4
A5
A6
A7
A8
A9
A10A11
A12
A13
A14
A15
A16
A17A18
A19
3A. Gupta et. al.: A novel approach to multiparametric quadratic programming, Automatica 2011
Ján Drgoňa (STU) ECC16 June 30, 2016 7 / 17
Active Sets – Extensive Enumeration3 – Tree Pruning
. . .. . .
. . .. . .
. . .
1 2 3 r
1, 2 1, 3 1, r 3, 1 3, 2 3, r
1, 3, 2 1, 3, r 3, 1, 2 3, 1, r
A1
A2A3
A4
A5
A6
A7
A8
A9
A10A11
A12
A13
A14
A15
A16
A17A18
A19
3A. Gupta et. al.: A novel approach to multiparametric quadratic programming, Automatica 2011
Ján Drgoňa (STU) ECC16 June 30, 2016 7 / 17
Explicit MPC Solution Recap
Region-Based Approach
Off-line phase
On-line phase
Ján Drgoňa (STU) ECC16 June 30, 2016 8 / 17
Explicit MPC Solution Recap
Region-Based Approach
Off-line phase
1 Active Sets
On-line phase
Ján Drgoňa (STU) ECC16 June 30, 2016 8 / 17
Explicit MPC Solution Recap
Region-Based Approach
Off-line phase
1 Active Sets
Geometric method
On-line phase
Ján Drgoňa (STU) ECC16 June 30, 2016 8 / 17
Explicit MPC Solution Recap
Region-Based Approach
Off-line phase
1 Active Sets
Geometric methodExtensive enumeration
On-line phase
Ján Drgoňa (STU) ECC16 June 30, 2016 8 / 17
Explicit MPC Solution Recap
Region-Based Approach
Off-line phase
1 Active Sets
Geometric methodExtensive enumeration
2 U⋆, λ⋆ from KKT conditions
On-line phase
Ján Drgoňa (STU) ECC16 June 30, 2016 8 / 17
Explicit MPC Solution Recap
Region-Based Approach
Off-line phase
1 Active Sets
Geometric methodExtensive enumeration
2 U⋆, λ⋆ from KKT conditions
3 Construction of regions
On-line phase
Ján Drgoňa (STU) ECC16 June 30, 2016 8 / 17
Explicit MPC Solution Recap
Region-Based Approach
Off-line phase
1 Active Sets
Geometric methodExtensive enumeration
2 U⋆, λ⋆ from KKT conditions
3 Construction of regions
On-line phase
4 Function evaluation
Ján Drgoňa (STU) ECC16 June 30, 2016 8 / 17
Explicit MPC Solution Recap
Regionless Approach
Off-line phase
1 Active Sets
Geometric methodExtensive enumeration
2 U⋆, λ⋆ from KKT conditions
3 Construction of regions
On-line phase
4 Point location
Ján Drgoňa (STU) ECC16 June 30, 2016 8 / 17
Point Location Problem2
How to find in which region we are,without storing any regions? A1
A2A3
A4
A5
A6
A7
A8
A9
A10A11
A12
A13
A14
A15
A16
A17A18
A19
?
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 9 / 17
Point Location Problem2
U⋆ = V (Ai)θ + v(Ai)
λ⋆ = Q(Ai)θ + q(Ai)
R(Ai) = θ | GU⋆ ≤ w + Sθ, λ⋆ ≥ 0
A1
A2A3
A4
A5
A6
A7
A8
A9
A10A11
A12
A13
A14
A15
A16
A17A18
A19
?
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 9 / 17
Point Location Problem2
U⋆ = V (A1)θ + v(A1)
λ⋆ = Q(A1)θ + q(A1)
R(A1) = θ | GU⋆ ≤ w + Sθ, λ⋆ ≥ 0
A1
A2A3
A4
A5
A6
A7
A8
A9
A10A11
A12
A13
A14
A15
A16
A17A18
A19
?
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 9 / 17
Point Location Problem2
U⋆ = V (A2)θ + v(A2)
λ⋆ = Q(A2)θ + q(A2)
R(A2) = θ | GU⋆ ≤ w + Sθ, λ⋆ ≥ 0
A1
A2A3
A4
A5
A6
A7
A8
A9
A10A11
A12
A13
A14
A15
A16
A17A18
A19
?
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 9 / 17
Point Location Problem2
U⋆ = V (A2)θ + v(A2)
λ⋆ = Q(A2)θ + q(A2)
R(A2) = θ | GU⋆ ≤ w + Sθ, λ⋆ ≥ 0
A1
A2A3
A4
A5
A6
A7
A8
A9
A10A11
A12
A13
A14
A15
A16
A17A18
A19
U⋆
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 9 / 17
Sequential search2
1: procedure Regionless(θ)2: for i ∈ 1, . . . , R do
3: Compute λ = Q(Ai)θ + q(Ai)4: if λ ≥ 0 then
5: Compute U = V (Ai)θ + v(Ai)6: if GU ≤ w + Sθ then
7: U⋆ ← U
8: return U⋆
9: end if
10: end if
11: end for
12: end procedure
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 10 / 17
Sequential search2
1: procedure Regionless(θ) ⊲ given initial condition θ
2: for i ∈ 1, . . . , R do
3: Compute λ = Q(Ai)θ + q(Ai)4: if λ ≥ 0 then
5: Compute U = V (Ai)θ + v(Ai)6: if GU ≤ w + Sθ then
7: U⋆ ← U
8: return U⋆
9: end if
10: end if
11: end for
12: end procedure
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 10 / 17
Sequential search2
1: procedure Regionless(θ) ⊲ given initial condition θ
2: for i ∈ 1, . . . , R do
3: Compute λ = Q(Ai)θ + q(Ai)4: if λ ≥ 0 then ⊲ dual feasibility check5: Compute U = V (Ai)θ + v(Ai)6: if GU ≤ w + Sθ then
7: U⋆ ← U
8: return U⋆
9: end if
10: end if
11: end for
12: end procedure
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 10 / 17
Sequential search2
1: procedure Regionless(θ) ⊲ given initial condition θ
2: for i ∈ 1, . . . , R do
3: Compute λ = Q(Ai)θ + q(Ai)4: if λ ≥ 0 then ⊲ dual feasibility check5: Compute U = V (Ai)θ + v(Ai)6: if GU ≤ w + Sθ then ⊲ primal feasibility check7: U⋆ ← U
8: return U⋆
9: end if
10: end if
11: end for
12: end procedure
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 10 / 17
Sequential search2
1: procedure Regionless(θ) ⊲ given initial condition θ
2: for i ∈ 1, . . . , R do
3: Compute λ = Q(Ai)θ + q(Ai)4: if λ ≥ 0 then ⊲ dual feasibility check5: Compute U = V (Ai)θ + v(Ai)6: if GU ≤ w + Sθ then ⊲ primal feasibility check7: U⋆ ← U
8: return U⋆ ⊲ obtain globally optimal U⋆
9: end if
10: end if
11: end for
12: end procedure
2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 10 / 17
Sequential search2
1: procedure Regionless(θ) ⊲ given initial condition θ
2: for i ∈ 1, . . . , R do
3: Compute λ = Q(Ai)θ + q(Ai)4: if λ ≥ 0 then ⊲ dual feasibility check5: Compute U = V (Ai)θ + v(Ai)6: if GU ≤ w + Sθ then ⊲ primal feasibility check7: U⋆ ← U
8: return U⋆ ⊲ obtain globally optimal U⋆
9: end if
10: end if
11: end for
12: end procedure
Q(Ai), q(Ai), V (Ai), v(Ai ), G , w , S are precomputed and stored off-line.2F. Borrelli and M. Baotić: On the computation of linear model predictive control laws, Automatica 2008
Ján Drgoňa (STU) ECC16 June 30, 2016 10 / 17
Sequential search4
1: procedure Regionless(θ) ⊲ given initial condition θ
2: for i ∈ 1, . . . , R do
3: Compute λ = Q(Ai)θ + q(Ai)4: if λ ≥ 0 then ⊲ dual feasibility check5: Compute U = −H−1(F T θ + GT
Aiλ) ⊲ U parametrized by λ
6: if GU ≤ w + Sθ then ⊲ primal feasibility check7: U⋆ ← U
8: return U⋆ ⊲ obtain globally optimal U⋆
9: end if
10: end if
11: end for
12: end procedure
4M. Kvasnica, et. al.: On Region-Free Explicit Model Predictive Control, Conference on Decision and Control 2015
Ján Drgoňa (STU) ECC16 June 30, 2016 10 / 17
Sequential search4
1: procedure Regionless(θ) ⊲ given initial condition θ
2: for i ∈ 1, . . . , R do
3: Compute λ = Q(Ai)θ + q(Ai)4: if λ ≥ 0 then ⊲ dual feasibility check5: Compute U = −H−1(F T θ + GT
Aiλ) ⊲ U parametrized by λ
6: if GU ≤ w + Sθ then ⊲ primal feasibility check7: U⋆ ← U
8: return U⋆ ⊲ obtain globally optimal U⋆
9: end if
10: end if
11: end for
12: end procedure
Q(Ai), q(Ai),A, H−1, F , G , w , S are precomputed and stored off-line.4M. Kvasnica, et. al.: On Region-Free Explicit Model Predictive Control, Conference on Decision and Control 2015
Ján Drgoňa (STU) ECC16 June 30, 2016 10 / 17
Distillation Column – Process Unit
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Variables
1
2
Process variable: y
Temperature at top of the column
Manipulated variable: u
Reflux ratio
reboiler
pre-heaterfeed
condenser
distillateaccumulator
reflux valve distillate
waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 12 / 17
Model Identification
xk+1 = Axk + Buk
yk = Cxk
0 1000 2000 3000 4000
64
69
74
79
84
Time [s]y
[C
]
Measurement
Identification
0 1000 2000 3000 4000
0
20
40
60
80
100
Time [s]
u[%
]
Ján Drgoňa (STU) ECC16 June 30, 2016 13 / 17
Model Identification
xk+1 = Axk + Buk
yk = Cxk
nx = 10
0 1000 2000 3000 4000
64
69
74
79
84
Time [s]y
[C
]
Measurement
Identification
0 1000 2000 3000 4000
0
20
40
60
80
100
Time [s]
u[%
]
Ján Drgoňa (STU) ECC16 June 30, 2016 13 / 17
Disturbance Modelling
Design model:
xk+1 = Axk + Buk
yk = Cxk
Ján Drgoňa (STU) ECC16 June 30, 2016 14 / 17
Disturbance Modelling
Augmented design model:
xk+1 = Axk + Buk
dk+1 = dk
yk = Cxk + Edk
Ján Drgoňa (STU) ECC16 June 30, 2016 14 / 17
Disturbance Modelling
Augmented design model:
xk+1 = Axk + Buk
dk+1 = dk
yk = Cxk + Edk
Luenberger observer:
[
x
d
]
k+1
=
[
A 00 I
] [
x
d
]
k
+
[
B
0
]
uk + L (ym,k − yk)
yk =[
C E]
[
x
d
]
k
Ján Drgoňa (STU) ECC16 June 30, 2016 14 / 17
Model Predictive Control Formulation
minu0,...,uN−1
Nc−1∑
k=0
‖∆uk‖2Qu
+N
∑
k=0
‖yk − yref‖2Qy
reference tracking
s.t. xk+1 = Axk + Buk
yk = Cxk + Ed0
uk = uNc−1 move blocking
∆uk = uk − uk−1
umin ≤ uk ≤ umax
∆umin ≤ ∆uk ≤ ∆umax
x0 = x(t), d0 = d(t), u−1 = u(t − 1)
13 parameters!
Ján Drgoňa (STU) ECC16 June 30, 2016 15 / 17
Model Predictive Control Formulation
minu0,...,uN−1
Nc−1∑
k=0
‖∆uk‖2Qu
+N
∑
k=0
‖yk − yref‖2Qy
reference tracking
s.t. xk+1 = Axk + Buk
yk = Cxk + Ed0
uk = uNc−1 move blocking
∆uk = uk − uk−1
umin ≤ uk ≤ umax
∆umin ≤ ∆uk ≤ ∆umax
x0 = x(t), d0 = d(t), u−1 = u(t − 1)
13 parameters!
Ján Drgoňa (STU) ECC16 June 30, 2016 15 / 17
Model Predictive Control Formulation
minu0,...,uN−1
Nc−1∑
k=0
‖∆uk‖2Qu
+N
∑
k=0
‖yk − yref‖2Qy
reference tracking
s.t. xk+1 = Axk + Buk
yk = Cxk + Ed0
uk = uNc−1 move blocking
∆uk = uk − uk−1
umin ≤ uk ≤ umax
∆umin ≤ ∆uk ≤ ∆umax
x0 = x(t), d0 = d(t), u−1 = u(t − 1)
17 parameters!
Ján Drgoňa (STU) ECC16 June 30, 2016 15 / 17
Model Predictive Control Formulation
minu0,...,uN−1
Nc−1∑
k=0
‖∆uk‖2Qu
+N
∑
k=0
‖yk − yref‖2Qy
reference tracking
s.t. xk+1 = Axk + Buk
yk = Cxk + Ed0
uk = uNc−1 move blocking
∆uk = uk − uk−1
umin ≤ uk ≤ umax
∆umin ≤ ∆uk ≤ ∆umax
x0 = x(t), d0 = d(t), u−1 = u(t − 1)
17 parameters!
Ján Drgoňa (STU) ECC16 June 30, 2016 15 / 17
Experimental Results
Ts = 1 s, N = 40, Nc = 5, Qy = 400, Qu = 1
0 5 10 15 20 25 30 35 40
64
68
72
76
80
y[
C]
0 5 10 15 20 25 30 35 40
0
20
40
60
80
100
Time [min]
u[%
]
Ján Drgoňa (STU) ECC16 June 30, 2016 16 / 17
Experimental Results
Ts = 1 s, N = 40, Nc = 5, Qy = 400, Qu = 1
0 5 10 15 20 25 30 35 40
64
68
72
76
80
y[
C]
0 5 10 15 20 25 30 35 40
0
20
40
60
80
100
Time [min]
u[%
]
Ján Drgoňa (STU) ECC16 June 30, 2016 16 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Gurobi 38.74 ms ≈ 0 %
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Gurobi 38.74 ms ≈ 0 %Fiordos 1 13.00 ms ≈ 0 %
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Gurobi 38.74 ms ≈ 0 %Fiordos 1 13.00 ms ≈ 0 %Fiordos 2 13.15 ms ≈ 4 %
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Gurobi 38.74 ms ≈ 0 %Fiordos 1 13.00 ms ≈ 0 %Fiordos 2 13.15 ms ≈ 4 %Regionless 11.95 ms ≈ 0 %
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Gurobi 38.74 ms ≈ 0 %Fiordos 1 13.00 ms ≈ 0 %Fiordos 2 13.15 ms ≈ 4 %Regionless 11.95 ms ≈ 0 %
Execution time improvement by the factor of 6.
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Gurobi 38.74 ms ≈ 0 %Fiordos 1 13.00 ms ≈ 0 %Fiordos 2 13.15 ms ≈ 4 %Regionless 11.95 ms ≈ 0 %
Execution time improvement by the factor of 6.
off-line (17 params., 1095 active sets)
Regionless Region-based
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Gurobi 38.74 ms ≈ 0 %Fiordos 1 13.00 ms ≈ 0 %Fiordos 2 13.15 ms ≈ 4 %Regionless 11.95 ms ≈ 0 %
Execution time improvement by the factor of 6.
off-line (17 params., 1095 active sets)
Regionless Region-based
Construction time 1116 s 1360 s
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
on-line
method CPU time suboptimality
Gurobi 38.74 ms ≈ 0 %Fiordos 1 13.00 ms ≈ 0 %Fiordos 2 13.15 ms ≈ 4 %Regionless 11.95 ms ≈ 0 %
Execution time improvement by the factor of 6.
off-line (17 params., 1095 active sets)
Regionless Region-based
Construction time 1116 s 1360 sMemory demands 1224 kB 1140 MB
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: KKT Conditions
HU⋆ + F T θ + GTA λ⋆ = 0 stationarity
GAU⋆ = wA + SAθ primal equality
GN U⋆ < wN + SN θ primal inequality
λ⋆ ≥ 0 dual inequality
λ⋆T (GAU⋆ − wA − SAθ) = 0 complementarity slackness
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Extensive Enumeration3 – Optimality of A
maxt,U,θ,λ
t
s.t. HU + F T θ + GTA λ = 0
GAU = wA + SAθ
t ≤ wN + SN θ − GN U
λ ≥ t
t ≥ 0
if LP is feasible with t⋆ > 0 than A is optimal set of active constraints
3A. Gupta et. al.: A novel approach to multiparametric quadratic programming, Automatica 2011
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Extensive Enumeration3 – Complexity Bound
Rmax =Ncnu∑
k=0
nc!
k!(nc − k)!
Rmax = maximum number of A
Nc = control horizon
nu = number of control inputs
nc = number of constraints
R ≪ Rmax thanks to pruning
3A. Gupta et. al.: A novel approach to multiparametric quadratic programming, Automatica 2011
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Regionless Explicit MPC Memory Demands
Regionless
A 13918 integersQ(A), q(A) 54852 floating-point numbersH, F , G , w , S 11584 floating-point numbers
Total memory demands 11224 kB
Region-based
R 10004490 floating-point numbers
Total memory demands 11111140 MB
integer = 2 bytes, single-precision floating-point number = 4 bytes
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Regionally Optimal Map θ → U⋆
Q(A) = −(GAH−1GTA )−1(SA + GAH−1F T )
q(A) = −(GAH−1GTA )−1wA
λ⋆ = Q(A)θ + q(A)
U⋆ = −H−1(F T θ + GTA λ⋆)
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Control Scheme
MPCDistillation
Column
FilterObserver
PWMyref u ym
x , d , u
d
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Distillation Column – Hardware Solution
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17