You are on page 1of 113

Curso

CONTROL PREDICTIVO BASADO
EN MODELO CON RESTRICCIONES EN MODELO CON RESTRICCIONES
Dr Diego Feroldi Dr. Diego Feroldi
feroldi@cifasis-conicet.gov.ar
Universidad Nacional de Rosario
1
Presentación del curso Presentación del curso
I t d ió l C t l P di ti b d • Introducción al Control Predictivo basado en 
Modelo
• Formulación básica de un Control Predictivo • Formulación básica de un Control Predictivo 
basado en Modelo (MPC)
• Solución de MPC • Solución de MPC
• Otras formulaciones
E t bilid d t l d MPC • Estabilidad en controladores MPC
• Ajuste de controladores MPC
d d • Casos de estudio
• Perspectivas
2
Bibliografía Básica Bibliografía Básica
J M M i j ki “P di ti C t l ith C t i t ” J.M.Maciejowski, “Predictive Control with Constraints”, 
Pearson education, 2002.
E Camacho C Bordons “Model predictive control” Springer E. Camacho, C. Bordons,  Model predictive control , Springer 
Verlag, 2004.
C Bordons Control Predictivo: metodología tecnología y C. Bordons, Control Predictivo: metodología, tecnología y 
nuevas perspectivas, I Curso de Especialización en 
Automática, Almería, 2000.
A. Bemporad, M. Morari, N. L. Ricker, “Model Predictive 
Control Toolbox 3: Getting Started Guide”, The MathWorks, 
Inc., 2009. Inc., 2009.
A. Bemporad, M. Morari, N. L. Ricker, “Model Predictive 
Control Toolbox 3: User’s Guide”, The MathWorks, Inc., 2009. , , ,
3
Definición de Model Predictive Control 
(MPC)
l i d l • Es un algoritmo de control que computa una
secuencia temporal discreta de las variables
i l d f t l bj ti d ti i manipuladas a futuro con el objetivo de optimizar
el comportamiento de la planta o proceso a
controlar controlar.
• Fue concebido para dar solución al control de p
plantas químicas y plantas de potencia aunque
actualmente puede encontrarse en diversas áreas: p
metalúrgica, automotriz, procesamiento de pulpa y
papel, alimentos, robótica, etc.
4
El Control Predictivo es un campo muy amplio de El Control Predictivo es un campo muy amplio de 
métodos de control desarrollados en torno a ciertas 
ideas comunes: ideas comunes:
•Uso explícito de un modelo para predecir la salida Uso explícito de un modelo para predecir la salida 
del proceso en futuros instantes de tiempo 
(horizonte). (horizonte).
•Cálculo de las señales de control minimizando una 
cierta función objetivo cierta función objetivo.
•Estrategia deslizante: en cada instante el horizonte 
se va desplazando hacia el futuro.
5
Expectativas y posibilidades técnicas
6
C. Bordons, Control Predictivo: metodología, tecnología y nuevas  perspectivas, 
2000
Algunas Soluciones Industriales de Algunas Soluciones Industriales de
Control Predictivo
• OPTIMIZE‐IT (ABB)
• DMCplus (ASPENTECH)
• INCA for BATCH (IPCOS)
• BRAINWAVE (ANDRITZ)
7
Introducción Introducción
P MPC? Por que MPC?
• Multivariable
• Minimiza costos
• Maximiza el rendimiento Maximiza el rendimiento
• Tiene en cuenta las limitaciones físicas en los
actuadores actuadores
• Permite la operación cerca de las restricciones
P i t í t ió d t d • Posee intrínsecamente compensación de retardo
• Es muy útil cuando se conocen las futuras
referencias referencias
8
Desventajas Desventajas
• Costo computacional (Sin embargo, si la tasa de
actualización de los movimientos de control es
relativamente baja, entonces hay suficiente tiempo para e a a e e baja, e o ces ay su c e e e po pa a
realizar los cálculos on-line)
• Conocer el modelo
9
Idea básica Idea básica
Optimizador
Planta
Entradas Salidas Referencias
r(t) u(t) y(t)
Medidas
( ) ( ) y( )
• CONTROL: Control complejo con
restricciones de plantas multivariable restricciones de plantas multivariable.
• PREDICTIVO: La optimización se basa en
la evolución predicha a futura de la planta la evolución predicha a futura de la planta.
• MODELO: Se necesita un modelo de la
planta para predecir el comportamiento a planta para predecir el comportamiento a
futuro de la planta.
10
Analogía del MPC con la conducción de un automóvil
• El conductor sabe cual es su 
trayectoria deseada para un  N y p
horizonte finito N.
• Teniendo en cuenta las 
características del auto (modelo 
mental del auto) decide que 
i d i d t l
t t+N
secuencia de acciones de control 
realizar (acelerar, frenar y 
maniobrar) para seguir la trayectoria
t t
maniobrar) para seguir la trayectoria 
deseada. 
• Sólo la primera acción de control  Só o a p e a acc ó de co t o
es tomada.
• El procedimiento se repite en el 
11
p p
instante siguiente.
Filosofía del Horizonte Deslizante
(Receding Horizon) (Receding Horizon)
• En cada instante t se resuelve un problema de p
control óptimo sobre un horizonte finito futuro N:
– Se minimiza f(|y-r|, |u|)
– Sujeto a restricciones:
max min
y y y ≤ ≤
max min
max min
u u u
u u u
Δ ≤ Δ ≤ Δ
≤ ≤
• Solo se aplica el primer movimiento de control u*(t)
• Luego se obtienen nuevas medidas de la planta y • Luego, se obtienen nuevas medidas de la planta y
se repite la optimización en t+1
Optimización On Line Realimentación Optimización On-Line → Realimentación
12
Idea Básica del MPC
) (
) | ( ˆ k t y
) | ( k t r
) (t s
) | ( ˆ k t y
f
) (t y
H
p
Entrada
k
k+H
p Tiempo
Tiempo
k
k+H
p
H
m
k+H
m
13
Tiempo
k
k H
p
k H
m
Ejemplo:
Horizonte de 
control M=4
Horizonte de 
predicción P=9
14
Función objetivo generalizada Función objetivo generalizada
( ) ( ) ( ) ( ) [ ] ( ) ( ) [ ]
2 2
1 |
ˆ
2
− + Δ + + − + =
∑ ∑
j t u j j t r t j t y j N N N J
N N
u
λ δ ( ) ( ) ( ) ( ) [ ] ( ) ( ) [ ]
1
2 1
1 | , ,
1
+ Δ + + + =
∑ ∑
= =
j t u j j t r t j t y j N N N J
N j j
u
λ δ
Esfuerzo de control Seguimiento de referencias Esfuerzo de control Seguimiento de referencias
s(t)
r
1
(t+k)
r
2
(t+k)
y(t)
t
15
t
Pasado Futuro
Importante!
i k
k y
+ en ocurrirá que lo de
predicción una tenemos solo en que significa
ˆ
notación La
( ) ( )
i k +
ˆ
. en ocurrirá que lo de
( ) ( ) k i k y i k y + ≠ +
ˆ
general en tanto, lo Por
16
Construyendo el modelo: tipos de entradas y salidas
Perturbaciones
medidas
Pl t
Variables
manipuladas
medidas
Salidas de
Entradas
Planta
manipuladas
no medidas
Salidas de
la planta
de la
planta
Perturbaciones
no medidas
Ejemplo:
í
V i bl i l d d l
Reactor químico
Ai Ai
T C ,
Variable manipulada: temperatura del 
refrigerante, Tc
Perturbación medida: Temperatura de entrada, T
Ai
C
T
T
A
C
p ,
Ai
Perturbación no medida: Concentración de 
entrada, C
Ai
17
T
Salida medida: Temperatura del producto, T
Salida no medida: Concentración de salida, C
A
Buenos Modelos para MPC Buenos Modelos para MPC
ó • Buena descripción de la planta para
capturar las dinámicas más
significativas
• Suficientemente simple para poder
realizar la optimización On-Line realizar la optimización On-Line
18
Posibles Modelos para MPC Posibles Modelos para MPC
• Lineales
ó – Respuesta al escalón/impulso
– Espacio de estados/función transferencia
• No lineales • No lineales
– Modelo de primeros principios
– Múltiples modelos lineales Múltiples modelos lineales
– Redes neuronales
– Modelos ARX, ARMAX, NARMAX
• Robustos
– Modelo lineal + descripción de incertidumbre
Híb id (E d di i ) • Híbridos (Estados discretos y continuos)
– “Mixed Logical Dynamical Systems”
“Piecewise Affine Systems” – Piecewise Affine Systems
19
Modelos usando Toolboxes de MATLAB
La toolbox de MATLAB requiere que el modelo sea 
li l i i t l ti (LTI) S d lineal e invariante en el tiempo (LTI). Se puede 
definir un modelo con estas caraterísticas de la 
siguientes maneras: siguientes maneras:
• Crear una función transferencia espacio de • Crear una función transferencia, espacio de 
estado o modelo de ceros/polos/ganancia: 
Control System Toolbox™ software y
• A partir de la planta: Identification Toolbox™ 
software software
• Linealizando un modelo: Simulink® model
20
Resolución del MPC con un punto de
i id i i i t d t l coincidencia y un movimiento de control
( ) ( ) ( ) ( ) k k u H S k H k y k H k y Δ + + = +
ˆ ˆ ˆ
( ) ( ) ( ) ( )
( ) ( )
P P f P
donde
k k u H S k H k y k H k y Δ + + = +
:
( ) ( )
( )
P P
H H S
k u k k u k k u − − = Δ
en escalón la respuesta la es
) 1 (
ˆ ˆ
( )
( ) ( )
P P
k k k k
queremos
H H S
ˆ
:
en escalón la respuesta la es
( ) ( )
P P
entonces
k H k r k H k y + = +
:
ˆ
( )
( ) ( )
( )
P P
H S
k H k y k H k r
k k u
+ − +
= Δ
ˆ
ˆ
( )
P
H S
21
22
J.M.Maciejowski, “Predictive Control with Constraints”, Pearson education, 2002
ss
3
2
y
r(k+2|k)=2.487
y(k+1)=2 2864 2 y(k+1)=2.2864
k-2 k-1 k k+1 k+2
3 6 0 Tiempo (seg)
0 3
u
û(k|k)=û(k+1|k)=0.4432
0.3
u
23
k-2 k-1 k k+1 k+2
Tiempo (seg)
24
25
Resolución del MPC con varios puntos de
coincidencia y un movimiento de control
P P P
c
, , , : ia coincidenc de Puntos
2 1
K
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
k k u P S k P k y k P k r
f
ˆ ˆ ˆ
1 1 1
Δ + + = +
( ) ( ) ( ) ( ) k k u P S k P k y k P k r
f
ˆ ˆ ˆ
2 2 2
Δ + + = +
M
( ) ( ) ( ) ( ) k k u P S k P k y k P k r
c c f c
ˆ ˆ ˆ
Δ + + = +
26
Solución con mínimos cuadrados para
el caso con un movimiento de control
d fi S
( )
( )
( )
( )
( )
( )
P S k P k y k P k r







⎡ +



⎡ +
ˆ
: define Se
1 1 1
)
( ) ( ) ( )
f
P S
S
k P k y
y
k P k r








