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 Jn Drgoa (STU) ECC16 June 30, 2016 2 / - - PowerPoint PPT Presentation
Regionless Explicit MPC of a Distillation Column Jn Drgoa , Filip Janeek, Martin Klauo, and Michal Kvasnica Slovak University of Technology in Bratislava, Slovakia June 30, 2016 I AM Jn Drgoa (STU) ECC16 June 30, 2016 1 / 17 Model
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
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
min
U
1 2UT HU + θTFU 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
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Pick an arbitrary point in Ω.
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Construct an initial critical region.
R1
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Pick new points in Ω.
R1
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Construct new critical regions.
R1 R2 R3 R4 R5 R6 R7
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Repeat recursively until whole Ω is covered.
R1 R2 R3 R4 R5 R6 R7
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
Active Sets – Geometric Method1
Repeat recursively until whole Ω is covered.
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19
Ján Drgoňa (STU) ECC16 June 30, 2016 5 / 17
The Idea
Avoid the construction and the storage of regions!
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 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 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 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 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19
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 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19
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 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19
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 method Extensive 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 method Extensive 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 method Extensive 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 method Extensive 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 method Extensive 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 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19
?
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 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19
?
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 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19
?
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 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19
?
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 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19
U⋆
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
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
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 check
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
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 check
5:
Compute U = V (Ai)θ + v(Ai)
6:
if GU ≤ w + Sθ then ⊲ primal feasibility check
7:
U⋆ ← U
8:
return U⋆
9:
end if
10:
end if
11:
end for
12: end procedure
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 check
5:
Compute U = V (Ai)θ + v(Ai)
6:
if GU ≤ w + Sθ then ⊲ primal feasibility check
7:
U⋆ ← U
8:
return U⋆ ⊲ obtain globally optimal U⋆
9:
end if
10:
end if
11:
end for
12: end procedure
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 check
5:
Compute U = V (Ai)θ + v(Ai)
6:
if GU ≤ w + Sθ then ⊲ primal feasibility check
7:
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.
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 check
5:
Compute U = −H−1(F Tθ + GT
Aiλ)
⊲ U parametrized by λ
6:
if GU ≤ w + Sθ then ⊲ primal feasibility check
7:
U⋆ ← U
8:
return U⋆ ⊲ obtain globally optimal U⋆
9:
end if
10:
end if
11:
end for
12: end procedure
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 check
5:
Compute U = −H−1(F Tθ + GT
Aiλ)
⊲ U parametrized by λ
6:
if GU ≤ w + Sθ then ⊲ primal feasibility check
7:
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.
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-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 11 / 17
Distillation Column – Process Unit
reboiler pre-heater feed condenser distillate accumulator 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-heater feed condenser distillate accumulator reflux valve distillate waste valve
Ján Drgoňa (STU) ECC16 June 30, 2016 12 / 17
Model Identification
xk+1 = Axk + Buk yk = Cxk
1000 2000 3000 4000 64 69 74 79 84 Time [s] y [◦C] Measurement Identification 1000 2000 3000 4000 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
1000 2000 3000 4000 64 69 74 79 84 Time [s] y [◦C] Measurement Identification 1000 2000 3000 4000 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
=
I ˆ x ˆ d
+
yk) ˆ yk =
E ˆ x ˆ d
Ján Drgoňa (STU) ECC16 June 30, 2016 14 / 17
Model Predictive Control Formulation
min
u0,...,uN−1 Nc−1
∆uk2
Qu + N
yk − yref2
Qy
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
min
u0,...,uN−1 Nc−1
∆uk2
Qu + N
yk − yref2
Qy
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
min
u0,...,uN−1 Nc−1
∆uk2
Qu + N
yk − yref2
Qy
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
min
u0,...,uN−1 Nc−1
∆uk2
Qu + N
yk − yref2
Qy
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
5 10 15 20 25 30 35 40 64 68 72 76 80 y [◦C] 5 10 15 20 25 30 35 40 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
5 10 15 20 25 30 35 40 64 68 72 76 80 y [◦C] 5 10 15 20 25 30 35 40 20 40 60 80 100 Time [min] u [%]
Ján Drgoňa (STU) ECC16 June 30, 2016 16 / 17
Controller Synthesis and Complexity
method CPU time suboptimality
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
method CPU time suboptimality Gurobi 38.74 ms ≈ 0 %
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
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
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
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
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
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.
Regionless Region-based
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
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.
Regionless Region-based Construction time 1116 s 1360 s
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Controller Synthesis and Complexity
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.
Regionless Region-based Construction time 1116 s 1360 s Memory demands 1224 kB 1140 MB
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: KKT Conditions
HU⋆ + F Tθ + GT
Aλ⋆ = 0
stationarity GAU⋆ = wA + SAθ primal equality GNU⋆ < 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
max
t,U,θ,λ t
s.t. HU + F Tθ + GT
Aλ = 0
GAU = wA + SAθ t ≤ wN + SNθ − GNU λ ≥ t t ≥ 0 if LP is feasible with t⋆ > 0 than A is optimal set of active constraints
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Extensive Enumeration3 – Complexity Bound
Rmax =
Ncnu
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
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Regionless Explicit MPC Memory Demands
Regionless A 13918 integers Q(A), q(A) 54852 floating-point numbers H, 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−1GT
A)−1(SA + GAH−1F T)
q(A) = −(GAH−1GT
A)−1wA
λ⋆ = Q(A)θ + q(A) U⋆ = −H−1(F Tθ + GT
Aλ⋆)
Ján Drgoňa (STU) ECC16 June 30, 2016 17 / 17
Backup: Control Scheme
MPC Distillation Column Filter Observer PWM yref 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