curso mpc_slides.pdf
TRANSCRIPT
![Page 1: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/1.jpg)
Curso
CONTROL PREDICTIVO BASADOEN MODELO CON RESTRICCIONESEN MODELO CON RESTRICCIONES
Dr Diego FeroldiDr. Diego [email protected]
Universidad Nacional de Rosario
1
![Page 2: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/2.jpg)
Presentación del cursoPresentació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 formulacionesE t bilid d t l d MPC• Estabilidad en controladores MPC
• Ajuste de controladores MPCd d• Casos de estudio
• Perspectivas
2
![Page 3: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/3.jpg)
Bibliografía BásicaBibliografí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” SpringerE. Camacho, C. Bordons, Model predictive control , Springer Verlag, 2004.
C Bordons Control Predictivo: metodología tecnología yC. 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
![Page 4: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/4.jpg)
Definición de Model Predictive Control (MPC)
l i d l• Es un algoritmo de control que computa unasecuencia temporal discreta de las variables
i l d f t l bj ti d ti imanipuladas a futuro con el objetivo de optimizarel comportamiento de la planta o proceso acontrolarcontrolar.
• Fue concebido para dar solución al control depplantas químicas y plantas de potencia aunqueactualmente puede encontrarse en diversas áreas:pmetalúrgica, automotriz, procesamiento de pulpa ypapel, alimentos, robótica, etc.
4
![Page 5: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/5.jpg)
El Control Predictivo es un campo muy amplio deEl 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 salidaUso 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 objetivocierta función objetivo.
• Estrategia deslizante: en cada instante el horizonte se va desplazando hacia el futuro.
5
![Page 6: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/6.jpg)
Expectativas y posibilidades técnicas
6
C. Bordons, Control Predictivo: metodología, tecnología y nuevas perspectivas, 2000
![Page 7: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/7.jpg)
Algunas Soluciones Industriales deAlgunas Soluciones Industriales deControl Predictivo
• OPTIMIZE‐IT (ABB)
• DMCplus (ASPENTECH)
• INCA for BATCH (IPCOS)
• BRAINWAVE (ANDRITZ)
7
![Page 8: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/8.jpg)
IntroducciónIntroducción
P MPC?Por que MPC?• Multivariable
• Minimiza costos
• Maximiza el rendimientoMaximiza el rendimiento
• Tiene en cuenta las limitaciones físicas en los actuadoresactuadores
• 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 referenciasreferencias
8
![Page 9: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/9.jpg)
DesventajasDesventajas
• 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 arealizar los cálculos on-line)
• Conocer el modelo
9
![Page 10: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/10.jpg)
Idea básicaIdea básica
Optimizador PlantaEntradas SalidasReferencias
r(t) u(t) y(t)
Medidas
( ) ( ) y( )
• CONTROL: Control complejo con restricciones de plantas multivariablerestricciones de plantas multivariable.
• PREDICTIVO: La optimización se basa en la evolución predicha a futura de la plantala 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
![Page 11: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/11.jpg)
Analogía del MPC con la conducción de un automóvil
• El conductor sabe cual es su trayectoria deseada para un Ny phorizonte finito N.
• Teniendo en cuenta las características del auto (modelo mental del auto) decide que
i d i d t l t t+Nsecuencia 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 oes tomada.
• El procedimiento se repite en el
11
p pinstante siguiente.
![Page 12: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/12.jpg)
Filosofía del Horizonte Deslizante (Receding Horizon)(Receding Horizon)
• En cada instante t se resuelve un problema de pcontrol óptimo sobre un horizonte finito futuro N: – Se minimiza f(|y-r|, |u|) – Sujeto a restricciones:
maxmin yyy ≤≤
maxmin
maxmin
uuuuuuΔ≤Δ≤Δ
≤≤
• 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ónOptimización On-Line → Realimentación12
![Page 13: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/13.jpg)
Idea Básica del MPC
)(
)|(ˆ kty
)|( ktr)(ts
)|(ˆ ktyf
)(ty Hp
Entrada
k k+Hp Tiempo
Tiempok k+Hp
Hm
k+Hm
13
Tiempok k Hpk Hm
![Page 14: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/14.jpg)
Ejemplo:Horizonte de control M=4
Horizonte de predicción P=9
14
![Page 15: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/15.jpg)
Función objetivo generalizadaFunción objetivo generalizada
( ) ( ) ( ) ( )[ ] ( ) ( )[ ]22 1|ˆ2
−+Δ++−+= ∑ ∑ jtujjtrtjtyjNNNJN Nu
λδ( ) ( ) ( ) ( )[ ] ( ) ( )[ ]1
21 1|,,1
+Δ+++= ∑ ∑= =
jtujjtrtjtyjNNNJNj j
u λδ
Esfuerzo de controlSeguimiento de referencias Esfuerzo de controlSeguimiento de referencias
s(t)
r1(t+k)
r2(t+k)y(t)
t
15
tPasado Futuro
![Page 16: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/16.jpg)
Importante!
ikky
+enocurriráquelodepredicción una tenemossolo en que significa ˆnotación La
( ) ( )
ik +
ˆ
.en ocurrirá quelo de
( ) ( )kikyiky +≠+ ˆgeneralen tanto,loPor
16
![Page 17: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/17.jpg)
Construyendo el modelo: tipos de entradas y salidas
Perturbacionesmedidas
Pl tVariables
manipuladas
medidas
Salidas deEntradas Plantamanipuladas
no medidas
Salidas de la plantade la
planta
Perturbaciones no medidas
Ejemplo:í V i bl i l d d lReactor químico
AiAi TC ,Variable manipulada: temperatura del refrigerante, Tc
Perturbación medida: Temperatura de entrada, TAi
CTT AC
p , Ai
Perturbación no medida: Concentración de entrada, CAi
17
T Salida medida: Temperatura del producto, T
Salida no medida: Concentración de salida, CA
![Page 18: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/18.jpg)
Buenos Modelos para MPCBuenos 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-Linerealizar la optimización On-Line
18
![Page 19: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/19.jpg)
Posibles Modelos para MPCPosibles 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 linealesMúltiples modelos lineales– Redes neuronales– Modelos ARX, ARMAX, NARMAX
• Robustos– Modelo lineal + descripción de incertidumbreHíb id (E d di i )• Híbridos (Estados discretos y continuos)– “Mixed Logical Dynamical Systems”
“Piecewise Affine Systems”– Piecewise Affine Systems
19
![Page 20: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/20.jpg)
Modelos usando Toolboxes de MATLABLa toolbox de MATLAB requiere que el modelo sea li l i i t l ti (LTI) S dlineal 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™ softwarey
• A partir de la planta: Identification Toolbox™ softwaresoftware
• Linealizando un modelo: Simulink®model
20
![Page 21: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/21.jpg)
Resolución del MPC con un punto de i id i i i t d t lcoincidencia y un movimiento de control
( ) ( ) ( ) ( )kkuHSkHkykHky Δ++=+ ˆˆˆ( ) ( ) ( ) ( )
( ) ( )
PPfP
donde
kkuHSkHkykHky Δ++=+
:( ) ( )
( ) PP HHSkukkukku −−=Δ
enescalónlarespuestalaes)1(ˆˆ
( )
( ) ( )
PP
kkkkqueremos
HHS
ˆ:
en escalón larespuestalaes
( ) ( )PP
entonceskHkrkHky +=+
:
ˆ
( ) ( ) ( )( )
PP
HSkHkykHkr
kku+−+
=Δˆ
ˆ( )PHS
21
![Page 22: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/22.jpg)
22
J.M.Maciejowski, “Predictive Control with Constraints”, Pearson education, 2002
![Page 23: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/23.jpg)
ss3
2y r(k+2|k)=2.487
y(k+1)=2 28642 y(k+1)=2.2864
k-2 k-1 k k+1 k+23 60 Tiempo (seg)
0 3uû(k|k)=û(k+1|k)=0.4432
0.3u
23
k-2 k-1 k k+1 k+2Tiempo (seg)
![Page 24: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/24.jpg)
24
![Page 25: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/25.jpg)
25
![Page 26: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/26.jpg)
Resolución del MPC con varios puntos de coincidencia y un movimiento de control
PPP c,,, :iacoincidenc de Puntos 21 K
( ) ( ) ( ) ( )( ) ( ) ( ) ( )
kkuPSkPkykPkr f ˆˆˆ 111 Δ++=+
( ) ( ) ( ) ( )kkuPSkPkykPkr f ˆˆˆ 222 Δ++=+
M
( ) ( ) ( ) ( )kkuPSkPkykPkr ccfc ˆˆˆ Δ++=+
26
![Page 27: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/27.jpg)
Solución con mínimos cuadrados para el caso con un movimiento de control
d fiS
( )( )
( )( )
( )( )PSkPkykPkr
⎥⎤
⎢⎡
⎥⎤
⎢⎡ +
⎥⎤
⎢⎡ +ˆ
:define Se
111)
( ) ( ) ( )f
PSS
kPkyy
kPkr
⎥⎥⎥⎥
⎢⎢⎢⎢
=
⎥⎥⎥⎥
⎢⎢⎢⎢ +
=
⎥⎥⎥⎥
⎢⎢⎢⎢ +
=τˆ 222
MM
)
M
( ) ( ) ( )ccc PSkPkykPkr ⎥⎦
⎢⎣⎥
⎥⎦⎢
⎢⎣ +⎥
⎥⎦⎢
⎢⎣ +
:entonces
ˆ )
( ) ( )fySkku −=Δ τ\:entonces
)
27
![Page 28: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/28.jpg)
Solución con mínimos cuadrados para el caso con varios movimientos de control
( ) ( )( ) ( ) ( ) ( )1ˆ1|ˆ
ˆˆ
+Δ−+Δ
++=+
kkuPSkkuPS
kPkykPky
ii
ifi
( )( ) ( )1ˆ1 −+Δ+−++ kHkuHPS uuiL
Δ+= f uΘyy
( ) ( ) ( ) ( )1ˆcon \ −+Δ=−=Δ kukkukufyyΘu
Si las restricciones de desigualdad son lineales, entonces se puede aplicar Programación
28
Cuadrática (Quadratic Programming).
![Page 29: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/29.jpg)
:donde
( )( )
( )( ) ⎥
⎥⎤
⎢⎢⎡
+ΔΔ
⎥⎥⎤
⎢⎢⎡
++
1ˆˆ
ˆˆ
2
1
kkukku
kPkykPky
( )
( )
( )
( )⎥⎥⎥⎥
⎦⎢⎢⎢⎢
⎣ −+Δ
+Δ=Δ
⎥⎥⎥⎥
⎦⎢⎢⎢⎢
⎣ +
+=
1ˆ
1
ˆ
2
uc kHku
kku
kPky
kPkyMM
uy
( ) ( ) ( )( ) ( ) ( ) ⎥
⎤⎢⎡ −
⎦⎣⎦⎣
00001111 SPSPS LLL
( ) ( ) ( )
( ) ( ) ( )⎥⎥⎥⎥
⎦⎢⎢⎢⎢
⎣ +
−=
11
001122
HPSPSPS
SPSPSMMMMMMMMMM
LLLLLΘ
( ) ( ) ( )⎦⎣ +−− 11 uccc HPSPSPS LLLLLLL
29
![Page 30: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/30.jpg)
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ˆ −−= kkykykd• Asumir que la misma perturbación se mantiene:
( )( )fkd y1yΘu −−=Δ \
Introduce Feedback!
30
![Page 31: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/31.jpg)
•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 estabilizadoestabilizado.
•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 liniciales del modelo.
31
![Page 32: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/32.jpg)
“Realinear” basado en datos∑ ∑= =
−+−−=n
i
n
iimim ikubikyaky
1 1inestable) modelo( )()()(
( ) ( ) ( ) ( )∑ ∑= =
−+++−+−=+n
i
n
iipi ikubkkubikyakky
1 21 1ˆ11ˆ
( ) ( ) ( )∑=
+−+−+−=+
n
n
ipi ikyakkyakky
21 21ˆ2ˆ
( ) ( ) ( )
M
∑=
−++++n
ii ikubkkubkkub
321 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:1ym∞-yp≠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 yp(K)
![Page 33: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/33.jpg)
HistoriaHistoria• Richalet et al en 1978: Model Predictive HeuristicControl
• Cutler and Ramaker en 1980: Dynamic MatrixCutler and Ramaker en 1980: Dynamic MatrixControl (DMC)
• Martin Sanchez en 1976: primer patente (Adaptive• Martin‐Sanchez en 1976: primer patente (AdaptivePredictive Control)
P i 1963 Kl i 1970 K P• Propoi en 1963,Kleinman en 1970, Kwon y Pearsonen 1975, Rouhani y Mehra en 1982: publicaciones
id i ilcon ideas similares
33
![Page 34: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/34.jpg)
TerminologíaTerminologí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
![Page 35: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/35.jpg)
Estructura JerárquicaEstructura Jerárquica
Optimización del setpointOptimización del setpoint
C l P di iC l P di iControl PredictivoControl Predictivo
ddActuadoresActuadores
35
![Page 36: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/36.jpg)
Formulación básica de MPCModelo de la planta
)()()1( kBkAk)()(
)()()1(
y kxCkykBukAxkx
=+=+
)()( z
y
kxCkz =
estado devector nx ℜ∈
entradaslu ℜ∈
scontroladasalidasmedidas salidas
z
y
m
m
zy
ℜ∈
ℜ∈
36
scontroladasalidasz ℜ∈
![Page 37: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/37.jpg)
Secuencia de accionesSecuencia de acciones
1. Obtener medidas y(k)2. Computar las secuencia de entradas de la2. Computar las secuencia de entradas de la
planta u(k+i|k) i=0,…, Hu-13 A li (k|k) l l3. Aplicar u(k|k) a la planta
Notar: No hay transferencia directa desde u to y ( t i D)(matriz D).
37
![Page 38: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/38.jpg)
38
![Page 39: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/39.jpg)
Caso sin perturbación y medición de estados
⎪⎪⎧
+++=++=+
|k)(kuB|k)(kxA|k)(kx(k|k)u BAx(k) |k) (k x
1ˆ1ˆ2ˆˆ1ˆ
⎪⎪⎪
⎨+++=
+++=+
|k) (k u B ABˆu(k|k)x(k) A|k)(k uB|k) (k xA|k) (k x
1ˆ112
2
M
⎪⎪⎪⎨
+++=+ |k) - H(k u B|k) - H(k xA|k) H(k x ppp 1ˆ1ˆˆM
⎪⎪⎩ ++++= − |k) - H(k u B . . . (k|k) uB Ax(k) A p
HH pp 1ˆˆ1
( )⎪⎧ +=+ kkxCkkz z |1ˆ)|1(ˆy
( )⎪
⎪⎪⎨
+=+ kkxCkkz z |2ˆ)|2(ˆM
39( )⎪
⎪⎩ +=+ kHkxCkHkz pzp |ˆ)|(ˆ
M
![Page 40: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/40.jpg)
En forma matricialB ⎤⎡MMM
-H iH BA
B
A
A|k) (k x
u
⎥⎥⎥⎥⎤
⎢⎢⎢⎢⎡
⎥⎥⎥⎤
⎢⎢⎢⎡
⎥⎥⎥⎤
⎢⎢⎢⎡ +
∑ˆ
1ˆ
1
MMM
H
ii
i
H
H
u
u )u(k BA
BAx(k)
A
A|k) H(k x
|k) H(k xuu
u
+−
⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢
+
⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢
=
⎥⎥⎥⎥
⎢⎢⎢⎢
+++
∑∑
=
=
+ 11ˆ
ˆ
0
0
1
444444 3444444 21
MMM
H
ii
HBAA Hp|k)(k x pp ⎥⎥⎥
⎦⎢⎢⎢
⎣⎥⎥⎦⎢
⎢⎣⎥
⎥⎥
⎦⎢⎢⎢
⎣ + ∑ −
=
ˆ 1
0
L
L
pasado
BABB
⎥⎥⎤
⎢⎢⎡
+ 00
ML
MOMH
ii
u(k|k)BBA
BAB
u
⎥⎥⎤
⎢⎢⎡ Δ
⎥⎥⎥⎥
⎢⎢⎢⎢ +
∑ −
=
0
1
0
MMM
L u
HHH
H
ii
i
|k) - Hu(k BABBAu ⎥⎥⎦⎢
⎢⎣ +Δ
⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢
+∑∑
=
=
1
1
0
0
40444444444 3444444444 21
L
futuro
HH
iiH
ii BABA upp ⎥
⎦⎢⎣ ∑∑ −
=
−
= 0
1
0
![Page 41: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/41.jpg)
y
⎥⎥⎤
⎢⎢⎡ +
⎥⎥⎥⎤
⎢⎢⎢⎡
=⎥⎥⎤
⎢⎢⎡ + )|1(ˆ
0000
)|1(ˆ
y
kkxC
Ckkz
z
z
ML
L
M
⎥⎥⎦⎢
⎢⎣ +⎥⎥
⎦⎢⎢
⎣⎥⎥⎦⎢
⎢⎣ + )|(ˆ
00)|(ˆ kHkx
CC
kHkz pz
zp
M
L
MMMM
41
![Page 42: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/42.jpg)
Caso con perturbación constante• 1º Suposición: la salida controlada y la salida
did l i ( )medida son la misma .
)|(ˆ)1|(ˆ)( kkdkkyky +−=
( )yz =
2º S i ió l b ió)|(ˆ)1|(ˆ
)|()|()(
kkdkkxC
yy
y +−=
• 2º Suposición: la perturbación permanece constante a lo largo del horizonte de predicción
)|(ˆ)|(ˆ)|(ˆ)|(ˆ kikdkikxCkikykikz y +++=+=+
)|(ˆ)|(ˆ:donde
kkdkikd =+
42
)|()|( kkdkikd +
![Page 43: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/43.jpg)
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: ( ) ( ) cuandoaun |ˆ|ˆ ICkikxkiky y =+≠+( ) ( ).ˆestimar para observadorun necesita se generalEn x
y
43
![Page 44: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/44.jpg)
Usando un observadorUsando un observador( )( )
( )( ) ⎥
⎤⎢⎡
+⎥⎤
⎢⎡
⎥⎤
⎢⎡
=⎥⎤
⎢⎡ +
)(01
kuBkxAkx
( ) ( )
[ ] ( )( )⎥⎦
⎤⎢⎣
⎡=
⎥⎦
⎢⎣
⎥⎦
⎢⎣
⎥⎦
⎢⎣
⎥⎦
⎢⎣ +
)(
)(001
y kdkx
ICky
kdIkd
( )
( ) [ ] ( )⎥⎤
⎢⎡
+⎥⎤
⎢⎡
+⎥⎤
⎢⎡ −⎟⎟⎞
⎜⎜⎛
⎥⎤
⎢⎡
⎥⎤
⎢⎡
⎥⎤
⎢⎡ +
⎦⎣
)()(1|ˆ01ˆ xx ky
Lku
BkkxIC
LAkx
kd
( ) [ ] ( )( ) ( ) ( )+−−=
⎥⎦
⎢⎣
+⎥⎦
⎢⎣
+⎥⎦
⎢⎣ −⎟⎟⎠
⎜⎜⎝
⎥⎦
⎢⎣
−⎥⎦
⎢⎣
=⎥⎦
⎢⎣ +
1|ˆ|ˆ pero
)()(01|ˆ01ˆ
y
dy
d
kykkxCkkd
kyL
kukkd
ICLIkd
( ) ( )
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡=
=+
0LL
L entonces
|ˆ|1ˆy
x
I
kkdkkd
[ ] ⎥⎦
⎤⎢⎣
⎡−
=⎟⎟⎠
⎞⎜⎜⎝
⎛⎥⎦
⎤⎢⎣
⎡−⎥
⎦
⎤⎢⎣
⎡
⎥⎦
⎢⎣
⎥⎦
⎢⎣
00
00
y
Ld
yd
x
CA
ICLL
IA
I
44
⎦⎣⎠⎝ ⎦⎣⎦⎣ 00 yd CLI
![Page 45: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/45.jpg)
)(ku )(kx )(kyB
)(ku )(kx )(kyC1−z+
+
APLANTA
+L
( )1|ˆ kk+ -
B C1−z ( )1| −kkx( )1|ˆ −kky+
+
A OBSERVADOR
45
![Page 46: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/46.jpg)
( ) [ ] ( ) ⎤⎡⎤⎡⎤⎡⎞⎛ ⎤⎡⎤⎡⎤⎡ + 1|ˆ01ˆ LBkkxLAkx( )( ) [ ] ( )
( ) ⎥⎦
⎤⎢⎣
⎡+⎥
⎦
⎤⎢⎣
⎡+⎥
⎦
⎤⎢⎣
⎡−−
⎟⎟⎠
⎞⎜⎜⎝
⎛⎥⎦
⎤⎢⎣
⎡−⎥
⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡++
)()(01|ˆ
1|0
01ˆ1
d
xy
d
x kyLL
kuB
kkdkkx
ICLL
IA
kdkx
( ) ( ) ( )+−−= 1|ˆ|ˆ pero
y kykkxCkkd
( ) ( )=+ |ˆ|1ˆy
kkdkkd
⎥⎤
⎢⎡
⎥⎤
⎢⎡ 0L
L
entonces
x⎥⎦
⎢⎣
=⎥⎦
⎢⎣
=
y L
Ld
x
I
[ ] ⎥⎦
⎤⎢⎣
⎡−
=⎟⎟⎠
⎞⎜⎜⎝
⎛⎥⎦
⎤⎢⎣
⎡−⎥
⎦
⎤⎢⎣
⎡00
00
y
yd
x
CA
ICLL
IA
46
⎦⎣⎠⎝ ⎦⎣⎦⎣ 00 yd CLI
![Page 47: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/47.jpg)
i ifi l l d l b dEsto 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ónmismo modelo de perturbación.
• Se puede usar el mismo enfoque con otros modelos de perturbación.
• Al momento de predecir, reemplazar por)(kx )|(ˆ kkx
47
![Page 48: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/48.jpg)
Función de costo cuadráticaFunción de costo cuadráticaHH uP −1
22
Q
i|k)(k uΔ i|k)k i|k) - r((k zV (k)
T
iiR
HiiQ
uP
w
=++++= ∑∑==
:Notación
0ˆˆ
2
0
2
)(
2
)(
HH
xQxx TQ=
1U l ttdtldC i:ajuste de Parámetros
:Notación
Hii|k)(kHHuHpH
HH
P
ww
≥+Δ≥
=
0ˆC t ldH i t .Predicción de Horizonte
1.eUsualmentcosto. deventanaladeComienzo
R(i)Q(i)
Hii|k) (k uH uu
≥≥
≥=+Δ
controldesmovimientolosdeónPenalizaci0salida. deerror delón Penalizaci 0
para0Control.deHorizonte
i)u(ki|k)(ku
R(i)
+Δ≠+Δ
≥
ˆ:
control.desmovimientolosdeón Penalizaci 0
!Importante
48
i)u(k i|k) (k u +Δ≠+Δ:!Importante
![Page 49: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/49.jpg)
Control Predictivo con RestriccionesControl Predictivo con Restricciones• En la práctica todos los procesos están sujetos aEn 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 pmáximas.
• Requerimientos tecnológicos: mantener variables, por l d dejemplo temperaturas, en un rango determinado.
• Necesidad de trabajar cerca de las restricciones para t l fi i iaumentar la eficiencia.
• Limitaciones de calidad del producto o normativa medioambientalmedioambiental.
49
![Page 50: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/50.jpg)
• En una Estrategia convencional las restriccionesEn 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 jalejados 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 ó icuenta). 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
![Page 51: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/51.jpg)
• El MPC es la única metodología capaz de incorporar las g p prestricciones 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 kickbackp– Evitar respuesta inicial inversa (sistemas fase no mínima)– Evitar sobreoscilación
51
![Page 52: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/52.jpg)
• Las variables manipuladas siempre se pueden• Las variables manipuladas siempre se pueden mantener restringidas recortando la salida l l d l l dcalculada 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 ldiná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 ñ idaños a equipos o personas.
52
![Page 53: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/53.jpg)
Restricciones con desigualdades linealesRestricciones con desigualdades lineales
)vec()|k)-H(ku(k|k)uF vec()vec() |k), - H(k u. ,(k|k), . .uE vec( u
011ˆˆ011ˆˆ
≤+≤+ΔΔ
)vec() |k), H(k z. . , Hw|k), . (k zG vec()vec() |k), H(k u. , (k|k), . .uF vec(
p
u
01ˆˆ011
≤++≤+
Las restricciones pueden formularse en las siguientes variables:•Movimiento en las entradas•Magnitud de las entradas• Salidas controladas o estados
53
![Page 54: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/54.jpg)
• MPC con restricciones → ley de control no lineal:
– MPC trabaja en modo lineal cuando la planta opera lejos de las restriccionesopera lejos de las restricciones
– MPC trabaja en modo no lineal cuando la planta se acerca a las restricciones
• Ejemplo: control de temperatura en un motorEjemplo: control de temperatura en un motor
54
![Page 55: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/55.jpg)
Algoritmos de resoluciónAlgoritmos de resolución
MODELOFUNCIÓNCOSTE
RESTRICCIONES SOLUCIÓN
Lineal Cuadrática Ninguna Explícita
Lineal Cuadrática Lineales QPLineal Cuadrática Lineales QP
Lineal Norma‐1 Lineales LP
55
![Page 56: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/56.jpg)
Control Predictivo con restriccionesControl Predictivo con restricciones
• La función QUADPROG resuelve el problema de programación cuadrática:p g
⎪⎨
⎧ ≤bAbAX
f TT1i⎪⎩
⎪⎨
≤≤=+
ubXlbbAtsXfHXX eqeq
TT
X.
21min
• La función QPDANTZ resuelve el problema de programción cuadrática convexa usando el algoritmoprogramción cuadrática convexa usando el algoritmode Dantzig‐Wolfe.
56
![Page 57: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/57.jpg)
Relajación de las restricciones
• Es grave que el problema de optimización resulte no
Relajación de las restricciones
g q p pfactible.
• Posibles causas:– Ocurre una gran perturbación inesperada– El modelo de planta difiere demasiadoEl 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
![Page 58: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/58.jpg)
• 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 pmanera que el optimizador trate de hacerla nula si es posible.
58
![Page 59: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/59.jpg)
Relajación de las restriccionesRelajación de las restricciones1min 2++Φ ερθφθθ TT
s.t.
2,
⎨⎧ +≤Ω εωθ
ρφεθ
0⎩⎨ ≥ε
negativo noescalar un es quedimensión misma lacon negativo noun vector es
ρωε
nesrestricciosin Problema:0=ρfuertes nesrestricciocon Problema:∞→ρ
Continua siendo un problema QP pero con un59
Continua siendo un problema QP pero con un mayor número de variables
![Page 60: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/60.jpg)
( )target
2target )0()0()0()0(
⎟⎟⎞
⎜⎜⎛
⎥⎤
⎢⎡
⎥⎤
⎢⎡
⎟⎟⎞
⎜⎜⎛
⎥⎤
⎢⎡
⎥⎤
⎢⎡ uu
Wuu
J
T
MMMM( )target
2
target
)0()0(
)1()1()1()1(,ε
⎤⎡ Δ⎤⎡ Δ
⎟⎟⎟
⎠⎜⎜⎜
⎝⎥⎥⎥
⎦⎢⎢⎢
⎣ −−
⎥⎥⎥
⎦⎢⎢⎢
⎣ −⎟⎟⎟
⎠⎜⎜⎜
⎝⎥⎥⎥
⎦⎢⎢⎢
⎣ −−
⎥⎥⎥
⎦⎢⎢⎢
⎣ −=
uu
pupuW
pupuzJ u MMMM
2
)1(
)0(
)1(
)0(
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−Δ
Δ
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−Δ
Δ+ Δ
pu
uW
pu
u
T
u MM
22
)(
)1(
)(
)1(
)(
)1(
)(
)1(ερε+
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡+
pr
r
py
yW
pr
r
py
y
y
T
MMMM
)()()()( ⎠⎝ ⎥⎦⎢⎣⎥⎦⎢⎣⎠⎝ ⎥⎦⎢⎣⎥⎦⎢⎣ prpyprpy
⎥⎥⎤
⎢⎢⎡ −
⎥⎥⎤
⎢⎢⎡
⎥⎥⎤
⎢⎢⎡ − )1()1()1()1()1( maxmaxminmin VyyVy yy εε
MMM
⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢
−−
≤⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢
≤⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢
−−
)0()0()()(
)0()(
)0()0()()(
maxmax
maxmax
minmin
minmin
VupVpy
upy
VupVpy
ts
y
y
y
y
εε
εε
M
M
M
M
M
M
⎥⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢⎢
−Δ−−−
≤
⎥⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢⎢
Δ−
≤
⎥⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢⎢
−Δ−−−
)0()0()1()1(
)0()1(
)0()0()1()1(
..
maxmax
maxmax
minmin
minmin
VupVpu
upu
VupVpu
ts
y
y
y
y
εε
εε
M
M
M
M
M
M
60
⎥⎥
⎦⎢⎢
⎣ −−−Δ⎥⎥
⎦⎢⎢
⎣ −Δ⎥⎥
⎦⎢⎢
⎣ −−−Δ )1()1()1()1()1( maxmaxminmin pVpupupVpu yy εεMMM
![Page 61: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/61.jpg)
E bilid d MPCEstabilidad en MPC
l i ?• ¿Realmente importa?– Si se diseña el controlador off‐line la estabilidad
i l d l l d blnominal del lazo cerrado no es un problema.– Es fácil chequear el sistema diseñado es estable asumiendo que el modelo es correctoasumiendo que el modelo es correcto.
– Estabilidad en lazo cerrado es problemática si se hace un rediseño on‐lineun 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
![Page 62: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/62.jpg)
Estabilidad en MPC• Restricciones terminales aseguran estabilidad
lldi il db iS i d( )
tf ióli i i d)(),()1(
plantalaparapredictivor controladoun obtiene se que Suponiendo=+ kukxfkx
( ))|1(ˆ),|(ˆ)(
costofunción la ominimizand
−++=∑ kikukikxlkVH P
( )
0)|(ˆn terminalrestricciólaasujetoedecrecient es y 0y 0 si solo 0),(y 0),( donde
1
+===≥
∑=
kHkxluxuxluxl
i
problemaelquesiempreestablees00equilibriodepuntoelEntonces)0,0(0 :equlibrio de puntoun es 0 ,0 que Asumimos
0)|(n terminalrestricciólaasujeto
=====
=+
uxfux
kHkx P
LyapunovdefuncionesusandodemostrarpuedeSepaso. cadaen resuelve sey factible sea
problemaelquesiempreestable es0,0equilibriode punto elEntonces == ux
62
Lyapunov.defuncionesusandodemostrar puede Se
![Page 63: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/63.jpg)
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
63k k+1 Tiempo
![Page 64: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/64.jpg)
Como diseñar el controlador MPCComo 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 “ModelP di ti C t l T lb ” MATLABPredictive Control Toolbox” para MATLAB
3. Usando funciones específicas de la Toolbox3. Usando funciones específicas de la Toolbox
Uso de objetos tipo MPC
64
![Page 65: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/65.jpg)
Objetos tipo MPCObjetos tipo MPC
• Existen tres tipos de objetos MPC:
1. MPC Controller Objectj
2. MPC Simulation Option Object
3. MPC State Object
65
![Page 66: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/66.jpg)
Objetos tipo MPCj p
• Todos los parámetros que definen la ley de control MPC(horizonte de predicción, pesos, restricciones, etc. ) estánalmacenados en un MPC controller object, los cuales seconstr en en dos etapasconstruyen en dos etapas:
1. Construcción
Ts = 1;
MPCobj = mpc(CSTR, Ts);
2. Initialización
66
![Page 67: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/67.jpg)
Obj t ti MPCObjetos 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 controladorMPC:MPC:
– mpcstate(mpcobj)
67
![Page 68: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/68.jpg)
Estructura MPCEstructura MPC(MATLAB Toolbox)
68
![Page 69: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/69.jpg)
Ajuste de parámetros en MPCAjuste 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
![Page 70: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/70.jpg)
EJEMPLO:Continuous Stirred‐Tank Reactor (CSTR.m)
+ BAdxAiC
⎤⎡⎤⎡⎤⎡
+=
+=
TDuCxy
BxAxdt
CTC
⎤⎡⎤⎡⎤⎡⎤⎡
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡=
0010
,, :donde
bb
CT
yCT
uTC
xAA
CA
i
T AC
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡=
0000
,0110
,,2221
1211
2221
1211 DCbbbb
Baaaa
A
A [ 0 0285 0 0014 CSTR I tN {'T ' C A i'} CSTR t i l (CSTRA = [‐0.0285 ‐0.0014‐0.0371 ‐0.1476];B = [‐0.0850 0.02380 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 11 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
![Page 71: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/71.jpg)
Diseñando el MPC usando la Toolbox de diseño (mpctool)
71
![Page 72: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/72.jpg)
1.5
2
2.5Plant 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
15Plant Inputs
0
5
T c
1
0
0.5
1
C Ai
720 5 10 15 20 25 30-1
-0.5
Time (sec)
![Page 73: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/73.jpg)
Ejemplo de “Blocking” con cuatro movimientos de controlde control
•Un “block” es un uno o más períodos de muestreo sucesivos durante los cuales la variable manipulada permanece constantevariable 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
![Page 74: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/74.jpg)
Modelo usado por la Toolbox para la estimaciónModelo usado por la Toolbox para la estimación de estados
74
![Page 75: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/75.jpg)
Plantas no linealesU d lMPC C ll Bl kUso del MPC Controller Block
75
![Page 76: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/76.jpg)
Diseñando el MPC usando funcionesTs = 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 controladorWeights (W): [1x1 struct]
Model: [1x1 struct]Ts: 1Optimizer: [1x1 struct]
controlador
Optimizer: [1x1 struct]PredictionHorizon (P): 10ControlHorizon: 2History: [2e+003 7 21 20 18 20 1]History: [2e+003 7 21 20 18 20.1]Notes: {}UserData: []
ObjName.PropName = value;76
![Page 77: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/77.jpg)
• 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 linealmodelo y diseñar un controlador para el modelo lineal.
77
![Page 78: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/78.jpg)
Ot F l iOtras Formulaciones
• Perturbaciones medidas: feedforward
• Generalized Predictive Control (GPC)
• Dynamic Matrix Control (DMC)
• Predictive Functional Control (PFC)
• Formulación continua en el tiempo
78
![Page 79: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/79.jpg)
df dEstructura Feedforward
Perturbaciónmedida
)(kd
Controlador Planta
)(kdm
ˆˆ
+-
++
+
)( zPd
)(kr )(ky)(ku
)(ˆ)(ˆ 11 zPzP d
−
Setpoint-
+ + +)(1 zP )(2 zP)( zC)(kr )(ky)(ku
79
![Page 80: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/80.jpg)
Modelo de la planta con perturbación medidaModelo de la planta con perturbación medida
)()()|(ˆ)|1(ˆ kdBkBukkxAkkx⎧ +++)|(ˆ)|(ˆ
)()()|()|1(kkxCkky
kdBkBukkxAkkx
y
md
⎪
⎪⎨
⎧
=++=+
)|(ˆ)|(ˆ kkxCkkz z⎪⎩ =
( )? |ˆpredecir Como kikd m +
•Usualmente suponemos que permanece constanteUsualmente suponemos que permanece constante• Si es posible hacer una mejor suposición
80
![Page 81: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/81.jpg)
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 ,
dondedonde– 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
![Page 82: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/82.jpg)
• La Matriz DinámicaG se construye a partir de los y pcoeficientes gi obtenidos a partir de la respuesta al escalón con horizonte de predicción hp y horizonte de p p ycontrol hm:
hpSal
ida
⎥⎥⎤
⎢⎢⎡ 1
000
ggg
L
Lg2
ghp
g4g3
p
⎥⎥⎥⎥⎥
⎢⎢⎢⎢⎢
=− 11
12 0
mm hhij ggg
gg
GL
MOMM
L
g1
g2
⎥⎥⎥⎥
⎦⎢⎢⎢⎢
⎣ +−− 11 mppp hhhh ggg L
MOMM
t1 t4t3t2 thpt0
Ent
rada
82
E
![Page 83: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/83.jpg)
( ) ( ) ( )kfkkugkky ++Δ=+ 1|ˆ|1ˆ 1( ) ( ) ( )( ) ( ) ( ) ( )kfkkugkkugkky
kfkkugkky+++Δ+Δ=+
++Δ+2|1ˆ|ˆ|2ˆ
1||1
12
1
M
( ) ( ) ( ) ( )pmhhhp hkfkhkugkkugkhkympp
+++Δ++Δ=+ +− |ˆ|ˆ|ˆ 1L
M
83
![Page 84: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/84.jpg)
• El objetivo del controlador DMC es minimizar un funciónjcosto J(k)
)(min kJu
• donde la función costo J(k) se define como
( )[ ] ( )[ ]|ˆ|ˆ)(1
ykjkyRykjkykJP
r
h
j
Tr +−+−+=∑
=
[ ] [ ])|()|(0
kjkuQkjkumh
j
T +Δ+Δ+∑=
• y–R es una matriz para compensar los diferentes rango de valores
( ) ( ) ( )kjkukjkukjku |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
![Page 85: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/85.jpg)
• El vector de control resulta
( )• donde R y Q son matrices expandidas en el caso multivariable a partir de las
matrices originales:
( ) eRGQRGGu TT 1−+=Δ
g
⎥⎥⎤
⎢⎢⎡
=⎥⎥⎤
⎢⎢⎡
= L
L
L
L
2
1
2
1
00
;00
QRR
R⎥⎥⎦⎢
⎢⎣⎥
⎥⎦⎢
⎢⎣ OMMOMM
22 ; QQ
• e es el vector de errores futuros a lo largo del horizonte de predicción:
prrpr khkyykkyykyye ),|1(,),|1(),([ 11 1111L −+−+−−=
Tprrpr
prrpr
khkyykkyykyy ]),|1(,),|1(),( 22
11
2222
1111
LL −+−+−−
• donde es la i_th salida de la planta medida en el instante presente k.)(kyip
85
DMC sin restricciones→ Solución explícita
![Page 86: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/86.jpg)
Ejemplo: PEM Fuel Cell Systemj p yD. Feroldi et al. / Journal of Power Sources 169 (2007) 205‐212
86
![Page 87: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/87.jpg)
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 qrestricciones
• 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
![Page 88: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/88.jpg)
Funciones básicas• Escalones con retardo
• Polinomios de bajo orden( ) ( ) ( ) ( ) ( ) c
c ikuikuikukukiku ++++=+ L2210|ˆ
Escalón
( ) ( ) ( ) ( ) ( )c210
k TiempoRampa
k Tiempok Tiempo
Parábola
88k Tiempo
![Page 89: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/89.jpg)
• Emplea el concepto de puntos de coincidenciaEmplea el concepto de puntos de coincidencia para facilitar los cálculos: la salida predicha y la referencia deben coincidir en dichos puntosreferencia 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 icoincidencia.
• Se podría trabajar completamente en tiempoSe podría trabajar completamente en tiempo continuo.
89
![Page 90: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/90.jpg)
Un punto de coincidencia: ∆p = ∆m
Consigna constanteConsigna
de
)( Hn+ε
pΔ
Trayectoria de
referencia
icha
)(nε
pΔ
Salida predich
Salida del Proceso (yp)
mΔSalida del modelo
Horizonte de coincidencia
n+H1 n+H2n+HnSalida del modelo (ym)
90
Horizonte de predicción
FuturoPasado
![Page 91: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/91.jpg)
( ) ( ) ( ) con )()( s
TT
Hp
H enyncnHn−
ΔΔ
=−==+ λλλεε
( ) ( ) ( ) ( ) ( )( )1y
HHH
mp
Δ
Δ=Δ
λλ( ) ( ) ( ) ( ) ( )( )
( )( ) ( ) ( )resulta doReemplazan
1
H
HH nnnHnnp −=−=+−=Δ λελεεεε
( )( ) ( ) ( )
( )( ) ( )resulta oResolviend
1)()( mmH
p nyHnynync −+=−− λ
( )( ) ( )( )1
1)(1)()( H
mm
Hmm
Hp
aKanynyC(n)
nMV−
−+−−=
λ
.con m
s
TT
m ea−
=
91
![Page 92: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/92.jpg)
Formulación continua en el tiempoFormulación continua en el tiempo:costoFunción
)|(ˆ)|(ˆ)()(22
2
1
2
1
dtudtytrtV τττλτττττ
τ
τ
τ+++−+= ∫∫
)()()()()|(y
:salida de Predicción
)(2
tytytytyt nnτττττ ++++=+ L&&&
:entrada la deación Parametriz
)(!
)(!2
)()()|(y tyn
tytytyt τττ ++++=+ L
)(!
)(!2
)()()|(ˆ )(2
tum
tutututu mnτττττ ++++=+ L&&&
m juega un papel similar al horizonte de control
92
j g p p
![Page 93: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/93.jpg)
Control Predictivo GeneralizadoControl 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
![Page 94: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/94.jpg)
Formulación delFormulación del Control Predictivo Generalizado (GPC)
)()()1()()()( 111 CBA d
Un proceso SISO puede ser descritos de la siguiente forma:
si)()()1()()()( 111
⎧
+−= −−−− tezCtuzBztyzA d
)(
1)(2
21
101
22
11
1
⎪
⎪⎨
⎧
++++=
++++=−−−−
−−−−
zbzbzbbzB
zazazazAnb
nb
nana
L
L
sistemadelmuertotiempoelesdonde
1)( 22
11
10
⎪⎩ ++++= −−−−
d
zczczczC ncnc
nb
L
1CtomarpodemosdsimplicidaPor
sistema.del muertotiempoelesdonde d
94
1.Ctomar podemosdsimplicidaPor =
![Page 95: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/95.jpg)
• El objetivo del algoritmo GPC consiste en aplicar una j g psecuencia de señales de control que minimice una función de coste de la forma:
( )[ ]∑ ++−+=N
u jtwkjtyjNNNJ 221 )(|ˆ)(),,(
2
δ
[ ]∑
=
−+Δ+uN
Nj
jtuj 2)1()(
1
λ∑=j 1
95
![Page 96: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/96.jpg)
Predicciones óptimas
( ) +Δ=++ ++ 11 )()(|1ˆóptimasesprediccion las de conjunto El
tyFtuGtdty dd( )( ) ++Δ=++
+Δ++
++
++
22
11
)()1(|2ˆ)()(|1
tyFtuGtdtytyFtuGtdty
dd
dd
M
( ) +−+Δ=++ ++
t i i lfitd)()1(|ˆ tyFNtuGtNdty NdNd
M
Δ++= −111 )(comomatricialformaen escritoser puede
zu)G'(z)y(t)F(zGuy --
⎥⎤
⎢⎡
⎥⎤
⎢⎡ Δ
⎥⎤
⎢⎡ ++ 0 00)()1|1(ˆ
dondegtudty L
⎥⎥⎥⎥
⎢⎢⎢⎢
=
⎥⎥⎥⎥
⎢⎢⎢⎢ +Δ
=
⎥⎥⎥⎥
⎢⎢⎢⎢ ++
= 01 0)1()1|2(ˆ ggG
tuu
dtyy
MOMM
L
MM
96
⎥⎦
⎢⎣
⎥⎦
⎢⎣ −+Δ⎥
⎦⎢⎣ ++ −− 021)1()1|(ˆ gggNtuNdty NN L
![Page 97: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/97.jpg)
( )( )
gzGz d⎥⎤
⎢⎡ −−
+ )( 01
1
( )zggzGzzG d
⎥⎥⎥⎥
⎢⎢⎢⎢ −−
=−−
+− )()('
110
12
21
M
( )zF
zgzggzGz NNNd
N
⎤⎡
⎥⎥⎦⎢
⎢⎣ −−−−
−
−−−
−−+
)(
)(1
)1(1
110
1 L
zFzF
zF d
d
⎥⎥⎥⎤
⎢⎢⎢⎡
=−
+
+
)()(
)(1
2
1
1
M
fzF Nd ⎥
⎥⎥
⎦⎢⎢⎢
⎣−
+
ddd lliúl ild dAl)( 1
M
f :en agrupar pueden sepasadodelsoloterminosúltimos losdepender Al
fGuy +=
Similar al caso DMC pero la respuesta libre es distinta97
Similar al caso DMC pero la respuesta libre es distinta
![Page 98: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/98.jpg)
Obtención de la ley de controly
( ) ( ) uuwfGuwfGuJ TT +−+−+=donde
λ
[ ]Ndtwdtwdtww T++++++= )()2()1(
donde
L
fbuHuuJ T ++= 021
Al mismo resultado se puede
( )IGGH T += 2con
2
λ
Al mismo resultado se puede llegar calculando G a partir de los coeficientes de la respuesta ante( )
( )( ) ( )wfwff
GwfbT
T
−−=
−=
0
2coeficientes de la respuesta ante escalón.
( ) ( )wfwff0
:resulta control deley La
98
TbHu 1−−=
![Page 99: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/99.jpg)
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 poperación
• Procesos donde no hay un estado estacionarioProcesos donde no hay un estado estacionario
• Necesidad de implementar NMPCp• Necesidad de modelos no lineales
99
![Page 100: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/100.jpg)
Las aplicaciones que requieren NMPC puedesLas 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 pHfrecuentes perturbaciones (control de pH, etc.).
• Problemas de servo control donde el punto de operación cambia frecuentemente y la plantaoperació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
![Page 101: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/101.jpg)
An Overview of Nonlinear Model Predictive Control Applications, 2000pp ,S. Qin, A. Badgwell
101
![Page 102: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/102.jpg)
• El desarrollo de un modelo no lineal puede serEl desarrollo de un modelo no lineal puede ser bastante complejo
• Diferentes tipos de modelos no lineales:– Modelo de primeros principiosp 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
![Page 103: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/103.jpg)
• El uso de modelos no lineales cambia el problemaEl 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 problemaLa manera general de resolver este problema consiste en lo siguiente:1 Uso de un modelo no lineal completo de la planta1. 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 no2. Uso de eficientes algoritmos de optimización no
lineal capaces de manejar gran número de variables y restricciones.
103
![Page 104: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/104.jpg)
OptimizaciónEl problema de optimización puede ser expresado de la siguiente manera:
)(i Xf
sujeto a
)(min XfnX ℜ∈
ei
ei
mmiXGmiXG+=≤
==,...,10)(
,...,10)(
donde• X es el vector de los parámetros de diseño (las variables
i l d )
ul XXX ≤≤
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
![Page 105: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/105.jpg)
• Si la función objetivo y las restricciones son funciones j ylineales 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 pfunciones 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
![Page 106: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/106.jpg)
Diagrama de flujo de l it NMPC
INICIO
un algoritmo NMPCSETEO 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 NuSe 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
NOACTUALIZACIÓ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
106FIN
![Page 107: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/107.jpg)
Programación no lineal usando MATLABProgramación no lineal usando MATLAB
• La función LSQNONLIN (Optimization Toolbox)resuelve el problema de mínimos cuadrados no lineal:
( )2222 ( )ubXlb
XfXfXfXf nXX
≤≤
+++=
s.t.
)()()(min)(min 222
21
2
2L
• x = lsqnonlin(fun,x0,lb,ub) comienza en el punto x0 y encuentra un mínimo de la suma de los cuadrados deencuentra 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 ylos cuadrados de los valores.
107
![Page 108: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/108.jpg)
EjemploE t X i i i d l t X [0 3 0 4]( )
2102122∑ + kxkxkEncontrar 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
2122∑=
−−+k
kxkx eek
2122)( kxkxk eekXF −−+=
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
![Page 109: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/109.jpg)
MPC en Sistemas HíbridosMPC en Sistemas HíbridosCiencia de la
ióTeoría de
l
Maquina de Sistema dinámico
computación control
Au(t) y(t)
qestados
finita
dinámico continuo en el tiempo
Sistema
12
A
CB
S ste aHíbrido
ℜ∈
ℜ∈
UX
m
n
5
3D
B
C ( )⎪⎨⎧ =
ℜ∈
)(),()( tutxfdt
tdxY p
4A
C{ }{ }DCBAU
X,,,5,4,3,2,1
∈∈
( )
( )⎧
↓
⎪⎩⎨
= )(),()( tutxgtydt
109
{ },,,( )
( )⎩⎨⎧
==+
)(),()()(),()1(
kukxgkykukxfkx
![Page 110: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/110.jpg)
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
![Page 111: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/111.jpg)
Pieceawise Continuos Systems
gkuDkxCky
fkuBkxAkx kikiki
)()()(
)()()1( )()()(
++=
++=+
KkJkHki
gkuDkxCky kikiki
)()(t)(
)()()( )()()(
≤+
++=
KkuJkxHki kikiki )()( s.t. )( )()()( ≤+
{ }skiYyUuXx pmn
,,1)(,,
L∈ℜ⊆∈ℜ⊆∈ℜ⊆∈ Se pueden aproximar
dinámicas no lineales y/o discontinuas arbitrariamente bien
111
![Page 112: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/112.jpg)
Switched Affine Systems
La ecuación de estado puede ser escrita comobi ió d é i di i if hcombinación de términos y condiciones if‐then‐
else :
112
![Page 113: Curso MPC_slides.pdf](https://reader037.vdocuments.co/reader037/viewer/2022103005/55cf948d550346f57ba2c53a/html5/thumbnails/113.jpg)
Mixed Logical Dynamical SystemsMixed 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