=








+
=








+
= τ
ˆ
2 2 2
M M
)
M
( ) ( ) ( )
c c c
P S k P k y k P k r










+






+
: entonces
ˆ
)
( ) ( )
f
y S k k u − = Δ τ \
: entonces
)
27
Solución con mínimos cuadrados para el
caso con varios movimientos de control
( ) ( )
( ) ( ) ( ) ( ) 1
ˆ
1 |
ˆ
ˆ ˆ
+ Δ − + Δ
+ + = +
k k u P S k k u P S
k P k y k P k y
i i
i f i
( )
( ) ( ) 1
ˆ
1 − + Δ + − + + k H k u H P S
u u i
L
Δ + =
f
u Θ y y
( ) ( ) ( ) ( ) 1
ˆ
con \ − + Δ = − = Δ k u k k u k u
f
y y Θ u
Si las restricciones de desigualdad son lineales,
entonces se puede aplicar Programación
28
Cuadrática (Quadratic Programming).
: donde
( )
( )
( )
( )






+ Δ
Δ






+
+
1 ˆ
ˆ
ˆ
ˆ
2
1
k k u
k k u
k P k y
k P k y
( )
( )
( )
( )










− + Δ
+ Δ
= Δ










+
+
=
1 ˆ
1
ˆ
2
u c
k H k u
k k u
k P k y
k P k y
M M
u y
( ) ( ) ( )
( ) ( ) ( )





⎦ ⎣ ⎦ ⎣
0 0 0 0 1 1
1 1
S P S P S L L L
( ) ( ) ( )
( ) ( ) ( )










+

