Quadratic
Program
•
Convex
optimization
if
P º 0
•
Hard
problem
if
P ² 0
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
0 26 /94
emi
di
Produzione
‐
A.a.
2008/09
Mixed‐Integer
Linear
Pro
•
Some
variables
are
continuous
•
In
general,
it
is
a
NP‐hard
probl
•
Rich
variety
of
algorithms/solv
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
ogram
s,
some
are
discrete
(0/1)
lem
vers
available
emi
di
Produzione
‐
A.a.
2008/09 27 /94
Modeling
languages
•
MOSEL,
associated
with
commercial
pa
•
OPL
(Optimization
Programming
Langu
commercial
package
Ilog‐CPLEX
•
AMPL
(A
Modeling
Language
for
Mathe
most
used
modeling
language,
support
•
GAMS
(General
Algebraic
Modeling
Sys
modeling
languages
•
LINGO,
modeling
language
of
Lindo
Sys
•
GNU
MathProg,
a
subset
of
AMPL
assoc
free
package
GLPK
(GNU
Linear
Program
•
FLOPC++
open
source
modeling
languag
•
CVX
matlab‐based
modeling
language
(
•
YALMIP
another
matlab‐based
modelin
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
ackage
Xpress‐MP 28 /94
uage),
associated
with
ematical
Programming)
ts
several
solvers
stem)
is
one
of
the
first
stems
Inc.
ciated
with
the
mming
Kit)
ge
(C++
class
library)
(from
Stanford)
ng
language
emi
di
Produzione
‐
A.a.
2008/09
Linear
MPC
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
emi
di
Produzione
‐
A.a.
2008/09 29 /94
Unconstrained
Optimal
C
•
Linear
model:
•
Goal:
find
that
min
is
state
to
the
origin
“optimally”
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
Control
nimize
the
input
sequence
that
steers
the
emi
di
Produzione
‐
A.a.
2008/09 /94
[computation
of
cost
fun
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
nction]
emi
di
Produzione
‐
A.a.
2008/09 /94
Unconstrained
Optimal
C
The
optimum
is
obtained
by
zeroing
the
and
hence
Alternative
approach:
use
dynamic
progr
(Riccati
iterations)
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
Control
gradient
batch
least
squares
ramming
to
find
U* /94
emi
di
Produzione
‐
A.a.
2008/09
Constrained
Optimal
Con
•
Linear
model:
•
Constraints:
•
Constrained
optimal
control
problem
(q
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
ntrol
quadratic
performance
index):
emi
di
Produzione
‐
A.a.
2008/09 33 /94
Constrained
Optimal
Con
•
Optimization
problem:
Convex
QUADRATI
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
ntrol
(quadratic)
(linear)
IC
PROGRAM
(QP)
emi
di
Produzione
‐
A.a.
2008/09 34 /94
Linear
MPC
Algorithm
past
At
time
t:
•
Get/estimate
the
current
state
x(t)
•
Solve
the
QP
problem
and
let
U={u*(0),...,u*(N-1)}
be
the
(=finite‐horizon
constrained
open‐loo
•
Apply
only
and
discar
•
Repeat
optimization
at
time
t+1.
An
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
future Predicted y(t+k|t)
outputs
t t+1
IMnpauntips uula(tte+dk)
t+N
solution
op
optimal
control)
rd
the
remaining
optimal
inputs 35 /94
nd
so
on
...
emi
di
Produzione
‐
A.a.
2008/09
Unconstrained
Linear
MP
•
Assume
no
constraints
•
Problem
to
solve
on‐line:
•
Solution:
Unconstrained
linear
MPC
is
not
linear
state‐feedback
law
!
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
PC
r(t) yt+k
Predicted
outputs
MaInnippuutlsated ut+k
t t+1 t+N
thing
else
than
a
standard
emi
di
Produzione
‐
A.a.
2008/09 36 /94
Double
Integrator
Examp
•
System: sampling
+
Ts=1
s
•
Constraints:
•
Control
objective:
min
•
Optimization
problem
matrices:
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
ple
+
ZOH
s
cost: 37 /94
constraints:
emi
di
Produzione
‐
A.a.
2008/09
Double
Integrator
Examp
go
to
demo
/demos/linea
see
also
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
ple
ar/doubleint.m (Hyb‐Tbx)
o
mpcdoubleint.m (MPC‐Tbx)
emi
di
Produzione
‐
A.a.
2008/09 38 /94
Double
Integrator
Examp
•
Add
a
state
constraint:
•
Optimization
problem
matrices:
cost: Controllo
di
Processo
e
dei
Siste
constraints:
©
2009
by
A.
Bemporad
ple
emi
di
Produzione
‐
A.a.
2008/09 39 /94
Double
Integrator
Examp
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
ple
emi
di
Produzione
‐
A.a.
2008/09 40 /94
Linear
MPC
‐
Tracking
•
Objective:
make
the
output
y(t)
track
a
r
•
Idea:
parameterize
the
problem
using
in
•
Extended
system:
let
xu(t)=u(t‐1)
Again
a
linear
system
with
states
x(t),
xu
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
reference
signal
r(t)
nput
increments
u(t)
and
input
Δu(t) 41 /94
emi
di
Produzione
‐
A.a.
2008/09
Linear
MPC
‐
Tracking
•
Optimal
control
problem
(quadratic
performanc
•
Note:
same
formulation
as
before
(W
•
Optimization
problem:
Convex
Controllo
di
Processo
e
dei
Siste
Quadratic
Program
(QP)
©
2009
by
A.
Bemporad
ce
index):
optimization
vector:
W=Cholesky
factor
of
weight
matrix
Q)
emi
di
Produzione
‐
A.a.
2008/09 42 /94
Linear
MPC
‐
Example
•
Plant:
•
Sampling
time:
•
Model:
go
to
demo
linear/example3
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
3.m (Hyb‐Tbx)
emi
di
Produzione
‐
A.a.
2008/09 43 /94
Linear
MPC
‐
Example
•
Performance
index:
•
Closed‐loop
MPC:
go
to
demo
linear/example3
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
3.m (Hyb‐Tbx)
emi
di
Produzione
‐
A.a.
2008/09 44 /94
Linear
MPC
‐
Example
•
Constraint
0.8
·
u(t)
·
1.2
(amplitude)
•
Constraint
‐0.2
·
Δu(t)
·
0.2
(slew‐rate
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
e)
emi
di
Produzione
‐
A.a.
2008/09 45 /94
Anticipative
Action
•
Future
reference
samples
(partially)
known
in
advance
(anticipating
action):
go
to
demo
mpcpreview.
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
•
Reference
not
known
in
advance
(causal):
.m (MPC‐Tbx) 46 /94
emi
di
Produzione
‐
A.a.
2008/09
Measured
and
Unmeasured
Manipulated
Variables u(k) Pla
Measured
Disturbances v(k) Mo
nd(k) Disturbance d(k)
Unmeasured
Model Disturbances
xd
(k)
Linear
model
for
MPC
optimization
(nd(k)
=
white
Gaussian
noise,
nd(t+k|t)=0
over
more
details
about
disturbanc
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
d
Disturbances
ant y(k) Outputs
odel
x(k)
r
the
prediction
horizon) 47 /94
ce
models
later
on
…
emi
di
Produzione
‐
A.a.
2008/09
Soft
Constraints
•
To
prevent
QP
infeasibility,
relax
outpu
²
=
“panic”
variable
Vmin,
Vmax
=
vectors
with
entries
¸0
(the
la
relatively
softer
the
corresponding
constrai
•
Infeasibility
can
be
due
to:
–
modeling
errors
–
disturbances
–
wrong
MPC
setup
(e.g.,
prediction
horizo
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
ut
constraints:
arger
the
entry,
the 48 /94
int)
on
is
too
short)
emi
di
Produzione
‐
A.a.
2008/09
Delays
–
Method
1
•
Linear
model
w/
delays:
•
Map
delays
to
poles
in
z=0:
•
Apply
MPC
to
the
extended
system
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
emi
di
Produzione
‐
A.a.
2008/09 49 /94
Delays
–
Method
2
•
Linear
model
w/
delays:
•
Delay‐free
model:
•
Design
MPC
for
delay‐free
model:
•
Compute
the
predicted
state
•
Compute
MPC
action
accordingly:
u(t) = fMPC(x¯(t + τ ))
©
2009
by
A.
Bemporad Controllo
di
Processo
e
dei
Siste
For
better
closed‐loop
performance
one
can
predict
x(t+¿)
with
a
much
more
complex
model
than
(A,B,C)
!
emi
di
Produzione
‐
A.a.
2008/09 50 /94