Regionless Explicit MPC of a Distillation Columndrgona/files/presentation/ECC16.pdf · Regionless...

Post on 20-Sep-2020

6 views 0 download

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