113
Curso CONTROL PREDICTIVO BASADO EN MODELO CON RESTRICCIONES EN MODELO CON RESTRICCIONES Dr Diego Feroldi Dr . Diego Feroldi [email protected] Universidad Nacional de Rosario 1

Curso MPC_slides.pdf

Embed Size (px)

Citation preview

Page 1: Curso MPC_slides.pdf

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

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

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

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

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

Expectativas y posibilidades técnicas

6

C. Bordons, Control Predictivo: metodología, tecnología y nuevas  perspectivas, 2000

Page 7: Curso MPC_slides.pdf

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

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

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

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

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

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

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

Ejemplo:Horizonte de control M=4

Horizonte de predicción P=9

14

Page 15: Curso MPC_slides.pdf

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

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

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

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

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

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

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

22

J.M.Maciejowski, “Predictive Control with Constraints”, Pearson education, 2002

Page 23: Curso MPC_slides.pdf

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

24

Page 25: Curso MPC_slides.pdf

25

Page 26: Curso MPC_slides.pdf

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

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

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

:donde

( )( )

( )( ) ⎥

⎥⎤

⎢⎢⎡

+ΔΔ

⎥⎥⎤

⎢⎢⎡

++

1ˆˆ

ˆˆ

2

1

kkukku

kPkykPky

( )

( )

( )

( )⎥⎥⎥⎥

⎦⎢⎢⎢⎢

⎣ −+Δ

+Δ=Δ

⎥⎥⎥⎥

⎦⎢⎢⎢⎢

⎣ +

+=

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

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

•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

“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

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

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

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

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

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

38

Page 39: Curso MPC_slides.pdf

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

En forma matricialB ⎤⎡MMM

-H iH BA

B

A

A|k) (k x

u

⎥⎥⎥⎥⎤

⎢⎢⎢⎢⎡

⎥⎥⎥⎤

⎢⎢⎢⎡

⎥⎥⎥⎤

⎢⎢⎢⎡ +

∑ˆ

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

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

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

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

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

)(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

( ) [ ] ( ) ⎤⎡⎤⎡⎤⎡⎞⎛ ⎤⎡⎤⎡⎤⎡ + 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

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

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

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

• 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

• 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

• 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

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

• 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

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

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

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

• 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

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

( )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

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

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

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

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

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

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

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

Estructura MPCEstructura MPC(MATLAB Toolbox)

68

Page 69: Curso MPC_slides.pdf

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

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

Diseñando el MPC usando la Toolbox de diseño (mpctool)

71

Page 72: Curso MPC_slides.pdf

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

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

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

Plantas no linealesU d lMPC C ll Bl kUso del MPC Controller Block

75

Page 76: Curso MPC_slides.pdf

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

• 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

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

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

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

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

• 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

( ) ( ) ( )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

• 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

• 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

QQ

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

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

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

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

• 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

Un punto de coincidencia: ∆p = ∆m

Consigna constanteConsigna

de

)( Hn+ε

Trayectoria de

referencia

icha

)(nε

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

( ) ( ) ( ) 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

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

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

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

• 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

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

( )( )

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

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

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

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

An Overview of Nonlinear Model Predictive Control Applications, 2000pp ,S. Qin, A. Badgwell

101

Page 102: Curso MPC_slides.pdf

• 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

• 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

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

• 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

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

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

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

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

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

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

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

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