=
1 1
0 0 1 1
2 2
H P S P S P S
S P S P S
M M M M M M M M M M
L L L L L
Θ
( ) ( ) ( )
⎦ ⎣
+ − − 1 1
u c c c
H P S P S P S L L L L L L L
29
Que pasa si el modelo no es exacto? Que pasa si el modelo no es exacto?
Solución: modelar como “perturbación” p
• Asumir que el error se debe a una perturbación: q p
( ) ( ) ( ) 1
ˆ
− − = k k y k y k d
• Asumir que la misma perturbación se mantiene:
( ) ( )
f
k d y 1 y Θ u − − = Δ \
Introduce Feedback!
30
•Se puede demostrar que actúa como un Se puede demostrar que actúa como un
integrador discreto en el tiempo.
Req i ito Q e l pl nt el modelo e n •Requisito: Que la planta y el modelo sean
asintóticamente estables.
•También puede ser aplicado a plantas
marginalmente estable.
•Si el modelo es inestable, necesita ser
estabilizado estabilizado.
•Se puede lograr “realineando” el modelo
l lid d l l t i t d con las salidas de la planta, i.e. tomando
las salidas de la planta como condiciones
i i i l d l d l iniciales del modelo.
31
“Realinear” basado en datos
∑ ∑
= =
− + − − =
n
i
n
i
i m i m
i k u b i k y a k y
1 1
inestable) modelo ( ) ( ) ( ) (
( ) ( ) ( ) ( )
∑ ∑
= =
− + + + − + − = +
n
i
n
i
i p i
i k u b k k u b i k y a k k y
1 2
1
1 ˆ 1 1 ˆ
( ) ( ) ( )

=
+ − + − + − = +
n
n
i
p i
i k y a k k y a k k y
2
1
2 1 ˆ 2 ˆ
( ) ( ) ( )
M

=
− + + + +
n
i
i
i k u b k k u b k k u b
3
2 1
2 ˆ 1 ˆ
M
La clave es usar datos de la salida medidos siempre que sea
posible.
Problema: se pierde el seguimiento de consigna sin
error:1y
m∞
-y
p
≠0 porque ahora el modelo tiene no solo como
t d (k) i t bié (K)
32
entradas a u(k) sino también a y
p
(K)
Historia Historia
• Richalet et al en 1978: Model Predictive Heuristic
Control
• Cutler and Ramaker en 1980: Dynamic Matrix Cutler and Ramaker en 1980: Dynamic Matrix
Control (DMC)
• Martin Sanchez en 1976: primer patente (Adaptive • Martin‐Sanchez en 1976: primer patente (Adaptive
Predictive Control)
P i 1963 Kl i 1970 K P • Propoi en 1963,Kleinman en 1970, Kwon y Pearson
en 1975, Rouhani y Mehra en 1982: publicaciones
id i il con ideas similares
33
Terminología Terminología
• Model Predictive Control (MPC) ( )
• Model Based Predictive Control (MBPC)
D i M t i C t l (DMC) • Dynamic Matrix Control (DMC)
• Extended Prediction Self Adaptive Control (EPSAC)
• Generalised Predictive Control (GPC)
• Model Algorithmic Control (MAC) • Model Algorithmic Control (MAC)
• Predictive Functional Control (PFC)
• Quadratic Dynamic Matrix Control (QDMC)
• Sequential Open Loop Optimization (SOLO) Sequential Open Loop Optimization (SOLO)
34
Estructura Jerárquica Estructura Jerárquica
Optimización del setpoint Optimización del setpoint
C l P di i C l P di i Control Predictivo Control Predictivo
dd Actuadores Actuadores
35
Formulación básica de MPC
Modelo de la planta
) ( ) ( ) 1 ( k B k A k
) ( ) (
) ( ) ( ) 1 (
y
k x C k y
k Bu k Ax k x
=
+ = +
) ( ) (
z
y
k x C k z =
estado de vector
n
x ℜ ∈
entradas
l
u ℜ ∈
s controlada salidas
medidas salidas
z
y
m
m
z
y
ℜ ∈
ℜ ∈
36
s controlada salidas z ℜ ∈
Secuencia de acciones Secuencia de acciones
1. Obtener medidas y(k)
2. Computar las secuencia de entradas de la 2. Computar las secuencia de entradas de la 
planta u(k+i|k) i=0,…, H
u
-1
3 A li (k|k) l l 3. Aplicar u(k|k) a la planta
Notar: No hay transferencia directa desde u to y
( t i D) (matriz D).
37
38
Caso sin perturbación y medición de estados



+ + + = +
+ = +
|k) (k u B |k) (k x A |k) (k x
(k|k) u B Ax(k) |k) (k x
1
ˆ
1
ˆ
2
ˆ
ˆ
1
ˆ




+ + + =
+ + + = +
|k) (k u B ABˆu(k|k) x(k) A
|k) (k u B |k) (k x A |k) (k x
1
ˆ
1 1 2
2
M




+ + + = + |k) - H (k u B |k) - H (k x A |k) H (k x
p p p
1
ˆ
1
ˆ ˆ
M



+ + + + =

|k) - H (k u B . . . (k|k) u B A x(k) A
p
H H
p p
1
ˆ ˆ
1
( )


+ = + k k x C k k z
z
| 1
ˆ
) | 1 ( ˆ
y
( )




+ = + k k x C k k z
z
| 2
ˆ
) | 2 ( ˆ
M
39
( )



+ = + k H k x C k H k z
p z p
|
ˆ
) | ( ˆ
M
En forma matricial
B
⎤ ⎡
M
M
M
- H
i
H
B A
B
A
A
|k) (k x
u


























+

ˆ
1 ˆ
1
M
M M
H
i
i
i
H
H
u
u
) u(k
B A
B A
x(k)
A
A
|k) H (k x
|k) H (k x
u
u
u
+ −










+










=








+ +
+


=
=
+
1
1 ˆ
ˆ
0
0
1
4 4 4 4 4 4 3 4 4 4 4 4 4 2 1
M
M M
H
i
i
H
B A
A
Hp|k) (k x
p
p






















+


=
ˆ 1
0
L
L
pasado
B AB
B






+ 0
0
M
L
M O M
H
i
i
u(k|k)
B B A
B AB
u






Δ








+


=
0
1
0
M M M
L
u
H H H
H
i
i
i
|k) - H u(k B AB B A
u






+ Δ










+


=
=
1
1
0
0
40
4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 2 1
L
futuro
H H
i
i
H
i
i
B A B A
u p p ⎥



∑ ∑

=

= 0
1
0
y





⎡ +








=





⎡ + ) | 1 ( ˆ
0 0
0 0
) | 1 ( ˆ
y
k k x
C
C
k k z
z
z
M
L
L
M






+












+ ) | ( ˆ
0 0
) | ( ˆ k H k x
C
C
k H k z
p
z
z
p
M
L
M M M
M
41
Caso con perturbación constante
• 1º Suposición: la salida controlada y la salida 
did l i ( ) medida son la misma              .
) | (
ˆ
) 1 | (
ˆ
) ( k k d k k y k y + − =
( ) y z =
2º S i ió l b ió
) | (
ˆ
) 1 | (
ˆ
) | ( ) | ( ) (
k k d k k x C
y y
y
+ − =
• 2º Suposición: la perturbación permanece 
constante a lo largo del horizonte de predicción
) | (
ˆ
) | (
ˆ
) | (
ˆ
) | ( ˆ k i k d k i k x C k i k y k i k z
y
+ + + = + = +
) | (
ˆ
) | (
ˆ
: donde
k k d k i k d = +
42
) | ( ) | ( k k d k i k d +
Entonces, lo que se debe hacer el instante k es lo 
siguiente:
1. Medir la salida de la planta actual y(k). y( )
2. Estimar la perturbación como la diferencia entre 
la salida actual y la salida estimada.
3. Usar esta estimación para predecir las salidas a 
lo largo del horizonte de predicción.
Nota: 
( ) ( ) cuando aun |
ˆ
|
ˆ
I C k i k x k i k y
y
= + ≠ + ( ) ( )
.
ˆ
estimar para observador un necesita se general En x
y
43
Usando un observador Usando un observador
( )
( )
( )
( )




+








=




+
) (
0 1
k u
B k x A k x
( ) ( )
[ ]
( )
( )






=
















+
) (
) (
0 0 1
y
k d
k x
I C k y
k d I k d
( )
( )
[ ]
( )




+




+























+
⎦ ⎣
) ( ) (
1 | ˆ 0 1 ˆ
x x
k y
L
k u
B k k x
I C
L A k x
k d
( )
[ ]
( )
( ) ( ) ( ) + − − =




+




+




















=




+
1 | ˆ |
ˆ
pero
) ( ) (
0 1 |
ˆ
0 1
ˆ
y
d
y
d
k y k k x C k k d
k y
L
k u
k k d
I C
L I k d
( ) ( )






=






=
= +
0
L
L
L entonces
|
ˆ
| 1
ˆ
y
x
I
k k d k k d
[ ]







=





























0
0
0
0
y
L
d
y
d
x
C
A
I C
L
L
I
A
I
44
⎦ ⎣ ⎠ ⎝
⎦ ⎣ ⎦ ⎣
0
0
y
d
C
L I
) (k u
) (k x ) (k y
B
) (k u
) (k x ) (k y
C
1 −
z
+
+
A
PLANTA
+
L
( ) 1 | ˆ k k
+ -
B C
1 −
z
( ) 1 | − k k x
( ) 1 | ˆ − k k y
+
+
A
OBSERVADOR
45
( )
[ ]
( )
⎤ ⎡ ⎤ ⎡ ⎤ ⎡
⎞ ⎛
⎤ ⎡ ⎤ ⎡ ⎤ ⎡
+ 1 |
ˆ
0 1
ˆ L B k k x L A k x( )
( )
[ ]
( )
( )






+






+





























=






+
+
) ( ) (
0 1 |
ˆ
1 |
0
0
1
ˆ
1
d
x
y
d
x
k y
L
L
k u
B
k k d
k k x
I C
L
L
I
A
k d
k x
( ) ( ) ( ) + − − = 1 |
ˆ
|
ˆ
pero
y
k y k k x C k k d
( ) ( ) = + |
ˆ
| 1
ˆ
y
k k d k k d








0 L
L
entonces
x




=




=
y
L
L
d
x
I
[ ]







=





















0
0
0
0

y
y
d
x
C
A
I C
L
L
I
A
46
⎦ ⎣ ⎠ ⎝
⎦ ⎣ ⎦ ⎣
0
0
y
d
C
L I
i ifi l l d l b d Esto significa que los polos del observador se encuentran en 
los siguientes sitios (matriz triangular):
• Polos de la planta (no hay problema si la planta es estable)
• Cero:  se obtiene estimación “deadbeat”
Conclusiones:
• Se pueden usar diferentes ganancias de observador con el 
mismo modelo de perturbación mismo modelo de perturbación. 
• Se puede usar el mismo enfoque con otros modelos de 
perturbación. 
• Al momento de predecir, reemplazar por
) (k x ) | (
ˆ
k k x
47
Función de costo cuadrática Función de costo cuadrática
H H
u P
−1
2 2
Q
i|k) (k u Δ i|k) k i|k) - r( (k z V (k)
T
i
i R
H i
i Q
u P
w
= + + + + =
∑ ∑
= =
: Notación
0
ˆ ˆ
2
0
2
) (
2
) (
H H
x Q x x
T
Q
=
1 U l t t d t l d C i
: ajuste de Parámetros
: Notación
H i i|k) (k H
Hu Hp H
H H
P
w w
≥ + Δ

=
0
ˆ
C t l d H i t
. Predicción de Horizonte
1. e Usualment costo. de ventana la de Comienzo
R(i)
Q(i)
H i i|k) (k u H
u u


≥ = + Δ
control de s movimiento los de ón Penalizaci 0
salida. de error del ón Penalizaci 0
para 0 Control. de Horizonte
i) u(k i|k) (k u
R(i)
+ Δ ≠ + Δ

ˆ
:
control. de s movimiento los de ón Penalizaci 0
! Importante
48
i) u(k i|k) (k u + Δ ≠ + Δ : ! Importante
Control Predictivo con Restricciones Control Predictivo con Restricciones
• En la práctica todos los procesos están sujetos a En la práctica todos los procesos están sujetos a 
restricciones.
• Los actuadores tienen un campo limitado de acción  p
(límites físicos).
• Existen límites de seguridad: presiones o temperaturas  g p p
máximas.
• Requerimientos tecnológicos: mantener variables, por 
l d d ejemplo temperaturas, en un rango determinado.
• Necesidad de trabajar cerca de las restricciones para 
t l fi i i aumentar la eficiencia.
• Limitaciones de calidad del producto o normativa 
medioambiental medioambiental.
49
• En una Estrategia convencional las restricciones En una Estrategia convencional las restricciones 
en la variable manipulada se pueden 
implementar saturando la salida del controlador. 
• Las restricciones de la variable controlada no 
pueden abordarse y se intenta evitar trabajando  p y j
alejados de los límites.
• En el Control Predictivo sin restricciones si la 
señal de control calculada viola la restricción, se 
satura (las señales futuras ni siquiera se tienen en 
) S i d l á d l ó i cuenta). Se pierde el carácter de control óptimo
• La violación de los límites de las variables 
controladas puede ser costoso y peligroso: daños 
en equipos y pérdidas en la producción
50
• El MPC es la única metodología capaz de incorporar las  g p p
restricciones de forma sistemática en la fase de diseño del 
controlador.
H l t i i f ió d l • Hay que expresar las restricciones en función de las 
variables sobre las que se puede actuar.
• En los actuadores son básicamente amplitud y velocidad de • En los actuadores son básicamente amplitud y velocidad de 
cambio (slew‐rate). También se pueden evitar zonas 
muertas pero el problema es mucho más complejo.
• En las CVs, principalmente en la amplitud, pero se pueden 
conseguir otros comportamientos:
A lit d á i í i ( id d) – Amplitud máxima y mínima (seguridad)
– Banda: obligar a un perfil de funcionamiento
– Comportamiento monótono. Puede evitar kickback p
– Evitar respuesta inicial inversa (sistemas fase no mínima)
– Evitar sobreoscilación
51
• Las variables manipuladas siempre se pueden • Las variables manipuladas siempre se pueden 
mantener restringidas recortando la salida 
l l d l l d calculada por el controlador.
• Las restricciones en la salida deben • Las restricciones en la salida deben 
controlarse ya que están afectadas por la 
di á i d l dinámica del proceso.
• No considerar restricciones en la salida puede • No considerar restricciones en la salida puede 
dar lugar a reducción en beneficios y causar 
d ñ i daños a equipos o personas.
52
Restricciones con desigualdades lineales Restricciones con desigualdades lineales
) vec( ) |k) - H (k u (k|k) u F vec(
) vec( ) |k), - H (k u . , (k|k), . . u E vec(
u
0 1 1
ˆ ˆ
0 1 1
ˆ ˆ
≤ +
≤ + Δ Δ
) vec( ) |k), H (k z . . , Hw|k), . (k z G vec(
) vec( ) |k), H (k u . , (k|k), . . u F vec(
p
u
0 1 ˆ ˆ
0 1 1
≤ + +
≤ +
Las restricciones pueden formularse en las siguientes 
variables:
•Movimiento en las entradas
•Magnitud de las entradas
•Salidas controladas o estados
53
• MPC con restricciones → ley de control no 
lineal:
– MPC trabaja en modo lineal cuando la planta 
opera lejos de las restricciones opera lejos de las restricciones
– MPC trabaja en modo no lineal cuando la planta 
se acerca a las restricciones
• Ejemplo: control de temperatura en un motor Ejemplo: control de temperatura en un motor
54
Algoritmos de resolución Algoritmos de resolución
MODELO
FUNCIÓN
COSTE
RESTRICCIONES SOLUCIÓN
Lineal Cuadrática Ninguna Explícita
Lineal Cuadrática Lineales QP Lineal Cuadrática Lineales QP
Lineal Norma‐1 Lineales LP
55
Control Predictivo con restricciones Control Predictivo con restricciones
• La función QUADPROG resuelve el problema de 
programación cuadrática: p g




b A
b AX
f
T T
1
i




≤ ≤
= +
ub X lb
b A t s X f HX X
eq eq
T T
X
.
2
1
min
• La función QPDANTZ resuelve el problema de 
programción cuadrática convexa usando el algoritmo programción cuadrática convexa usando el algoritmo
de Dantzig‐Wolfe.
56
Relajación de las restricciones
• Es grave que el problema de optimización resulte no 
Relajación de las restricciones
g q p p
factible.
• Posibles causas:
– Ocurre una gran perturbación inesperada
– El modelo de planta difiere demasiado El modelo de planta difiere demasiado 
• Soluciones:
Mantener la misma entrada que en el paso – Mantener la misma entrada que en el paso 
anterior.
Aplicar û(k+2|k) computada en el paso anterior – Aplicar û(k+2|k) computada en el paso anterior.
– Estrategias de gestión de restricciones.
R l j l i i – Relajar las restricciones.
57
• Las restricciones de entrada normalmente no se • Las restricciones de entrada normalmente no se 
relajan.
• Una manera directa de relajar restricciones es 
agregar variables denominadas variables de holgura 
(“slack” variables). 
• Son no nulas solo si la restricción es violada • Son no nulas solo si la restricción es violada.
• Son severamente penalizadas en la función costo de  p
manera que el optimizador trate de hacerla nula si es 
posible.
58
Relajación de las restricciones Relajación de las restricciones
1
min
2
+ + Φ ε ρ θ φ θ θ
T T
s.t.
2
,


+ ≤ Ω ε ω θ
ρ φ
ε θ
0


≥ ε
negativo no escalar un es
que dimensión misma la con negativo no un vector es
ρ
ω ε
nes restriccio sin Problema : 0 = ρ
fuertes nes restriccio con Problema : ∞ → ρ
Continua siendo un problema QP pero con un
59
Continua siendo un problema QP pero con un 
mayor número de variables
( )
target
2
target
) 0 ( ) 0 ( ) 0 ( ) 0 (




























u u
W
u u
J
T
M M M M ( )
target
2
target
) 0 ( ) 0 (
) 1 ( ) 1 ( ) 1 ( ) 1 (

⎤ ⎡
Δ
⎤ ⎡
Δ






















































=
u u
p u p u
W
p u p u
z J
u
M M M M
2
) 1 (
) 0 (
) 1 (
) 0 (










− Δ
Δ










− Δ
Δ
+
Δ
p u
u
W
p u
u
T
u
M M
2 2
) (
) 1 (
) (
) 1 (
) (
) 1 (
) (
) 1 (
ε ρ
ε
+






























































+
p r
r
p y
y
W
p r
r
p y
y
y
T
M M M M
) ( ) ( ) ( ) (
⎠ ⎝








⎠ ⎝








p r p y p r p y





⎡ −











⎡ − ) 1 ( ) 1 ( ) 1 ( ) 1 ( ) 1 (
max max min min
V y y V y
y y
ε ε
M M M




































) 0 ( ) 0 (
) ( ) (
) 0 (
) (
) 0 ( ) 0 (
) ( ) (
max max
max max
min min
min min
V u
p V p y
u
p y
V u
p V p y
t s
y
y
y
y
ε
ε
ε
ε
M
M
M
M
M
M












− Δ
− − −













Δ














− Δ
− − −
) 0 ( ) 0 (
) 1 ( ) 1 (
) 0 (
) 1 (
) 0 ( ) 0 (
) 1 ( ) 1 (
. .
max max
max max
min min
min min
V u
p V p u
u
p u
V u
p V p u
t s
y
y
y
y
ε
ε
ε
ε
M
M
M
M
M
M
60






− − − Δ






− Δ






− − − Δ ) 1 ( ) 1 ( ) 1 ( ) 1 ( ) 1 (
max max min min
p V p u p u p V p u
y y
ε ε
M M M
E bilid d MPC Estabilidad en MPC
l i ? • ¿Realmente importa?
– Si se diseña el controlador off‐line la estabilidad 
i l d l l d bl nominal del lazo cerrado no es un problema.
– Es fácil chequear el sistema  diseñado es estable 
asumiendo que el modelo es correcto asumiendo que el modelo es correcto.
– Estabilidad en lazo cerrado es problemática si se hace 
un rediseño on‐line un rediseño on line.
– Control predictivo implica realimentación.
– Aun cuando la performance de la planta se optimiza a – Aun cuando la performance de la planta se optimiza a 
lo largo de un horizonte, cada optimización no tiene 
en cuenta lo que ocurre luego. 
61
Estabilidad en MPC
• Restricciones terminales aseguran estabilidad
l l di i l d bi S i d
( )
t f ió l i i i d
) ( ), ( ) 1 (
planta la para predictivo r controlado un obtiene se que Suponiendo
= + k u k x f k x
( ) ) | 1 (
ˆ
), | (
ˆ
) (
costo función la o minimizand
− + + =

k i k u k i k x l k V
H
P
( )
0 ) | (
ˆ
nterminal restricció la a sujeto
e decrecient es y 0 y 0 si solo 0 ) , ( y 0 ) , ( donde
1
+
= = = ≥

=
k H k x
l u x u x l u x l
i
problema el que siempre estable es 0 0 equilibrio de punto el Entonces
) 0 , 0 ( 0 : equlibrio de punto un es 0 , 0 que Asumimos
0 ) | ( n terminal restricció la a sujeto
= =
= = =
= +
u x
f u x
k H k x
P
Lyapunov de funciones usando demostrar puede Se
paso. cada en resuelve se y factible sea
problema el que siempre estable es 0 , 0 equilibrio de punto el Entonces = = u x
62
Lyapunov. de funciones usando demostrar puede Se
Estabilidad en MPC
• Horizonte infinito
S d i bl h i – Se puede aproximar a un problema con horizonte 
finito con restricción terminal.
– Horizontes infinitos dan estabilidad.
k k+1 k+Hp k+1+Hp
Tiempo
63
k k+1
Tiempo
Como diseñar el controlador MPC Como diseñar el controlador MPC
1. Programar el controlador usando funciones 
de MATLAB (ejemplo: basicmpc.m) ( j p p )
2. Diseñar el controlador usando la “Model
P di ti C t l T lb ” MATLAB Predictive Control Toolbox” para MATLAB
3. Usando funciones específicas de la Toolbox 3. Usando funciones específicas de la Toolbox
Uso de objetos tipo MPC
64
Objetos tipo MPC Objetos tipo MPC
• Existen tres tipos de objetos MPC:
1. MPC Controller Object j
2. MPC Simulation Option Object
3. MPC State Object
65
Objetos tipo MPC j p
• Todos los parámetros que definen la ley de control MPC
(horizonte de predicción, pesos, restricciones, etc. ) están
almacenados en un MPC controller object, los cuales se
constr en en dos etapas construyen en dos etapas:
1. Construcción
Ts = 1;
MPCobj = mpc(CSTR, Ts);
2. Initialización
66
Obj t ti MPC Objetos tipo MPC
• El objeto tipo mpcsimopt contiene opciones varias para la 
simulación de un controlador MPC con el comando sim:
Si O ti i t( bj) – SimOptions=mpcsimopt(mpcobj)
– Usar SET/GET para cambiar la opciones.
• El objeto tipo mpcstate contiene el estado del controlador
MPC: MPC:
– mpcstate(mpcobj)
67
Estructura MPC Estructura MPC
(MATLAB Toolbox)
68
Ajuste de parámetros en MPC Ajuste de parámetros en MPC
• Pesos
• Horizontes • Horizontes
• Modelo de perturbación y dinámica del 
observador
T t i d f i • Trayectoria de referencia
69
EJEMPLO:
Continuous Stirred‐Tank Reactor (CSTR.m)
+ B A
dx
Ai
C
⎤ ⎡
⎤ ⎡
⎤ ⎡
+ =
+ =
T
Du Cx y
Bx Ax
dt
C
T
C
⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡






=






=






=
0 0 1 0
, , : donde
b b
C
T
y
C
T
u
T
C
x
A
A
C
A
i
T
A
C






=






=






=






=
0 0
0 0
,
0 1
1 0
, ,
22 21
12 11
22 21
12 11
D C
b b
b b
B
a a
a a
A
A [ 0 0285 0 0014 CSTR I tN {'T ' C A i'} CSTR t i l (CSTR A = [‐0.0285 ‐0.0014
‐0.0371 ‐0.1476];
B = [‐0.0850 0.0238
0 0802 0 4462];
CSTR.InputName = {'T_c',  C_A_i'};
CSTR.OutputName = {'T', 'C_A'};
CSTR.StateName = {'C_A', 'T'};
CSTR InputGroup MV = 1;
CSTR = setmpcsignals(CSTR, 
'UD', 2, 'UO', 2)
0.0802 0.4462];
C = [0 1
1 0];
D = zeros(2 2);
CSTR.InputGroup.MV = 1;
CSTR.InputGroup.UD = 2;
CSTR.OutputGroup.MO = 1;
CSTR OutputGroup UO = 2;
70
D = zeros(2,2);
CSTR = ss(A,B,C,D);
CSTR.OutputGroup.UO = 2;
CSTR
Diseñando el MPC usando la Toolbox de 
diseño (mpctool)
71
1.5
2
2.5
Plant Outputs
0
0.5
1
T
0
-3
-2
-1
0
C
A
0 5 10 15 20 25 30
-5
-4
-3
Time (sec)
10
15
Plant Inputs
0
5
T
c
1
0
0.5
1
C
A
i
72
0 5 10 15 20 25 30
-1
-0.5
Time (sec)
Ejemplo de “Blocking” con cuatro movimientos 
de control de control
•Un “block” es un uno o más períodos de muestreo sucesivos durante los cuales la 
variable manipulada permanece constante variable manipulada permanece constante.
•La “block duration” es la cantidad de períodos de muestreo en cada block.
•En el ejemplo es 2, 2, 2, 3 (la suma tiene que ser igual a P). j p , , , ( q g )
73
Modelo usado por la Toolbox para la estimación Modelo usado por la Toolbox para la estimación 
de estados
74
Plantas no lineales
U d l MPC C ll Bl k Uso del MPC Controller Block
75
Diseñando el MPC usando funciones
Ts = 1;
MPCobj = mpc(CSTR, Ts);
Creación del objeto controlador
get(MPCobj)
M i l dV i bl (MV) [1 1 ] ManipulatedVariables (MV): [1x1 struct]
OutputVariables (OV): [1x2 struct]
DisturbanceVariables (DV): [1x1 struct]
Weights (W) [1 1 st ct]
Viendo y alterando las 
propiedades del objeto 
controlador
Weights (W): [1x1 struct]
Model: [1x1 struct]
Ts: 1
Optimizer: [1x1 struct]
controlador
Optimizer: [1x1 struct]
PredictionHorizon (P): 10
ControlHorizon: 2
History: [2e+003 7 21 20 18 20 1] History: [2e+003 7 21 20 18 20.1]
Notes: {}
UserData: []
ObjName.PropName = value;
76
• Simulaciones lineales
[y, t, u] = sim(MPCobj, T, r);
plot(t, y);
MPCopts = mpcsimopt;
MPCopts.Constraints = 'off';
sim(MPCobj, T, r, MPCopts)
Si l i li l • Simulaciones no lineales 
Si la planta es un modelo no lineal en simulink, se debe linealizar el 
modelo y diseñar un controlador para el modelo lineal modelo y diseñar un controlador para el modelo lineal.
77
Ot F l i Otras Formulaciones
• Perturbaciones medidas: feedforward
• Generalized Predictive Control (GPC)
• Dynamic Matrix Control (DMC)
• Predictive Functional Control (PFC)
• Formulación continua en el tiempo
78
df d Estructura Feedforward
Perturbación
medida
) (k d
Controlador Planta
) (k d
m
ˆ ˆ
+
-
+
+
+
) (z P
d
) (k r ) (k y ) (k u
) (
ˆ
) (
ˆ
1
1
z P z P
d

Setpoint
-
+ + +
) (
1
z P ) (
2
z P
) (z C
) (k r ) (k y ) (k u
79
Modelo de la planta con perturbación medida Modelo de la planta con perturbación medida
) ( ) ( ) | (
ˆ
) | 1 (
ˆ
k d B k Bu k k x A k k x ⎧ + + +
) | (
ˆ
) | (
ˆ
) ( ) ( ) | ( ) | 1 (
k k x C k k y
k d B k Bu k k x A k k x
y
m d




=
+ + = +
) | (
ˆ
) | ( ˆ k k x C k k z
z


=
( )? |
ˆ
predecir Como k i k d
m
+
•Usualmente suponemos que permanece constante Usualmente suponemos que permanece constante
•Si es posible hacer una mejor suposición
80
D i M i C l (DMC) Dynamic Matrix Control (DMC)
El DMC l l ló d i l • El DMC usa la respuesta al escalón para determinar la 
denominada Matriz Dinámica G.
• Esta matriz se interpreta como un modelo del proceso. 
• La salida predicha puede ser expresada como
y = Gu + f ,
donde donde
– y es el vector temporal de salidas predichas
– u es la secuencia de acciones de control a futuro
– f es el vector de respuesta libre.
81
• La Matriz Dinámica G se construye a partir de los  y p
coeficientes g
i
obtenidos a partir de la respuesta al 
escalón con horizonte de predicción h
p
y horizonte de  p
p
y
control h
m
:
h
p S
a
l
i
d
a






1
0
0 0
g g
g
L
L
g
2
g
hp
g
4
g
3
p










=
− 1 1
1 2
0
m m
h h
ij
g g g
g g
G
L
M O M M
L
g
1
g
2










+ − − 1 1
m p p p
h h h h
g g g L
M O M M
t
1
t
4
t
3
t
2
t
hp
t
0
E
n
t
r
a
d
a
82
E
( ) ( ) ( ) k f k k u g k k y + + Δ = + 1 |
ˆ
| 1
ˆ
1
( ) ( ) ( )
( ) ( ) ( ) ( ) k f k k u g k k u g k k y
k f k k u g k k y
+ + + Δ + Δ = +
+ + Δ +
2 | 1
ˆ
|
ˆ
| 2
ˆ
1 | | 1
1 2
1
M
( ) ( ) ( ) ( )
p m h h h p
h k f k h k u g k k u g k h k y
m p p
+ + + Δ + + Δ = +
+ −
|
ˆ
|
ˆ
|
ˆ
1
L
M
83
• El objetivo del controlador DMC es minimizar un función j
costo J(k)
) ( min k J
u
• donde la función costo J(k) se define como
( ) [ ] ( ) [ ] | ˆ | ˆ ) (
1
y k j k y R y k j k y k J
P
r
h
j
T
r
+ − + − + =

=
[ ] [ ] ) | ( ) | (
0
k j k u Q k j k u
m
h
j
T
+ Δ + Δ +

=
• y

R es una matriz para compensar los diferentes rango de valores
( ) ( ) ( ) k j k u k j k u k j k u | 1 | | + − − + = + Δ
– R es una matriz para compensar los diferentes rango de valores
de las salidas del proceso
– Q es una matriz que permite penalizar el esfuerzo de control.
84
• El vector de control resulta
( )
• donde R y Q son matrices expandidas en el caso multivariable  a partir de las
matrices originales:
( ) e R G Q RG G u
T T
1 −
+ = Δ
g






=






= L
L
L
L
2
1
2
1
0
0
; 0
0
Q
Q
Q R
R
R












O M M O M M
2 2
; Q Q
• e es el vector de errores futuros a lo largo del horizonte de predicción: 
p r r p r
k h k y y k k y y k y y e ), | 1 ( , ), | 1 ( ), ( [
1 1
1 1 1 1
L − + − + − − =
T
p r r p r
p r r p r
k h k y y k k y y k y y ] ), | 1 ( , ), | 1 ( ), (
2 2
1 1
2 2 2 2
1 1 1 1
L L − + − + − −
• donde es la i_th salida de la planta medida en el instante presente k. ) (k y
i
p
85
DMC sin restricciones→ Solución explícita
Ejemplo: PEM Fuel Cell System j p y
D. Feroldi et al. / Journal of Power Sources 169 (2007) 205‐212
86

P di i F i l C l (PFC) Predictive Functional Control (PFC)
• La motivación es lograr un gran ancho de banda
• Hace énfasis más en la velocidad que en las  q
restricciones
• Es importante el seguimiento de setpoint • Es importante el seguimiento de setpoint
• Características:
– Pequeño número de puntos de coincidencia
– Trayectoria de referencia para definir la performance
– Funciones básicas para trayectorias de control futuras
87
Funciones básicas
• Escalones con retardo
• Polinomios de bajo orden
( ) ( ) ( ) ( ) ( )
c
c
i k u i k u i k u k u k i k u + + + + = + L
2
2 1 0
|
ˆ
Escalón
( ) ( ) ( ) ( ) ( )
c 2 1 0
k Tiempo
Rampa
k Tiempo k Tiempo
Parábola
88
k Tiempo
• Emplea el concepto de puntos de coincidencia Emplea el concepto de puntos de coincidencia 
para facilitar los cálculos: la salida predicha y la 
referencia deben coincidir en dichos puntos referencia deben coincidir en dichos puntos.
• No se requiere un modelo discreto en el 
tiempo.
• Solo se necesitan conocer los valores de la • Solo se necesitan conocer los valores de la 
respuesta al escalón en los puntos de 
i id i coincidencia. 
• Se podría trabajar completamente en tiempo Se podría trabajar completamente en tiempo 
continuo.
89
Un punto de coincidencia: ∆p = ∆m
Consigna constante
Consigna
d
e

) ( H n+ ε
p Δ
T
r
a
y
e
c
t
o
r
i
a

d
e
r
e
f
e
r
e
n
c
i
a
i
c
h
a
) (n ε
p Δ
S
a
l
i
d
a

p
r
e
d
i
c
h
Salida del
Proceso (y
p
)
m Δ
Salida del modelo
Horizonte de coincidencia
n+H
1
n+H
2
n+H n
Salida del
modelo (y
m
)
90
Horizonte de predicción
Futuro Pasado
( ) ( ) ( ) con ) ( ) (
s
T
T
H
p
H
e n y n c n H n

Δ Δ
= − = = + λ λ λ ε ε
( ) ( ) ( ) ( ) ( )( ) 1
y
H H
H
m p
Δ
Δ = Δ
λ λ ( ) ( ) ( ) ( ) ( )( )
( )( ) ( ) ( )
resulta do Reemplazan
1
H
H H
n n n H n n p − = − = + − = Δ λ ε λ ε ε ε ε
( )( ) ( ) ( )
( )( ) ( )
resulta o Resolviend
1 ) ( ) (
m m
H
p
n y H n y n y n c − + = − − λ
( )( ) ( )
( ) 1
1 ) ( 1 ) (
) (
H
m m
H
m m
H
p
a K
a n y n y C(n)
n MV

− + − −
=
λ
. con
m
s
T
T
m
e a

=
91
Formulación continua en el tiempo Formulación continua en el tiempo
: costo Función
) | (
ˆ
) | (
ˆ
) ( ) (
2 2
2
1
2
1
d t u d t y t r t V τ τ τ λ τ τ τ τ
τ
τ
τ
τ
+ + + − + =
∫ ∫
) ( ) ( ) ( ) ( ) | ( y
ˆ
: salida de Predicción
) (
2
t y t y t y t y t
n
n
τ τ
τ τ τ + + + + = + L
& & &
: entrada la de ación Parametriz
) (
!
) (
! 2
) ( ) ( ) | ( y t y
n
t y t y t y t τ τ τ + + + + = + L
) (
!
) (
! 2
) ( ) ( ) | (
ˆ
) (
2
t u
m
t u t u t u t u
m
n
τ τ
τ τ τ + + + + = + L
& & &
m juega un papel similar al horizonte de control
92
j g p p
Control Predictivo Generalizado Control Predictivo Generalizado
• Fue propuesto por Clarke et al. en 1987.
• Se ha empleado con éxito en numerosas • Se ha empleado con éxito en numerosas 
aplicaciones industriales
• Tiene muchas ideas en común con otros 
controladores predictivos. controladores predictivos.
• Es capaz de proporcionar una solución explícita en 
ausencia de restricciones.
93
Formulación del Formulación del 
Control Predictivo Generalizado (GPC)
) ( ) ( ) 1 ( ) ( ) ( ) (
1 1 1
C B A
d
Un proceso SISO puede ser descritos de la siguiente forma:
si
) ( ) ( ) 1 ( ) ( ) ( ) (
1 1 1

+ − =
− − − −
t e z C t u z B z t y z A
d
) (
1 ) (
2
2
1
1 0
1
2
2
1
1
1




+ + + + =
+ + + + =
− − − −
− − − −
z b z b z b b z B
z a z a z a z A
nb
nb
na
na
L
L
sistema del muerto tiempo el es donde
1 ) (
2
2
1
1
1
0


+ + + + =
− − − −
d
z c z c z c z C
nc
nc
nb
L
1 C tomar podemos d simplicida Por
sistema. del muerto tiempo el es donded
94
1. C tomar podemos d simplicida Por =
• El objetivo del algoritmo GPC consiste en aplicar una  j g p
secuencia de señales de control que minimice una 
función de coste de la forma:
( ) [ ]

+ + − + =
N
u
j t w k j t y j N N N J
2
2 1
) ( |
ˆ
) ( ) , , (
2
δ
[ ]

=
− + Δ +
u
N
N j
j t u j
2
) 1 ( ) (
1
λ

= j 1
95
Predicciones óptimas
( ) + Δ = + +
+ + 1 1
) ( ) ( | 1
ˆ
óptimas es prediccion las de conjunto El
t y F t u G t d t y
d d
( )
( ) + + Δ = + +
+ Δ + +
+ +
+ +
2 2
1 1
) ( ) 1 ( | 2
ˆ
) ( ) ( | 1
t y F t u G t d t y
t y F t u G t d t y
d d
d d
M
( ) + − + Δ = + +
+ +
t i i l f it d
) ( ) 1 ( |
ˆ
t y F N t u G t N d t y
N d N d
M
Δ + + =
−1 1 1
) (
como matricial forma en escrito ser puede
z u ) G'(z )y(t) F(z Gu y
- -








Δ




+ +
0
0 0 ) ( ) 1 | 1 (
ˆ
donde
g t u d t y L








=








+ Δ
=








+ +
=
0 1
0 ) 1 ( ) 1 | 2 (
ˆ g g
G
t u
u
d t y
y
M O M M
L
M M
96








− + Δ




+ +
− − 0 2 1
) 1 ( ) 1 | (
ˆ g g g N t u N d t y
N N
L
( )
( )
g z G z
d






+
) (
0
1
1
( ) z g g z G z
z G
d








− −
=
− −
+ −
) (
) ( '
1
1 0
1
2
2
1
M
( )
z F
z g z g g z G z
N
N N d
N
⎤ ⎡






− − − −

− −

− −
+
) (
) (
1
) 1 (
1
1
1 0
1
L
z F
z F
z F
d
d








=

+
+
) (
) (
) (
1
2
1
1
M
f
z F
N d









+
d d d l l i úl i l d d Al
) (
1
M
f : en agrupar pueden se pasado del solo terminos últimos los depender Al
f Gu y + =
Similar al caso DMC pero la respuesta libre es distinta
97
Similar al caso DMC pero la respuesta libre es distinta
Obtención de la ley de control y
( ) ( ) u u w f Gu w f Gu J
T
T
+ − + − + =
donde
λ
[ ] N d t w d t w d t w w
T
+ + + + + + = ) ( ) 2 ( ) 1 (
donde
L
f bu Hu u J
T
+ + =
0
2
1
Al mismo resultado se puede
( ) I G G H
T
+ = 2
con
2
λ
Al mismo resultado se puede 
llegar calculando G a partir de los 
coeficientes de la respuesta ante
( )
( )
( ) ( ) w f w f f
G w f b
T
T
− − =
− =
0
2
coeficientes de la respuesta ante 
escalón.
( ) ( ) w f w f f
0
: resulta control de ley La
98
T
b H u
1 −
− =
Control Predictivo basado en Modelo No Lineal 
(NMPC)
h l li l • Muchos procesos son altamente no lineales
• Necesidad de operar en diferentes puntos de  p p
operación
• Procesos donde no hay un estado estacionario Procesos donde no hay un estado estacionario
• Necesidad de implementar NMPC p
• Necesidad de modelos no lineales
99
Las aplicaciones que requieren NMPC puedes Las aplicaciones que requieren NMPC puedes 
ser divididas en dos grandes categorías:
• Problemas de control regulador donde el • Problemas de control regulador donde el 
proceso es altamente no lineal y ocurren 
frecuentes perturbaciones (control de pH frecuentes perturbaciones (control de pH, 
etc.).
• Problemas de servo control donde el punto de 
operación cambia frecuentemente y la planta operación cambia frecuentemente y la planta 
tiene dinámicas altamente no lineales 
(manufactura de polímeros, síntesis de (manufactura de polímeros, síntesis de 
amoníaco, etc.).
100
An Overview of Nonlinear Model Predictive Control Applications, 2000 pp ,
S. Qin, A. Badgwell
101
• El desarrollo de un modelo no lineal puede ser El desarrollo de un modelo no lineal puede ser 
bastante complejo
• Diferentes tipos de modelos no lineales:
– Modelo de primeros principios p p p
– Múltiples modelos lineales
Modelos Hammerstein Wiener – Modelos Hammerstein‐Wiener
– Modelos de Volterra
– Modelo ARX no lineal
– Modelos difusos
– Modelos con redes neuronales
102
• El uso de modelos no lineales cambia el problema El uso de modelos no lineales cambia el problema 
de optimización:
– MPC: Programación cuadrática convexa – MPC: Programación cuadrática convexa
– NMPC: Problema no lineal no convexo. 
– En NMPC no hay garantía de que pueda encontrarse – En NMPC no hay garantía de que pueda encontrarse 
un óptimo global.
• La manera general de resolver este problema La manera general de resolver este problema 
consiste en lo siguiente:
1 Uso de un modelo no lineal completo de la planta 1. Uso de un modelo no lineal completo de la planta 
para el cómputo de la predicción.
2. Uso de eficientes algoritmos de optimización no 2. Uso de eficientes algoritmos de optimización no 
lineal capaces de manejar gran número de variables 
y restricciones. 
103
Optimización
El problema de optimización puede ser expresado de la siguiente 
manera:
) ( i X f
sujeto a
) ( min X f
n
X ℜ ∈
e i
e i
m m i X G
m i X G
+ = ≤
= =
,..., 1 0 ) (
,..., 1 0 ) (
donde
• X es el vector de los parámetros de diseño (las variables 
i l d )
u l
X X X ≤ ≤
manipuladas en MPC)
• f(X) es la función objetivo que devuelve un valor escalar 
• G(X) es el vector con las restricciones igualdades y desigualdades  ( ) g y g
evaluadas en X 
104
• Si la función objetivo y las restricciones son funciones  j y
lineales de la variable de diseño, el problema se conoce 
como de Programación Lineal (LP).
• Programación Cuadrática (QP) se refiere a  la maximización 
o minimización de funciones objetivos cuadráticas 
linealmente restringidas. linealmente restringidas. 
• Los problemas de LP y QP tienen  procedimientos de 
solución relativamente simples.   p
• Los problemas de Programación No Lineal (NP), en los 
cuales la función objetivo y las restricciones pueden ser  j y p
funciones no lineales de las variables de diseño, son más 
difícil de resolver.
• La solución de un problema NP generalmente requiere un 
procedimiento iterativo. 
105
Diagrama de flujo de 
l it NMPC
INICIO
un algoritmo NMPC
SETEO DE CONDICIONES
INICIALES
SIMULACIÓN DEL MODELO DURANTE EL
HORIZONTE DE PREDICCIÓN N2
CORRECCIÓN DE LA PREDICCIÓN
CONSIDERANDO EL VALOR DE SALIDA DE
CÁLCULO DEL FUNCIONAL COSTO J
CÁLCULO DE UN NUEVO
VECTOR DE CONTROL DE
LONGITUD Nu
Se repite el ciclo
CONSIDERANDO EL VALOR DE SALIDA DE
LA PLANTA
cada Ts segundos
durante todo el
tiempo de
simulación
CÁLCULO DEL GRADIENTE DE J CON
RESPECTO A LA VARIABLE MANIPULADA
J es
mínimo?
SI
NO
ACTUALIZACIÓN DEL
VECTOR DE ESTADO
Optimización
IMPLEMENTACIÓN EN LA PLANTA DE LA PRIMERA
ACCIÓN DE CONTROL DEL VECTOR DE CONTROL
CALCULADO
SI
106
FIN
Programación no lineal usando MATLAB Programación no lineal usando MATLAB
• La función LSQNONLIN (Optimization Toolbox)resuelve 
el problema de mínimos cuadrados no lineal:
( )
2 2 2
2
( )
ub X lb
X f X f X f X f
n
X X
≤ ≤
+ + + =
s.t.
) ( ) ( ) ( min ) ( min
2 2
2
2
1
2
2
L
• x = lsqnonlin(fun,x0,lb,ub) comienza en el punto x0 y 
encuentra un mínimo de la suma de los cuadrados de encuentra un mínimo de la suma de los cuadrados de 
las funciones descriptas en fun. 
• fun debe retornar un vector de valores y no la suma de  y
los cuadrados de los valores. 
107
Ejemplo
E t X i i i d l t X [0 3 0 4]
( )
2
10
2 1
2 2

+
kx kx
k Encontrar X que minimice comenzando en el punto X = [0.3, 0.4].
La función que se le pasa a LSQNONLIN debe computar el vector 
para k= 1 a 10 (F debe tenr tener k componentes)
( )
1
2 1
2 2

=
− − +
k
kx kx
e e k
2 1
2 2 ) (
kx kx
k
e e k X F − − + =
para k= 1 a 10 (F debe tenr tener k componentes).
Primero, escribir un archivo .m para computar k componentes del vector F.
function F = myfun(x)
k = 1:10;
F = 2 + 2*k‐exp(k*x(1))‐exp(k*x(2)); F   2 + 2 k exp(k x(1)) exp(k x(2));
Luego, invocar una rutina de optimización
x0 = [0.3 0.4]                         % Starting guess
[x,resnorm] = lsqnonlin(@myfun,x0)     % Invoke optimizer
Luego de 24 evaluaciones de la función el resultado es el siguiente: 
x =  0.2578   0.2578
108
resnorm =   124.3622 % Residual or sum of squares
MPC en Sistemas Híbridos MPC en Sistemas Híbridos
Ciencia de la

Teoría de
l
Maquina de
Sistema
dinámico
computación control
A
u(t) y(t)
q
estados
finita
dinámico
continuo en
el tiempo
Sistema
1
2
A
C
B
S ste a
Híbrido
ℜ ∈
ℜ ∈
U
X
m
n
5
3
D
B
C
( ) ⎪


=
ℜ ∈
) ( ), (
) (
t u t x f
dt
t dx
Y
p
4
A
C
{ }
{ } D C B A U
X
, , ,
5 , 4 , 3 , 2 , 1


( )
( )





= ) ( ), ( ) ( t u t x g t y
dt
109
{ } , , ,
( )
( )



=
= +
) ( ), ( ) (
) ( ), ( ) 1 (
k u k x g k y
k u k x f k x
Como modelar el sistema híbrido? Como modelar el sistema híbrido?
Algunas opciones:
• Pieceawise Continuos Systems
S it h d Affi S t • Switched Affine Systems
• Mixed Logical Dynamical Systems • Mixed Logical Dynamical Systems
110
Pieceawise Continuos Systems
g k u D k x C k y
f k u B k x A k x
k i k i k i
) ( ) ( ) (
) ( ) ( ) 1 (
) ( ) ( ) (
+ + =
+ + = +
K k J k H k i
g k u D k x C k y
k i k i k i
) ( ) ( t ) (
) ( ) ( ) (
) ( ) ( ) (
≤ +
+ + =
K k u J k x H k i
k i k i k i
) ( ) ( s.t. ) (
) ( ) ( ) (
≤ +
{ } s k i
Y y U u X x
p m n
, , 1 ) (
, ,
L ∈
ℜ ⊆ ∈ ℜ ⊆ ∈ ℜ ⊆ ∈
Se pueden aproximar 
dinámicas no lineales y/o  
discontinuas arbitrariamente 
bien
111
Switched Affine Systems
La ecuación de estado puede ser escrita como
bi ió d é i di i if h combinación de términos y condiciones if‐then‐
else :
112
Mixed Logical Dynamical Systems Mixed Logical Dynamical Systems
•Orientado a la computación (mixed‐integer programming)
•Adecuado para síntesis de controladores verificación •Adecuado para síntesis de controladores, verificación, 
etc. 
113