56
Tema 37 Control óptimo continuo 37.1. Introducción a los métodos variacionales En primer lugar, introducimos los métodos básicos del cálculo de variaciones, métodos variacionales, que se utilizan para la resolución de problemas de optimización en los que el objetivo es determinar de entre un conjunto de funciones aquella que optimiza cierto valor asociado a estas funciones. Como una aplicación que actúa sobre funciones recibe el nombre de funcional, nuestro objetivo es optimizar un funcional con respecto a las funciones de las que depende. En el cálculo de variaciones se consideran como candidatas funciones lo suficientemente regulares que dependen del tiempo, x = x(t) en un intervalo [t 0 , t 1 ]: Ω= { x :[t 0 , t 1 ] R/ x es de clase dos } Como funcional consideramos la integral definida de una función de al menos clase dos que depende del tiempo, de la función x(t), y de su derivada x (t) J ( x) = Z t 1 t 0 F ( x(t), x (t), t)dt Nuestro objetivo es encontrar la función x(t) que hace óptimo su valor, y en un primer caso consideramos que los valores inicial y final de la función son conocidos. En este caso para x 0 , x 1 R y F : R 3 R el 1153

Tema 37 Control óptimo continuo

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema 37 Control óptimo continuo

Tema 37

Control óptimo continuo

37.1. Introducción a los métodos variacionales

En primer lugar, introducimos los métodos básicos del cálculo de variaciones, métodos variacionales,

que se utilizan para la resolución de problemas de optimización en los que el objetivo es determinar de entre

un conjunto de funciones aquella que optimiza cierto valor asociado a estas funciones. Como una aplicación

que actúa sobre funciones recibe el nombre de funcional, nuestro objetivo es optimizar un funcional con

respecto a las funciones de las que depende.

En el cálculo de variaciones se consideran como candidatas funciones lo suficientemente regulares que

dependen del tiempo, x = x(t) en un intervalo [t0, t1]:

Ω = x : [t0, t1]→ R/x es de clase dos

Como funcional consideramos la integral definida de una función de al menos clase dos que depende

del tiempo, de la función x(t), y de su derivada x′(t)

J(x) =∫ t1

t0F(x(t), x′(t), t)dt

Nuestro objetivo es encontrar la función x(t) que hace óptimo su valor, y en un primer caso consideramos

que los valores inicial y final de la función son conocidos. En este caso para x0, x1 ∈ R y F : R3 → R el

1153

Page 2: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

problema queda:

optx∈Ω

∫ t1

t0F(x(t), x′(t), t)dt

x(t0) = x0 x(t1) = x1

de forma que el conjunto factible (llamado conjunto de funciones admisibles) es

Ψ = x ∈ Ω/x(t0) = x0, x(t1) = x1

Ejemplo 37.1 (Geodésicas en el plano) Encontrar la curva plana más corta que une dos puntos (t0, x0) y

(t1, x1) es equivalente a encontrar la curva x(t) que resuelve el problema

mınx∈Ω

∫ t1t0

√1 + x′(t)2dt

x(t0) = x0 x(t1) = x1 ♣

Ejemplo 37.2 (Geodésicas en el espacio) Encontrar la curva más corta que une dos puntos (t0, x0, y0) y

(t1, x1, y1) es equivalente a encontrar la curva (x(t), y(t)) que resuelve el problema

mın(x,y)∈Ω

∫ t1t0

√1 + x′(t)2 + y′(t)2dt

x(t0) = x0 x(t1) = x1 y(t0) = y0 y(t1) = y1 ♣

Ejemplo 37.3 (Modelo de Ramsey) En cada instante, podemos invertir nuestro capital x(t) o efectuar un

consumo c(t). El capital invertido se transforma mediante una función de producción en f (x) y el consumo

produce una utilidad U(c) que intentamos maximizar en un horizonte temporal T . Por tanto, en el problema

a resolver tenemos una ecuación de variación del capital x′(t) = f (x(t)) − c(t). Si despejamos el consumo

y sustituimos en la utilidad se obtiene el problema

maxx∈Ω

∫ T

0U( f (x(t)) − x′(t))dt

x(0) = x0 x(T ) = x1

En una segunda versión, no incluimos la condición final x(T ) = x1 de forma que no imponemos condi-

ciones sobre el capital del que disponemos al final del periodo

maxx∈Ω

∫ T

0U( f (x(t)) − x′(t))dt

x(0) = x0 ♣

Un máximo global para el problema variacional es una función admisible x∗ tal que cualquier otra

función admisible verifica J(x) ≤ J(x∗). Un máximo local es una función admisible x∗ tal que J(x) ≤ J(x∗)

PROYECTO MATECO 3.14159 Página 1154

Page 3: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

para cualquier otra función admisible que esté a una distancia menor que cierto δ > 0. Los concepto de

mínimo global y local son análogos.

Para medir la distancia entre funciones se utiliza la norma del máximo de forma que dos funciones

están próximas si lo están en todo el intervalo,

||x1 − x2|| = maxt∈[t0,t1]

|x1(t) − x2(t)|. ♣

Teorema 37.4 (Condición necesaria de optimalidad de Euler) Si x∗(t) es un óptimo local del problema

variacional entonces x∗(t) verifica la ecuación diferencial

∂xF(x(t), x′(t), t) =

ddt

∂x′F(x(t), x′(t), t) ∀t ∈ [t0, t1]

Esta ultima expresión recibe el nombre de ecuación de Euler y se suele escribir resumida

Fx =ddt

Fx′ ♣

Nota En los problemas autónomos, en los que la función F no depende explícitamente del tiempo, tene-

mos una versión reducida de la ecuación de Euler

F − x′Fx′ = C ♣

Cada función que satisface la ecuación de Euler recibe el nombre de extremal y la condición necesaria

establece que un óptimo solo se puede alcanzar en un extremal.

Nota Si escribimos esta ecuación desarrollando el segundo sumando por la regla de la cadena como

∂xF(x(t), x′(t), t) =

∂t∂

∂xF(x(t), x′(t), t) +

∂x′∂

∂x′F(x(t), x′(t), t)

ddt

x(t) +∂

∂x′∂

∂x′F(x(t), x′(t), t)

ddt

x′(t) =∂

∂t∂

∂xF(x(t), x′(t), t) +

∂x′∂

∂x′F(x(t), x′(t), t)x′(t) +

∂x′∂

∂x′F(x(t), x′(t), t)x′′(t)

observamos que es una ecuación diferencial de segundo orden cuyas soluciones, si existen, dependen

de dos constantes. De este modo, el procedimiento para resolver un problema consistirá en obtener los

extremales y determinar las constantes mediante las condiciones de frontera x(t0) = x0 y x(t1) = x1. ♣

Nota El problema se puede generalizar a n variables con la misma notación pero considerando x(t) como

función vectorial. En este caso el integrando queda F(x(t), x′(t), t) = F (x1(t), . . . , xn(t), x1′(t), . . . , xn

′(t), t)

y tenemos un conjunto de ecuaciones∂

∂xiF(x(t), x′(t), t) =

ddt

∂xi′F(x(t), x′(t), t) ∀t ∈ [t0, t1] ∀i : 1 ≤ i ≤ n. ♣

Página 1155 PROYECTO MATECO 3.14159

Page 4: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

Maxima 37.5 Obtener los extremales del siguiente problema y, en particular, el extremal correspondiente

a las condiciones iniciales

maxx∈Ω

∫ 2

0(−12tx − x′2)dt

x(0) = 2 x(2) = 12

Solución

( % i1) F(x,y,t):=-12*t*x-yˆ2;

F (x, y, t) := (−12) tx − y2 ( % o1)

( % i2) depends([x,y],t);

[x(t), y(t)] ( % o2)

( % i3) der1:diff(F(x,y,t),x);

−12t (der1)

( % i4) der2:diff(diff(F(x,y,t),y),t);

−2(

ddt

y)

(der2)

( % i5) eq:subst([y=’diff(x,t)],der1-der2)=0;

2(

d2

dt2 x)− 12t = 0 (eq)

( % i6) sol:ode2(eq, x, t);

x = t3 + %k2t + %k1 (sol)

( % i7) bc2(sol,t=0,x=2,t=2,x=12);

x = t3 + t + 2 ( % o7)

Maxima 37.6 Obtener los extremales del siguiente problema y, en particular, el extremal correspondiente

a las condiciones iniciales

maxx∈Ω

∫ 1

0(2 − 3x(x′)2)dt

x(0) = 0 x(1) = 1

Solución Como es un problema autónomo y la función F no depende explícitamente del tiempo tenemos

dos opciones para la ecuación de Euler: la versión completa (Fx =ddt Fx′) o la reducida (F − x′Fx′ = C)

( % i1) F(x,y,t):=2-3*x*yˆ2;

F (x, y, t) := 2 − 3x y2 ( % o1)

( % i2) depends([x,y],t);

[x(t), y(t)] ( % o2)♦ Versión completa

( % i3) eq:subst([y=’diff(x,t)],diff(F(x,y,t),x)=diff(diff(F(x,y,t),y),t));

−3(

ddt

x)2

= −6x(

d2

dt2 x)− 6

(ddt

x)2

(eq)

PROYECTO MATECO 3.14159 Página 1156

Page 5: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i4) sol:ode2(eq, x, t),radcan;

2x32

3 %k1= t + %k2 (sol)

( % i5) solp:bc2(sol,t=0,x=0,t=1,x=1);

x32 = t (solp)

( % i7) assume_pos:true$

solve(solp,x)$

( % i8) part( %,3);

x = t23 ( % o8)

♦ Versión reducida

( % i9) eqred:subst([y=’diff(x,t)],F(x,y,t)-y*diff(F(x,y,t),y)=C);

3x(

ddt

x)2

+ 2 = C (eqred)

( % i10) eqdif:solve(eqred,’diff(x,t));

[ddt

x = −

√C − 2√

3√

x,

ddt

x =

√C − 2√

3√

x] (eqdif)

( % i11) solred:ode2(eqdif[2], x, t);

2x32

√3√

C − 2= t + %c (solred)

( % i12) solredp1:ic1(solred,t=0,x=0);

2x32

√3√

C − 2= t (solredp1)

( % i13) eq11:at(solredp1,[t=1,x=1]);

2√

3√

C − 2= 1 (eq11)

( % i14) cte:solve(eq11,[C]);

[C =103

] (cte)

( % i15) solredp:at(solredp1,cte);

x32 = t (solredp)

( % i17) solve(solredp,x)[3];

x = t23 ( % o17)

Ejemplo 37.7 (Gestión de stocks) Queremos gestionar durante un determinado periodo el número de uni-

dades en stock de un producto cuyo almacenaje tiene un coste. El beneficio de la venta de q unidades del

producto produce un beneficio Π(q) y que la variación en el stock se produce sólo por la venta de unidades.

Página 1157 PROYECTO MATECO 3.14159

Page 6: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

Si denotamos por x(t) el número de unidades en stock en el instante t el problema es

maxx∈Ω

∫ T

0

[Π(q) − c(x)

]dt

x′(t) = −q

x(0) = x0 x(T ) = x1

Este problema es equivalente a

maxx∈Ω

∫ T

0[Π(−x′) − c(x)] dt

x(0) = x0 x(T ) = x1

La ecuación de Euler es

Fx =ddt

Fx′ =⇒ cx(x) =ddtΠq(q)

Así, para que el proceso sea óptimo el coste marginal correspondiente a mantener una unidad en stock,

coste de almacenaje, debe ser el mismo que el incremento que experimenta el beneficio marginal cuando

una unidad se guarda para su venta futura. ♣

Ejercicio 37.8 Demostrar la condición necesaria de optimalidad de Euler considerando que los valores

inicial y final son conocidos

Solución

Partimos de una trayectoria óptima y suponemos que x∗(t) es una función que optimiza localmente el

funcional J(x). A su vez, consideramos una función, que recibe el nombre de perturbación, w(t), a la que

imponemos w(t0) = w(t1) = 0, de forma que xϵ(t) = x∗(t) + ϵw(t) sea una función admisible para cada

perturbación.

Para cada perturbación fija definimos una función

ϕ(ϵ) = J(xϵ) =∫ t1

t0F(x∗(t) + ϵ w(t), x∗′(t) + ϵ w′(t), t)dt

que, como función de ϵ, tiene un óptimo para ϵ = 0 y cumple ϕ′(0) = 0.

PROYECTO MATECO 3.14159 Página 1158

Page 7: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

De este modo, si derivamos bajo el signo de la integral

ϕ′(ϵ) =∫ t1

t0

[Fx(x∗(t) + ϵw(t), x∗′(t) + ϵw′(t), t)w(t) + Fy(x∗(t) + ϵw(t), x∗′(t) + ϵw′(t), t)w′(t)

]dt

y consideramos ϵ = 0 tenemos

ϕ′(0) =∫ t1

t0

[Fx(x∗(t), x∗′(t), t)w(t) + Fy(x∗(t), x∗′(t), t)w′(t)

]dt

Por otra parte, integrando por partes el segundo sumando se tiene

∫ t1

t0Fy(x∗(t), x∗′(t)w′(t)dt =

[Fy(x∗(t), x∗′(t), t)w(t)

]t1

t0−

∫ t1

t0

ddt

Fy(x∗(t), x∗′(t), t)w(t)dt

de forma que al ser w(t0) = w(t1) = 0 la primera parte desaparece y queda

ϕ′(0) =∫ t1

t0

[Fx(x∗(t), x∗′(t), t)w(t) −

∫ t1

t0

ddt

Fy(x∗(t), x∗′(t), t)w(t)]

dt = 0

Como la integral es cero para toda perturbación genérica la función a la que multiplica la perturbación

tiene que ser cero (la prueba de este resultado se conoce como lema fundamental del cálculo de variaciones)

Fx(x∗(t), x∗′(t), t) − ddt Fy(x∗(t), x∗′(t), t) = 0 ♣

Para resolver el problema variacional se resuelve la ecuación de Euler y se determinan las constantes

mediante las condiciones de frontera x(t0) = x0 y x(t1) = x1. Al ser los valores inicial y final conocidos

siempre buscamos un óptimo entre un conjunto de curvas con extremos fijos. Esta condición puede ser

modificada de forma que los valores inicial y final no estén prefijados de antemano. Estas condiciones

reciben el nombre de condiciones de transversalidad y son condiciones que debe cumplir una función que

resuelva óptimamente este subtipo de problemas. Desde el punto de vista práctico, introducen condiciones

que permiten determinar las constantes en los extremales obtenidos mediante la ecuación de Euler.

Se pueden plantear diversos tipos de comienzos y finales para el proceso con condiciones análogas. En

todos los casos, tiene que cumplirse al principio la condición inicial (o una condición de transversalidad

adecuada), durante el proceso la ecuación de Euler y al finalizar éste tienen que verificarse condiciones

adecuadas en cada uno de los casos.

Página 1159 PROYECTO MATECO 3.14159

Page 8: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

Estado final conocido en tiempo conocido

x(T ) = X

Estado final libre en tiempo conocido

Fy(x∗(T ), x∗′(T ),T ) = 0

Estado final acotado inferiormente en tiempo conocido

x(T ) ≥ X

Fy(x∗(T ), x∗′(T ),T ) ≤ 0 (= 0 si x(T ) > X)

Estado final fijo en tiempo óptimo

x(t∗) = X

F(x∗(t∗), x∗′(t∗), t∗) − x∗′(t∗)Fy(x∗(T ), x∗′(T ),T ) = 0

Estado final libre en tiempo óptimo

Fy(x∗(t∗), x∗′(t∗), t∗) = 0

F(x∗(t∗), x∗′(t∗), t∗) − x∗′(t∗)Fy(x∗(T ), x∗′(T ),T ) = 0

Estado final ligado al tiempo de finalización en tiempo óptimo

x(t∗) = γ(t∗)

F(x∗(t∗), x∗′(t∗), t∗) − x∗′(t∗)Fy(x∗(T ), x∗′(T ),T ) + γ′(t∗)Fy(x∗(T ), x∗′(T ),T ) = 0

Ejemplo 37.9 (Gestión de stocks II) Si al gestionar el número de unidades en stock permitimos que el stock

sea negativo, la condición de transversalidad es

Fy = 0 =⇒ Πq(q) = 0

PROYECTO MATECO 3.14159 Página 1160

Page 9: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

con lo que el beneficio marginal correspondiente a la última unidad debe ser cero. Así, si Πq(q) > 0 es

conveniente aumentar las ventas aunque se este en descubierto y si Πq(q) < 0 deben reducirse las ventas

intentando que este beneficio marginal sea cero.

Cuando no puede haber un stock negativo al final del periodo tenemos que x(t1) ≥ 0 al considerar la

correspondiente condición de transversalidad queda

x(T ) ≥ 0

Fy ≤ 0 (Fy = 0 si x(T ) > 0) =⇒ Πq(q) ≥ 0 (Πq(q) = 0 si x(T ) > 0)

De esta forma para que quede algo de stock (x(T ) > 0) el beneficio marginal correspondiente a ese

stock debe ser cero. Incluso aunque se venda todo el stock, el beneficio marginal nunca puede ser negativo,

ya que si fuese así los beneficios futuros descenderían al extraer la última unidad. ♣

Ejemplo 37.10 (Gestión de recursos no renovables) Queremos gestionar un recurso, x(t), que tiene tanto

valor de uso como de explotación (por la extracción de cierta cantidad para su venta, q(t)). El beneficio a

maximizar será de la forma Π(x, q, t), por lo que el problema al que nos enfrentamos es

maxx∈Ω

∫ T

0Π(x, q, t)dt

x′(t) = −q

x(0) = x0 x(T ) ≥ 0

Este problema es equivalente a

maxx∈Ω

∫ T

0Π(x,−x′, t)dt

x(0) = x0 x(T ) ≥ 0

La ecuación de Euler es Fx =ddt Fx′ =⇒ Πx(x, q, t) + d

dtΠq((x, q, t) = 0

Así, para que el proceso sea óptimo el beneficio marginal correspondiente a una unidad que se conserva

debe compensar el descenso en el incremento que experimenta el beneficio marginal correspondiente a una

unidad que se destina a la venta. De este modo, el recurso es mas valioso en su estado natural cuando el be-

neficio marginal correspondiente a una unidad que se conserva es mayor que el descenso que experimenta

Página 1161 PROYECTO MATECO 3.14159

Page 10: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

el incremento del beneficio marginal cuando una unidad se destina a la venta

Πx(x, q, t) +ddtΠq((x, q, t) > 0.

En caso contrario, la espera es contraproducente y merece la pena extraer el stock

Πx(x, q, t) +ddtΠq((x, q, t) < 0

Al considerar que el recurso no puede ser negativo, x(T ) ≥ 0, y la condición de transversalidad tenemos:

x(T ) ≥ 0

Fy ≤ 0 (Fy = 0 si x(T ) > 0) =⇒ Πq(x, q,T ) ≥ 0 (Πq(x, q,T ) = 0 si x(T ) > 0)

De esta forma, al final del periodo sólo se conserva recurso si el beneficio marginal que produce la

venta de una unidad es cero. Cuando este beneficio marginal es positivo debe agotarse el recurso y jamás

se puede permitir que el beneficio marginal sea negativo. ♣

Ejercicio 37.11 Demostrar la condición de transversalidad considerando que el valor inicial es conocido

pero el valor final es libre

Solución

Partimos de una trayectoria óptima x∗(t) que optimiza localmente el funcional J(x) y se considera una

perturbación, w(t), con w(t0) = 0. El final de esta perturbación es libre pero imponemos ||w|| , 0. En este

caso, la función

ϕ(ϵ) =∫ t1

t0F(x∗(t) + ϵw(t), x∗′(t) + ϵw′(t), t)dt

cumple ϕ′(0) = 0 para cada perturbación fija.

Derivando bajo el signo de la integral y para ϵ = 0

ϕ′(0) =∫ t1

t0

[Fx(x∗(t), x∗′(t), t)w(t) + Fy(x∗(t), x∗′(t), t)w′(t)

]dt

PROYECTO MATECO 3.14159 Página 1162

Page 11: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

Integrando por partes el segundo sumando se tiene

∫ t1

t0Fy(x∗(t), x∗′(t)w′(t)dt =

[Fy(x∗(t), x∗′(t), t)w(t)

]t1

t0−

∫ t1

t0

ddt

Fy(x∗(t), x∗′(t), t)w(t)dt

Como w(t0) = 0 queda

ϕ′(0) =∫ t1

t0

[Fx(x∗(t), x∗′(t), t)w(t) −

∫ t1

t0

ddt

Fy(x∗(t), x∗′(t), t)w(t)]

dt − Fy(x∗(t1), x∗′(t1), t1)w(t1) = 0

La primera parte es cero (ecuación de Euler), ya que la solución es también solución del problema que

tiene como condición final x(t1) = x∗(t1). Por tanto, la otra parte será cero para toda perturbación y se tiene

Fy(x∗(t1), x∗′(t1), t1) = 0 ♣

Si tenemos una función que cumple las condiciones iniciales y finales, así como la ecuación de Euler en

[t0, t1] y la función F(x, x′, t) es cóncava en (x, x′) podemos asegurar que es un máximo global (mínimo si es

convexa). Sin embargo, en la práctica a veces solo podemos utilizar una condición necesaria para distinguir

entre máximos y mínimos.

Teorema 37.12 (Condición necesaria de optimalidad de Legendre)

Si x∗(t) es un máximo local x∗(t) verifica

∂2F∂x′2

(x∗(t), x∗′(t), t) ≤ 0 ∀t ∈ [t0, t1]

Si x∗(t) es un mínimo local x∗(t) verifica

∂2F∂x′2

(x∗(t), x∗′(t), t) ≥ 0 ∀t ∈ [t0, t1] ♣

Nota Para obtener la condición de Euler se utiliza que es cero la derivada de ϕ en cero (primera variación)

ϕ′(0) =∫ t1

t0

[Fxw + Fx′w′

]dt = 0

En las condiciones de segundo orden lo que determina el tipo de óptimo es el signo de la derivada segunda

de ϕ evaluada en cero (segunda variación)

Página 1163 PROYECTO MATECO 3.14159

Page 12: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

ϕ′′(0) =∫ t1

t0

[Fxxw2 + 2Fxx′ww′ + Fx′x′w′2

]dt ♣

Nota En un problema variacional se pueden considerar restricciones sobre el conjunto de curvas solución

dando lugar a problemas de extremos condicionados. ♣

37.2. Fundamentos del control óptimo continuo

La teoría de control óptimo aborda problemas de optimización en sistemas dinámicos que pueden ser

modificados por fuerzas externas, de forma que su evolución puede ser controlada por las decisiones de

un agente (controlador) utilizando uno o varios controles que implican diferentes trayectorias para el sis-

tema, que, a su vez, implican diferentes valores de cierto funcional que queremos optimizar (utilizaremos

principalmente los beneficios o costes totales del proceso desde su estado inicial a su estado final).

♦ El sistema viene descrito por un vector de estado x(t) ∈ Rn que toma diferentes valores cuando t

varía, determinando una trayectoria que en el primer caso que vamos a ver parte de unas determinadas

condiciones iniciales, x(t0) = x0.

La trayectoria del sistema tiene que ser continua pero puede no ser diferenciable, ya que solo se

exige que sea diferenciable a trozos.

♦ El controlador influye en la trayectoria del sistema mediante un vector de control u(t) que para cada t

toma valores en un conjunto U ⊆ Rm denominado región de control.

Los controles posibles son funciones con a lo más un número finito de discontinuidades de salto

finito y, por tanto, el conjunto de controles admisibles es

U = u : [t0, t f ] 7→ U/ u es continua a trozos

En algunos problemas el conjunto de controles admisibles está restringido a controles de un deter-

minado tipo. En particular, los valores de los controles pueden estar acotados por un valor mínimo y un

valor máximo. Dentro de los controles acotados, hay un tipo de control que solo toma dos valores que se

denomina control bang-bang y funciona como un interruptor que cambia instantáneamente de valor.

PROYECTO MATECO 3.14159 Página 1164

Page 13: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

♦ La evolución del sistema viene descrita por un sistema de ecuaciones diferenciales que reciben el nom-

bre ecuaciones de estado, o ecuaciones de movimiento (escribimos x(t) y u(t) como x y u)

x′ = f (x, u, t) t ∈ [t0, t f ]

Las ecuaciones de movimiento tienen que cumplir las condiciones de existencia y unicidad de la

solución para cada control admisible, de forma que al aplicar el control u(t) el problema de valor inicial

asociado (x′ = f (x, u, t) x(t0) = xt0 t ∈ [t0, t f ]) tenga una única solución xu(t) (una vez obtenido el control

óptimo será posible determinar la trayectoria óptima de la variable de estado).

Aunque en general la función que determina el sistema será continuamente diferenciable, es suficien-

te que la función sea continua con derivadas parciales continuas con respecto al tiempo y el estado (no es

necesario que la derivada con respecto al control sea continua).

♦ El correspondiente problema de control óptimo se denota

optu∈U

J(u) = S (t f , x(t f )) +∫ t f

t0F(t, x, u)dt

s.a. x′ = f (x, u, t)

x(t0) = xt0

donde S y F son funciones dadas, que reciben el nombre de valores residual y operativo.

Este problema se puede interpretar tanto con variables unidimensionales como multidimensionales y

generalmente necesita añadirle condiciones terminales adecuadas al objetivo perseguido.

Ejemplo 37.13 (modelo de Sethi) Este modelo surge al formular el modelo de Vidale y Wolfe como un

problema de control óptimo y busca determinar el gasto óptimo en publicidad para que los beneficios

obtenidos dentro de un horizonte temporal prefijado sean máximos. En el ejemplo 26.10 vimos como el

modelo de Vidale y Wolfe describe la respuesta de las ventas de un producto, s(t), al gasto en publicidad que

la empresa realiza, u(t) cuando el gasto en publicidad es constante. En su formulación como un problema

de control óptimo se mantienen las mismas hipótesis y se considera como variable de estado la cuota de

mercado relativa al nivel de saturación. Así, la ecuación de movimiento vuelve a modelizar el efecto de

la publicidad sobre la parte de mercado que no ha comprado el producto, proporcional también al gasto

Página 1165 PROYECTO MATECO 3.14159

Page 14: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

publicitario, sumado al efecto de desgaste en la parte de mercado que sí ha comprado el producto

x′(t) = µ u(1 − x) − ν x

donde µ es el coeficiente de efectividad de la publicidad y ν el coeficiente de desgaste de las ventas.

Los ingresos son proporcionales a la cuota de mercado y los costes a la inversión en publicidad, por lo

que el beneficio en el instante t es B(t) = p x − c u. Nuestro objetivo es maximizar el beneficio de todo el

periodo, descontándolo a una tasa de descuento instantánea δ:

maxu∈U

∫ t f

t0(p x − c u)e−δtdt

s.a. x′ = µ u (1 − x) − ν x

x(t0) = x0 ♣

Al igual que en el calculo de variaciones aparecen distintos casos particulares cuando imponemos

que las variables de estado cumplan ciertas condiciones tanto en el instante inicial, condiciones iniciales,

como en el instante final, condiciones terminales. En todos ellos el objetivo del controlador es determinar

un control que obligue al sistema a seguir una trayectoria desde su estado inicial a un estado final de forma

que el funcional objetivo alcance su valor óptimo.

Si dentro del conjunto de controles admisibles no hay controles que permitan llevar el sistema desde

el estado inicial al estado final objetivo (o llevarlo dentro de un determinado conjunto de estados) diremos

que es un sistema no controlable y que el problema no tiene solución.

37.3. Principio del óptimo de Pontryagin

El principio del óptimo de Pontryagin permite descomponer un problema de control óptimo en dos

etapas. En la primera, se aborda un problema de optimización estática en cada momento y en la segunda

se resuelve un sistema de ecuaciones diferenciales definido por las condiciones necesarias de optimalidad.

Este principio recibe el nombre de principio del máximo y principio del mínimo en el caso correspondiente

y se basa en considerar el doble efecto que el vector de control genera al determinar simultáneamente el

valor del objetivo y la subsiguiente variación del vector de estado.

PROYECTO MATECO 3.14159 Página 1166

Page 15: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

En la búsqueda de la trayectoria óptima se procede de manera análoga al método de los multiplicadores

de Lagrange, interpretando la variación de cada variable de estado como una restricción a la que se le

asocia un multiplicador que depende del tiempo. Nos referimos a estos multiplicadores como variables de

coestado y denotamos el vector que forman por λ(t) (tiene tantas componentes como variables de estado y

se escribe como λ).

De este modo, podemos considerar el valor que se asigna al objetivo junto con las variaciones del vector

de estado por efecto del control en una misma función, que recibe el nombre de hamiltoniano y es:

H(t, x, u, λ) = F(t, x, u) + λ · f (t, x, u),

donde el primer componente del hamiltoniano corresponde al efecto del control sobre el valor operativo

en cada instante y el segundo al efecto sobre el valor operativo futuro debido a la variación del estado,

ponderado por el correspondiente multiplicador.

El principio del óptimo de Pontryagin establece condiciones necesarias que deben cumplir la trayectoria

del control óptimo u∗ y las correspondientes trayectorias de las variables de estado x∗ y coestado λ∗. De

forma que, aunque no son condiciones suficientes, permiten determinar los candidatos a óptimo.

Básicamente el principio del óptimo de Pontryagin establece que el hamiltoniano tiene que ser óptimo

a lo largo del tiempo con respecto a los control admisibles mientras que los vectores de estado y coes-

tado siguen determinadas ecuaciones de movimiento. El resto de condiciones del principio del óptimo de

Pontryagin son de diferentes tipos y dependen del estado inicial del sistema, del estado final al que queramos

llevar el sistema y del tiempo en el pretendemos que este estado se alcance. En cada caso, dependiendo del

tipo de condición terminal, tanto el estado como el coestado finales deben cumplir ciertas condiciones, que

reciben el nombre de condiciones de transversalidad (aunque en general las condiciones iniciales son del

tipo xi(t0) = xi0 pueden sustituirse por condiciones de transversalidad adecuadas a cada tipo de problema).

En el primer tipo de problema que vamos a ver la condición de transversalidad corresponde a un ho-

rizonte temporal prefijado y a un estado final libre (no se pretende que el sistema alcance un estado final

concreto).

Página 1167 PROYECTO MATECO 3.14159

Page 16: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

Teorema 37.14 (Principio del óptimo de Pontryagin) Sea (P) el problema de control óptimo

(P)

optu∈U

J(u) = S (t f , x(t f )) +∫ t f

t0F(t, x, u)dt

s.a. x′ = f (x, u, t)

x(t0) = xt0

Si el problema (P) tiene como solución la trayectoria del control, u∗, a la que le corresponde la trayecto-

ria de las variables de estado, x∗, entonces existe una función (absolutamente) continua, λ∗, que determina

las trayectorias de las variables de coestado y cumple:

1. El hamiltoniano correspondiente a estas trayectorias es óptimo respecto a los controles admisibles

Máximo H(x∗(t), u∗(t), λ∗(t), t) ≥ H(x∗(t), u, λ∗(t), t) ∀t ∈ [0,T ], ∀u ∈ U

Mínimo H(x∗(t), u∗(t), λ∗(t), t) ≤ H(x∗(t), u, λ∗(t), t) ∀t ∈ [0,T ], ∀u ∈ U

2. El vector de estado sigue la ecuación de movimiento del sistema (en términos del hamiltoniano):

x′(t) = Hλ(x∗(t), u∗(t), λ∗(t), t)

3. El vector de variables de coestado tiene como ecuación de movimiento

λ′(t) = −Hx(x∗(t), u∗(t), λ(t), t)

4. condición de transversalidad (tiempo final fijo y estado final libre):

λ(t f ) = S x(t f , x(t f )) ♣

Nota Un extremal del problema (P) es un trío (u∗, x∗, λ∗(t)), formado por las trayectoria de un control,

tal que el hamiltoniano correspondiente a estas trayectorias es óptimo respecto a los controles admisibles

y donde tanto el vector de estado como el de vector de coestado siguen las correspondientes ecuaciones

de movimiento (condiciones necesarias dadas por el principio del óptimo). De este modo, el objetivo se

convierte en determinar de entre todos los extremales aquellos que cumplen ciertas condiciones sobre los

estados inicial y final.

PROYECTO MATECO 3.14159 Página 1168

Page 17: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

Si el conjunto de controles es abierto se puede utilizar como condición necesaria de optimalidad que

se anule la derivada del hamiltoniano con respecto al control

∂H/∂u = 0

Si unimos esta condición con las ecuaciones de movimiento de los vectores de estado y coestado tene-

mos un conjunto de ecuaciones que recibe el nombre de ecuaciones críticas

x′(t) = Hλ(x∗(t), u∗(t), λ∗(t), t)

λ′(t) = −Hx(x∗(t), u∗(t), λ∗(t), t)

Hu(x∗(t), u∗(t), λ∗(t), t) = 0

donde las curvas (u∗, x∗, λ∗) que las verifican reciben el nombre de curvas críticas (cuando el conjunto de

controles es abierto los extremales están siempre entre las curvas críticas). ♣

Ejercicio 37.15 Deducir el principio del óptimo de Pontryagin correspondiente al problema (P) suponien-

do que se alcanza en un punto interior del conjunto de controles factibles.

Solución

♦ El primer paso es expresar el funcional objetivo en términos del Hamiltoniano incorporando la ecuación

de estado en el funcional a optimizar:

Escribimos la ecuación de estado como f (x, u, t) − x′ = 0 y multiplicamos por el vector de variables

de coestado. Así, tenemos que a lo largo del intervalo [t0, t f ] tenemos λ · f (t, x, u) − λ · x′ = 0.

Sumamos esta expresión al funcional objetivo y tenemos un funcional con el mismo valor:

V(u) = J(u) +∫ t f

t0

[λ · f (t, x, u) − λ · x′

]dt = S (t f , x(t f )) +

∫ t f

t0

[F(t, x, u) + λ · f (t, x, u) − λ · x′

]dt

Escribimos V(u) en función del hamiltoniano (H(t, x, λ, u) = F(t, x, u) + λ · f (t, x, u)) obteniendo:

V(u) = S (t f , x(t f )) +∫ t f

t0

[H(t, x, λ, u) − λ · x′

]dt

Página 1169 PROYECTO MATECO 3.14159

Page 18: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

Aplicamos la fórmula de Integración por partes∫ b

audv = uv]b

a −∫ b

avdu tomando u = λ(t) y v = x(t)

∫ t f

t0λ(t) · x′(t)dt = λ(t)x(t)

]t f

t0

∫ t f

t0x(t)λ′(t) dt = λ(t f )x(t f ) − λ(t0)x(t0) −

∫ t f

t0x(t)λ′(t) dt

Al sustituir y agrupar las integrales, tenemos:

V(u) = S (t f , x(t f )) +∫ t f

t0

[H(t, x, λ, u) + xλ′

]dt − λ(t f )x(t f ) + λ(t0)x(t0)

♦ Para determinar las condiciones necesarias de optimalidad suponemos que existe un control u∗(t), al que

le corresponde una trayectoria de la variable de estado x∗(t), que optimiza el funcional J(u).

Al igual que en el cálculo de variaciones, se considera una perturbación, w(t), a la que imponemos

w(t0) = w(t f ) = 0, de forma que para ϵ > 0 lo suficientemente pequeño uϵ(t) = u∗(t) + ϵw(t) sea un control

admisible. Esta perturbación, a su vez, producirá cambios en la trayectoria de la variable de estado xϵ(t) y

en el valor del funcional.

Si para cada perturbación fija consideramos una función que a cada ϵ le asocia el correspondiente valor

del funcional esta función, como función de ϵ, tiene un óptimo en ϵ = 0 y cumple ϕ′(0) = 0:

ϕ(ϵ) = V(uϵ) = S (t f , xϵ(t f )) +∫ t f

t0

[H(t, xϵ , λ, uϵ) + xϵ(t)λ′(t)

]dt − λ(t f )x(t f ) + λ(t0)x(t0)

Si derivamos con respecto a epsilon tenemos (evaluando en (t f , xϵ(t f ), λ(t f ), uϵ(t f )) pero considerando el

tiempo variable dentro de la integral)

ϕ′(ϵ) =∂ S∂ x

∂ xϵ∂ϵ+

∫ t f

t0

[∂H∂ x·∂ xϵ∂ϵ+∂H∂ u·∂ uϵ∂ϵ+ λ′

∂ xϵ∂ϵ

]dt − λ

∂ xϵ∂ϵ

Al sustituir ϵ por cero obtenemos (evaluando en (t f , x∗, λ, u∗) pero tomando el tiempo como variable

dentro de la integral)

ϕ′(0) =∂ S∂ x

∂ xϵ∂ϵ+

∫ t f

t0

[∂H∂ x·∂ xϵ∂ϵ+∂H∂ u·∂ uϵ∂ϵ+ λ′

∂ xϵ∂ϵ

]dt − λ

∂ xϵ∂ϵ

PROYECTO MATECO 3.14159 Página 1170

Page 19: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

Para que se cumpla ϕ′(0) = 0 deben ser cero los distintos coeficientes de las variaciones de las variables

(derivadas parciales con respecto a ϵ). Esto nos permite establecer las condiciones necesarias que conforman

el principio del óptimo junto con la ecuación de movimiento de las variables de estado:

x′(t) = −∂H∂λ

(t, x∗, λ, u∗) ∀ t ∈ [t0, t f ]

El coeficiente dentro de la integral de la variación del estado, ∂ xϵ/∂ϵ, debe ser cero en todo momento,

estableciendo la ecuación de movimiento de las variables de coestado:

∂H∂ x

(t, x∗, λ, u∗) + λ′(t) = 0 =⇒ λ′(t) = −∂H∂ x

(t, x∗, λ, u∗) ∀ t ∈ [t0, t f ]

El coeficiente dentro de la integral de la variación del control, ∂ uϵ/∂ϵ, debe ser cero en todo momento,

estableciendo la condición de óptimo de primer orden:

∂H∂ u

(t, x∗, λ, u∗) = 0 ∀ t ∈ [t0, t f ]

El coeficiente fuera de la integral de la variación del estado, ∂ xϵ/∂ϵ, debe ser cero en el instante final,

estableciendo el valor de las variables de coestado al final del proceso:∂ S∂ x

(t f , x(t f )) − λ(t f ) = 0 =⇒ λ(t f ) =∂ S∂ x

(t f , x(t f )) ♣

Nota Para estudiar otros casos en los que el tiempo final es variable hay que tener en cuenta que en este

caso aparecen términos adicionales en ϕ′(ϵ):

∂ S∂ t

∂ t f

∂ϵ+

[H + xϵλ′

]·∂ t f

∂ ϵ− λ′

∂ t f

∂ϵxϵ

en los que al sustituir ϵ por cero obtenemos (evaluando en (t∗, x∗, λ, u∗)):

∂ S∂ t

∂ t f

∂ϵ+

[H + xϵλ′

]·∂ t f

∂ ϵ− λ′

∂ t f

∂ϵxϵ =

∂ S∂ t

∂ t f

∂ϵ+ H ·

∂ t f

∂ϵ

Página 1171 PROYECTO MATECO 3.14159

Page 20: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

Para que se cumpla ϕ′(0) = 0 el coeficiente de la variación del tiempo, ∂ t f /∂ϵ, debe ser cero en el

instante final, para ello, el valor del hamiltoniano al final del proceso es (condición de contorno):

∂ S∂ t

(t f , x f ) + H(t f , x f , λ(t f ), u∗(t f )) = 0

En ambos caso hemos considerado que el estado final es independiente del tiempo de finalización. Si

esto no es así, por ejemplo, si el estado del proceso tiene que estar sobre una curva x f (t) = c(t) hay que

considerar esta dependencia en la derivada de ϕ(ϵ) y considerar juntos los términos de ambas partes. ♣

Nota En un punto interior para distinguir si es un máximo o un mínimo local con respecto a los controles

podemos utilizar la condición de segundo orden estudiando el signo de∂2H∂u2 (t, x∗, λ∗, u∗). En ambos casos,

las condiciones del principio del óptimo de Pontryagin son necesarias pero no suficientes. Si el Hamilto-

niano es cóncavo (convexo) respecto a las variables de estado y control y el tiempo final es fijo el principio

del óptimo es una condición suficiente para la maximización (minimización) global del funcional objetivo

(condición de suficiencia de Margasarian). ♣

Nota La derivada con respecto al tiempo del Hamiltoniano sobre las trayectorias óptimas, que es una

función que solo depende del tiempo, es igual a la derivada parcial del hamiltoniano con respecto al tiempo,

que es una función multivariante, actuando sobre las trayectorias de las variables correspondientes al control

óptimodd t

[H(t, x∗(t), µ∗, λ∗(t), u∗(t))

]=∂H∂ t

(t, x∗(t), µ∗, λ∗(t), u∗(t))

Como consecuencia, si el problema es independiente del tiempo el Hamiltoniano es constante sobre las

trayectorias de las variables correspondientes al control óptimo. ♣

Maxima 37.16 Calcular el valor de las variables de control, estado y coestado para las que se verifican las

condiciones necesarias de optimalidad que establece el principio del óptimo de Pontryagin en los siguientes

problemas de control óptimo.

(a)

maxu∈ℜ

∫ 1

0(x + u3)dt

s.a. x′ = 1 − u2

x(0) = 1

(b)

maxu∈ℜ

∫ 5

1(7ux − u2 − x2)dt + x(5)2

s.a. x′ = x + u

x(1) = 1

(c)

maxu∈ℜ

∫ 1

0(x + u2)dt

s.a. x′ = −u

x(0) = 0

PROYECTO MATECO 3.14159 Página 1172

Page 21: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

Solución

(a) El primer paso es definir el hamiltoniano:

( % i3) F(x,u,t):=x+uˆ3$

f(x,u,t):=1-uˆ2$

define(H(x,u,t,λ),F(x,u,t)+λ*f(x,u,t));

H (x, u, t, λ) :=(1 − u2

)λ + x + u3 ( % o3)

Al ser la región de control un abierto, podemos utilizar como condición de optimalidad que la derivada

del hamiltoniano con respecto al control se anule.

( % i7) eq1:diff(H(x,u,t,λ),u)=0;

sol1:solve(eq1,u)$

sol1p:sol1[1];

cond:diff(H(x,u,t,λ),u,2); /*se comprueba una vez resuelto el problema */

3u2 − 2uλ = 0 (eq1)

u =2λ3

(sol1p)

6u − 2λ (cond)

La ecuación de movimiento de la variable de coestado no depende de las otras variables y podemos

resolverla, incluyendo como condición terminal que su valor al final sea cero (no hay valor residual).

( % i11) eq2:’diff(λ,t)=-diff(H(x,u,t,λ),x);

ct:λ(1)=0;

sol2:ode2(eq2, λ, t)$

sol2p:ic1(sol2,t=part(lhs(ct),1),λ=rhs(ct));

ddtλ = −1 (eq2)

λ(1) = 0 (ct)

Página 1173 PROYECTO MATECO 3.14159

Page 22: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

λ = 1 − t (sol2p)

Sustituimos la variable de coestado y el control en ecuación de movimiento de la variable de estado para

que solo dependa del tiempo. A continuación, resolvemos esta ecuación con la condición inicial dada.

( % i16) eq3:’diff(x,t)=diff(H(x,u,t,λ),λ);

ci:x(0)=1;

aux:at(eq3,at(sol1p,sol2p));

sol3:ode2(aux, x, t)$

sol3p:ic1(sol3,t=part(lhs(ci),1),x=rhs(ci));

ddt

x = 1 − u2 (eq3)

x(0) = 1 (ci)

ddt

x = 1 −4(1 − t)2

9(aux)

x = −4t3 − 12t2 − 15t − 27

27(sol3p)

Una vez resuelto el problema se comprueba la condición de 2º orden. En nuestro caso, al ser t ≥ 1, la

segunda derivada es negativa y corresponde a un máximo

( % i17) cond2:subst(at([sol1p,sol2p],sol3p),cond);

2 (1 − t) (cond2)

Para calcular el valor del funcional calculamos su valor y luego integramos.

( % i18) ecu:subst([at(sol1p,sol2p),sol3p],F(x,u,t));

8(1 − t)3

27−

4t3 − 12t2 − 15t − 2727

(ecu)

PROYECTO MATECO 3.14159 Página 1174

Page 23: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i19) integrate(ecu,t,0,1);

7954

( % o19)

Las gráficas correspondientes son

( % i22) xg:rhs(sol3p);

λg:rhs(sol2p);

ug:rhs(at(sol1p,sol2p));

−4t3 − 12t2 − 15t − 27

27( % o20)

1 − t ( % o21)

2 (1 − t)3

( % o22)

( % i27) wxdraw2d(explicit(xg,t,0,1),color=red,explicit(λg,t,0,1))$ wxdraw2d(color=green,explicit(ug,t,0,1))$

( % t27)

Página 1175 PROYECTO MATECO 3.14159

Page 24: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

(b) El primer paso es definir el hamiltoniano junto al resto de funciones:

( % i6) F(x,u,t):=7*u*x-uˆ2-xˆ2$

f(x,u,t):=x+u$

S(x):=xˆ2$

define(H(x,u,t,λ),F(x,u,t)+λ*f(x,u,t));

tmin:1$ tmax:5$

H (x, u, t, λ) := (x + u) λ − x2 + 7ux − u2 ( % o4)

Al ser la región de control un abierto, podemos utilizar como condición de optimalidad que la derivada

del hamiltoniano con respecto al control se anule (es un máximo al ser la segunda derivada positiva)

( % i10) eq1:diff(H(x,u,t,λ),u)=0;

sol1:solve(eq1,u);

sol1p:sol1[1];

diff(H(x,u,t,λ),u,2);

λ + 7x − 2u = 0 (eq1)

[u =λ + 7x

2] (sol1)

u =λ + 7x

2(sol1p)

−2 ( % o10)

Como las ecuaciones de moviento de las variables de estado y coestado dependen de ambas variables

sustituimos el control y consideramos un sistema con ambas ecuaciones.

( % i12) eq2:’diff(λ,t)=-diff(H(x,u,t,λ),x);

eq2nw:at(eq2,sol1p),ratsimp;

ddtλ = −λ + 2x − 7u (eq2)

PROYECTO MATECO 3.14159 Página 1176

Page 25: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

ddtλ = −

9λ + 45x2

(eq2nw)

( % i14) eq3:’diff(x,t)=diff(H(x,u,t,λ),λ);

eq3nw:at(eq3,sol1p),ratsimp;

ddt

x = x + u (eq3)

ddt

x =λ + 9x

2(eq3nw)

( % i15) sist:sublis([λ=λ(t),x=x(t)],[eq2nw,eq3nw]);

[ddtλ(t) = −

9 λ(t) + 45 x(t)2

,ddt

x(t) =λ(t) + 9 x(t)

2] (sist)

( % i16) sol:desolve(sist, [λ(t),x(t)]),exponentialize;

[λ(t) =(5 λ(0) + 15 x(0)) %e−3t

4−

(λ(0) + 15 x(0)) %e3t

4, x(t) =

(λ(0) + 15 x(0)) %e3t

12−

(λ(0) + 3 x(0)) %e−3t

12]

(sol)

La solución depende de los valores iniciales de ambas variables. Para determinarla utilizamos la condi-

ción inicial para la variable de estado, que viene dada, y la condición terminal para la variable de coestado,

que en nuestro caso es que su valor al final sea la derivada del valor residual con respecto al estado final.

( % i18) ci:x(1)=1;

ct:λ(tmax)=at(diff(S(x),x),x=x(tmax));

x(1) = 1 (ci)

λ(5) = 2 x(5) (ct)

( % i19) cinw:subst(x(tmin)=at(rhs(sol[2]),t=tmin),ci);

%e3 (λ(0) + 15 x(0))12

−%e−3 (λ(0) + 3 x(0))

12= 1 (cinw)

Página 1177 PROYECTO MATECO 3.14159

Page 26: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

( % i20) ctnw:subst([x(tmax)=at(rhs(sol[2]),t=tmax),λ(tmax)=at(rhs(sol[1]),t=tmax)],ct);

%e−15 (5 λ(0) + 15 x(0))4

−%e15 (λ(0) + 15 x(0))

4= 2

(%e15 (λ(0) + 15 x(0))

12−

%e−15 (λ(0) + 3 x(0))12

)(ctnw)

( % i24) ctes:solve([cinw,ctnw],[λ(0),x(0)]);

aux:at(sol,ctes[1]),ratsimp$

define(λ(t),part(aux,1,2));

define(x(t),part(aux,2,2));

[[λ(0) = −75 %e30 − 51

5 %e27 − 17 %e3 , x(0) =5 %e30 − 17

5 %e27 − 17 %e3 ]] (ctes)

λ(t) :=%e−3t

(51 %e6t − 75 %e30

)5 %e27 − 17 %e3 ( % o23)

x(t) := −%e−3t

(17 %e6t − 5 %e30

)5 %e27 − 17 %e3 ( % o24)

Una vez obtenidas las variables de estado y coestado obtenemos el control optimo y solo quedará obtener

el valor del funcional

( % i26) sublis([λ=λ(t),x=x(t)],sol1p),ratsimp$

define(u(t),rhs( %));

u(t) := −%e−3t

(34 %e6t + 20 %e30

)5 %e27 − 17 %e3 ( % o26)

( % i29) ecu:sublis([λ=λ(t),x=x(t),u=u(t)],f(x,u,t)),ratsimp$

integrate(ecu,t,1,5)+S(x(5));

144 %e30(5 %e27 − 17 %e3

)2 −5 %e27 + 12 %e15 − 17 %e3

5 %e27 − 17 %e3 ( % o28)

Las gráficas correspondientes son

PROYECTO MATECO 3.14159 Página 1178

Page 27: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i31) wxdraw2d(explicit(x(t),t,tmin,tmax),color=red,explicit(λ(t),t,tmin,tmax))$

wxdraw2d(color=green,explicit(u(t),t,tmin,tmax))$

( % t31)

(c) Se deja como ejercicio. ♣

Nota En la optimización del hamiltoniano no es necesario que su derivada con respecto al control se

anule, ya que esto solo sucede si la solución es interior (puede no serlo). ♣

Maxima 37.17 Calcular el valor de las variables de control, estado y coestado para las que se verifican las

condiciones necesarias de optimalidad que establece el principio del óptimo de Pontryagin en los siguientes

problemas de control óptimo.

(a)

max−1≤u≤1

∫ 1

0xdt

s.a. x′ = x + u

x(0) = 0

(b)

max0≤u≤2

∫ 2

0(2x − 3u)dt

s.a. x′ = x + u

x(0) = 4

(c)

max0≤u≤2

∫ 2

0(2x − 3u − u2)dt

s.a. x′ = x + u

x(0) = 5

Solución

(a) El primer paso es definir el hamiltoniano junto al resto de funciones:

( % i7) F(x,u,t):=x$

f(x,u,t):=x+u$

define(H(x,u,t,λ),F(x,u,t)+λ*f(x,u,t));

tmin:0$

tmax:1$

ci:x(0)=0$

ct:λ(tmax)=0;

H (x , u , t , λ) := (x + u) λ + x ( % o3)

Página 1179 PROYECTO MATECO 3.14159

Page 28: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

λ(1) = 0 ( % o7)

En este problema la región de control es el intervalo [−1, 1], que no es un abierto. Por tanto, no tenemos

garantía de que la derivada del hamiltoniano con respecto al control se anule y tenemos que maximizar el

hamiltoniano directamente.

En el hamiltoniano es lineal en el control y el único término que depende de él es λu, que para λ fijo

alcanza su máximo para u = 1 si λ es positivo y para u = −1 si es negativo. Si λ(t) es 0 el control puede

tomar cualquier valor sin que cambie el hamiltoniano

u∗(t) =

1 λ(t) > 0

Indeterminado λ(t) = 0

−1 λ(t) < 0

Para determinar el signo de λ vamos a calcularlo utilizando las ecuaciones de movimiento.

( % i8) eq1:’diff(x,t)=diff(H(x,u,t,λ),λ);

ddt

x = x + u ( % o8)

( % i9) eq2:’diff(λ,t)=-diff(H(x,u,t,λ),x);

ddtλ = −λ − 1 ( % o9)

La ecuación de movimiento de la variable de coestado solo depende de esta variable y podemos resol-

verla directamente.

( % i10) eq2nw:sublis([λ=λ(t)],eq2);

ddtλ(t) = − λ(t) − 1 ( % o10)

PROYECTO MATECO 3.14159 Página 1180

Page 29: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i11) sol2:desolve(eq2nw, λ(t));

λ(t) = (λ(0) + 1) %e−t − 1 ( % o11)

( % i12) ctnw:subst(λ(tmax)=at(rhs(sol2),t=tmax),ct);

%e−1 (λ(0) + 1) − 1 = 0 ( % o12)

Como conocemos λ(1) y la solución depende de λ(0) vamos a calcular este último valor.

( % i13) cte2:solve(ctnw,λ(0));

[λ(0) = %e − 1] ( % o13)

( % i14) aux2:at(sol2,cte2);

λ(t) = %e1−t − 1 ( % o14)

( % i15) define(λ(t),part(aux2,2));

λ(t) := %e1−t − 1 ( % o15)

Como λ(t) es positivo para t : 0 ≤ t < 1 el control que maximiza el hamiltoniano es u(t) = 1 para

t : 0 ≤ t < 1. Para t = 1 λ(t) es 0 y el control puede tomar cualquier valor sin que cambie el hamiltoniano.

Para que sea continua en todo el intervalo tomamos u(t) = 1 para t : 0 ≤ t ≤ 1.

( % i16) define(u(t),1);

u(t) := 1 ( % o16)

Sustituyendo el control en la ecuación de movimiento de la variable de estado podemos obtener su valor

Página 1181 PROYECTO MATECO 3.14159

Page 30: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

( % i17) eq1nw:sublis([x=x(t),u=u(t)],eq1);

ddt

x(t) = x(t) + 1 ( % o17)

( % i18) sol1:desolve(eq1nw, x(t));

x(t) = (x(0) + 1) %et − 1 ( % o18)

( % i19) aux1:at(sol1,ci);

x(t) = %et − 1 ( % o19)

( % i20) define(x(t),rhs(aux1));

x(t) := %et − 1 ( % o20)

Por último, determinamos el valor del funcional sobre las trayectorias óptimas

( % i23) ecu:sublis([λ=λ(t),x=x(t),u=u(t)],F(x,u,t)),ratsimp;integrate(ecu,t,tmin,tmax);float( %);

%et − 1 ( % o21)

%e − 2 ( % o22)

0.7182818284590451 ( % o23)

PROYECTO MATECO 3.14159 Página 1182

Page 31: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i25) wxdraw2d(explicit(x(t),t,tmin,tmax),color=red,explicit(λ(t),t,tmin,tmax))$

wxdraw2d(color=green,explicit(u(t),t,tmin,tmax))$

( % t25)

(b) El primer paso es definir el hamiltoniano junto al resto de funciones:

( % i7) F(x,u,t):=2*x-3*u$

f(x,u,t):=x+u$

define(H(x,u,t,λ),F(x,u,t)+λ*f(x,u,t));

tmin:0$ tmax:2$

ci:x(0)=4$

ct:λ(tmax)=0;

H (x , u , t , λ) := (x + u) λ + 2x − 3u ( % o3)

λ(2) = 0 ( % o7)

En este problema la región de control es el intervalo [0, 2], que no es un abierto. Por tanto, no tenemos

garantía de que la derivada del hamiltoniano con respecto al control se anule y tenemos que maximizar el

hamiltoniano directamente.

Página 1183 PROYECTO MATECO 3.14159

Page 32: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

El hamiltoniano es lineal y el único término que depende del control es (λ− 3)u, que para λ fijo alcanza

su máximo para u = 2 si λ es mayor que 3 y para u = 0 si es menor

u∗(t) =

2 λ(t) > 3

0 λ(t) < 3

Para ver si es mayor o menor vamos el signo de λ vamos a calcular λ(t) utilizando las ecuaciones de

movimiento.

( % i9) eq1:’diff(x,t)=diff(H(x,u,t,λ),λ);

eq2:’diff(λ,t)=-diff(H(x,u,t,λ),x);

ddt

x = x + u ( % o8)

ddtλ = −λ − 2 ( % o9)

La ecuación de movimiento de la variable de coestado (eq2) solo depende de esta variable y podemos

resolverla directamente, teniendo en cuenta que conocemos λ(1) por la condición de trasversalidad.

( % i13) ode2(eq2,λ,t);

ic1( %,t=tmax,λ=rhs(ct))$ expand( %)$

define(λ(t),part( %,2));

λ = %e−t (%c − 2 %et) ( % o10)

λ(t) := 2 %e2−t − 2 ( % o13)

Para comparar λ(t) con el valor crítico λ = 3 vamos a ver en qué momento vale 3

PROYECTO MATECO 3.14159 Página 1184

Page 33: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i16) solve(λ(t)=3,t);

pto:rhs( %[1])$ float( %);

[t = 2 − log(52

)] ( % o14)

1.083709268125845 ( % o16)

Si denotamos tc = 2 − log(

52

)para t : 0 ≤ t < tc λ(t) es mayor que 3 y el control que maximiza el

hamiltoniano es u(t) = 2. Para t : tc ≤ t < 2 este control es u(t) = 0, ya que λ(t) es menor que 3 . Para t = tc

λ(t) es 3 y el control puede tomar cualquier valor sin que cambie el hamiltoniano. Para que sea continuo a

la derecha tomamos u(t) = 2 para t : 0 ≤ t ≤ tc y u(t) = 0 para t : tc < t ≤ 2

u∗(t) =

2 0 ≤ t ≤ 2 − log

(52

)0 2 − log

(52

)< t ≤ 2

( % i19) define(u1(t),2);

define(u2(t),0);

define(u(t),if t<=pto then u1(t) else u2(t));

u1(t) := 2 ( % o17)

u2(t) := 0 ( % o18)

u(t) := if t<= 2 − log(52

)then u1(t) else u2(t) ( % o19)

Sustituyendo el control en la ecuación de movimiento de la variable de estado podemos obtener su valor.

Para ello, vamos a considerar dos tramos: [0, tc] y [tc, 2]

En el primer tramo podemos obtener la solución utilizando la condición inicial:

Página 1185 PROYECTO MATECO 3.14159

Page 34: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

( % i24) eq11:sublis([u=u1(t)],eq1);ode2(eq11,x,t);ic1( %,t=tmin,x=rhs(ci))$ expand( %)$define(x1(t),part( %,2));

ddt

x = x + 2 ( % o20)

x =(

%c − 2 %e−t) %et ( % o21)

x1(t) := 6 %et − 2 ( % o24)

En el segundo tramo la condición inicial no se puede aplicar (el origen no está en el intervalo) y

vamos a utilizar que la función es continua y que, por tanto, ambas expresiones tienen que ser iguales en el

punto:

( % i30) eq12:sublis([u=u2(t)],eq1);

sol12:ode2(eq12,x,t);

define(x2aux(t),rhs(sol12))$

cc:solve(x1(pto)=x2aux(pto), %c);

at(sol12,cc)$

define(x2(t),rhs( %));

ddt

x = x ( % o25)

x = %c %et ( % o26)

[ %c = %e−2(6 %e2 − 5

)] ( % o28)

x2(t) :=(6 %e2 − 5

)%et−2 ( % o30)

La trayectoria de la variable de estado corresponde a x1(t) en el primer tramo y a x2(t) en el segundo

PROYECTO MATECO 3.14159 Página 1186

Page 35: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i31) define(x(t),if t<=pto then x1(t) else x2(t));

x(t) := if t<= 2 − log(52

)then x1(t) else x2(t) ( % o31)

Para determinar el valor del funcional sobre las trayectorias óptimas hay que considerar también dos

tramos

( % i35) ecu1:sublis([λ=λ(t),x=x1(t),u=u1(t)],F(x,u,t)),ratsimp$

ecu2:sublis([λ=λ(t),x=x2(t),u=u2(t)],F(x,u,t)),ratsimp$

integrate(ecu1,t,tmin,pto)+integrate(ecu2,t,pto,tmax)$float( %);

59.83158050590935 ( % o35)

Las trayectorias de la variable de estado y el control muestran que la trayectoria de la variable de estado

(línea discontinua en azul) cambia por efecto del cambio en el control de la trayectoria correspondiente a

x1(t) (línea continua en amarillo) a la trayectoria correspondiente a x2(t) (línea continua en naranja).

( % i38) wxdraw2d(line_type=solid,

color=lightblue,explicit(x1(t),t,tmin,tmax),

color=cyan,explicit(x2(t),t,tmin,tmax),

line_type=dashes, color=blue, explicit(x(t),t,tmin,tmax))$

wxdraw2d(line_width=1.5,color=green,explicit(u(t),t,tmin,tmax))$

( % t38)

Página 1187 PROYECTO MATECO 3.14159

Page 36: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

(c) El primer paso es definir el hamiltoniano junto al resto de funciones:

( % i6) F(x,u,t):=2*x-3*u-uˆ2$

f(x,u,t):=x+u$

define(H(x,u,t,λ),F(x,u,t)+λ*f(x,u,t));

tmin:0$ tmax:2$

ci:x(tmin)=5$

H (x , u , t , λ) := (x + u) λ + 2x − u2 − 3u ( % o3)

En este caso, los controles están acotados pero el hamiltoniano no es lineal y tenemos que utilizar la

condición de primer orden, de forma que las ecuaciones críticas son

( % i9) eq1:’diff(x,t)=diff(H(x,u,t,λ),λ);

eq2:’diff(λ,t)=-diff(H(x,u,t,λ),x);

eq3: diff(H(x,u,t,λ),u)=0;

ddt

x = x + u ( % o7)

ddtλ = −λ − 2 ( % o8)

λ − 2u − 3 = 0 ( % o9)

De la condición de primer orden obtenemos el control en función de λ

( % i10) sol3:solve(eq3,u);

[u =λ − 3

2] ( % o10)

Teniendo en cuenta los límites para el control se tiene

PROYECTO MATECO 3.14159 Página 1188

Page 37: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

u∗(t) =

2 λ(t)−3

2 ≥ 2

λ(t)−32 0 ≤ λ(t)−3

2 ≤ 2

0 λ(t)−32 ≤ 0

Como la ecuación de movimiento de la variable de coestado solo depende de ella, podemos resolverla,

y determinar el valor del control.

( % i13) ode2(eq2,λ,t);ic1( %,t=tmax,λ=rhs(ct))$ sol2:expand( %);

λ = %e−t (%c − 2 %et) ( % o11)

λ = 2 %e2−t − 2 ( % o13)

( % i14) sol31:at(sol3,sol2);

[u =2 %e2−t − 5

2] ( % o14)

Denotamos por u1(t) el control no limitado y buscamos cuándo cambia a sus límites

( % i15) define(u1(t),rhs(sol31[1]));

u1(t) :=2 %e2−t − 5

2( % o15)

( % i19) solve(rhs(sol31[1])=2,t)$ pto1:rhs( %[1]);

solve(rhs(sol31[1])=0,t)$ pto2:rhs( %[1]);

2 − log(92

)( % o17)

2 − log(52

)( % o19)

Página 1189 PROYECTO MATECO 3.14159

Page 38: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

( % i20) define(u(t),if t<=pto1 then 2elseif t<=pto2 then u1(t)else 0);

u(t) := if t<= 2 − log(92

)then 2 elseif t<= 2 − log

(52

)then u1(t) else 0 ( % o20)

( % i21) wxdraw2d(line_width=1.75,color=green,explicit(u(t),t,tmin,tmax))$

( % t21)

Se deja como ejercicio la obtención de la trayectoria de la variable de estado y el valor del funcional en

el óptimo. ♣

37.4. Condiciones de trasversalidad

El siguiente paso es establecer condiciones para problemas en los que el estado final no es libre. En este

caso pueden ser solución del problema un tipo de soluciones que son independientes del funcional. Para la

caracterización de las soluciones vamos a considerar una variante del hamiltoniano en la que, además de la

función correspondiente a las variables de coestado, λ(t), tenemos una constante, µ, multiplicando al valor

operativo (ambas serán únicas, salvo escala, y en ningún instante podrán ser cero simultáneamente):

H(t, x(t), µ, λ(t), u(t)) = µ F(t, x(t), u(t)) + λ(t) · f (t, x(t), u(t))

El uso del nuevo hamiltoniano permite considerar simultáneamente ambos tipos de soluciones. Las que

no dependen del valor operativo corresponden a µ = 0 y reciben el nombre de soluciones anormales, en

contraposición a las segundas, que reciben el nombre de soluciones normales y corresponden a µ , 0, el

cual tomaremos como µ = 1. Es importante señalar que una solución se puede obtener con distintos valores

de las variables de coestado y de la constante, por lo que una solución puede ser simultáneamente normal

PROYECTO MATECO 3.14159 Página 1190

Page 39: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

y anormal. Cuando una solución es anormal la ecuación de movimiento de las variables de coestado no

depende del valor operativo pero el hecho de que realmente sea óptima o no sí depende de él.

En un problema de control óptimo se pueden plantear otros tipos de comienzos y finales para el proceso

con condiciones análogas. Con respecto al horizonte temporal, éste puede ser finito o infinito y puede estar

prefijado de antemano, puede ser libre o podemos estar interesados en realizar el proceso en el menor tiempo

posible (problema de tiempo óptimo). Con respecto al estado final del proceso puede que sea libre o que

se pretenda que alcance un valor concreto. También podemos tener algún tipo de restricción, como su no

negatividad o puede que el estado a alcanzar dependa del tiempo que se tarda en alcanzarlo. En todos los

casos, el vector de estado cumple al principio una condición inicial, o una condición de transversalidad

adecuada, y durante el proceso sigue la correspondiente ecuación de movimiento del sistema. A su vez, el

vector de coestado sigue su ecuación de movimiento y al finalizar verifica la condición de transversalidad

correspondiente al caso.

Teorema 37.18 (Principio del óptimo de Pontryagin) Sea (P) el problema de control óptimo siguiente al

que añadiremos distintas condiciones sobre el estado final

(P)

optu∈U

J(u) = S (t f , x(t f )) +∫ t f

t0F(t, x(t), u(t))dt

s.a. x′ = f (x, u, t)

x(t0) = xt0

Si el problema (P) tiene como solución la trayectoria del control, u∗, a la que le corresponde la tra-

yectoria de las variables de estado, x∗, entonces existen una función (absolutamente) continua, λ∗, y un

escalar, µ∗, que nunca son cero simultáneamente y cumplen:

1. El hamiltoniano correspondiente a estas trayectorias es óptimo respecto a los controles admisibles

Máximo H(t, x∗(t), µ∗, λ(t)∗, u∗(t)) ≥ H(t, x∗(t), µ∗, λ(t)∗, u(t)) ∀t ∈ [0,T ], ∀u ∈ U

Mínimo H(t, x∗(t), µ∗, λ(t)∗, u∗(t)) ≤ H(t, x∗(t), µ∗, λ(t)∗, u(t)) ∀t ∈ [0,T ], ∀u ∈ U

donde el hamiltoniano incluye el multiplicador correspondiente al valor operativo

H(t, x(t), µ, λ(t), u(t)) = µ F(t, x(t), u(t)) + λ(t) · f (t, x(t), u(t))

Página 1191 PROYECTO MATECO 3.14159

Page 40: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

2. El vector de estado sigue la ecuación de movimiento del sistema x′ = f (x, u, t), que se escribe en

términos del hamiltoniano como

x′(t) = Hλ(t, x∗(t), µ∗, λ(t)∗, u∗(t))

3. El vector de variables de coestado tiene como ecuación de movimiento

λ′(t) = −Hx(t, x∗(t), µ∗, λ(t)∗, u∗(t))

4. Verifican condiciones de transversalidad y/o contorno adecuadas a cada caso. ♣

Estado final libre en tiempo fijo (no importa el estado a la finalización para t f dado)

(P)

optu∈U

J(u) = S (t f , x(t f )) +∫ t f

t0F(t, x(t), u(t))dt

s.a. x′ = f (x, u, t)

x(t0) = xt0

Se cumple la condición inicial y la condición de transversalidad

λ(t f ) = S x(t f , x(t f ))

Estado final fijo en tiempo fijo

(P)

optu∈U

J(u) = S (t f , x(t f )) +∫ t f

t0F(t, x(t), u(t))dt

s.a. x′ = f (x, u, t)

x(t0) = xt0 x(t f ) = x f

No hay condición de transversalidad y simplemente se cumplen las condiciones iniciales y finales.

PROYECTO MATECO 3.14159 Página 1192

Page 41: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

Estado final fijo en tiempo óptimo (x f dado y t f = t∗ a determinar):

(P)

optu∈U

J(u) = S (t∗, x(t∗)) +∫ t∗

t0F(t, x(t), u(t))dt

s.a. x′ = f (x, u, t)

x(t0) = xt0 x(t∗) = x f

Se cumplen las condiciones inicial y final junto con la condición de contorno

∂ S∂ t

(t∗, x f ) + H(t∗, x f , λ(t∗), u∗(t∗)) = 0

Estado final libre en tiempo óptimo (no importa el estado a la finalización con t∗ a determinar):

(P)

optu∈U

J(u) = S (t∗, x(t∗)) +∫ t∗

t0F(t, x(t), u(t))dt

s.a. x′ = f (x, u, t)

x(t0) = xt0

Se cumplen la condición inicial, la condición de transversalidad y la condición de contorno:

λ(t f ) = S x(t f , x(t f ))

∂ S∂ t

(t∗, x f ) + H(t∗, x f , λ(t∗), u∗(t∗)) = 0

Estado final acotado inferiormente en tiempo fijo (x(t f ) ≥ xmin con t f y xmin dados):

(P)

optu∈U

J(u) =∫ t f

t0F(t, x(t), u(t))dt

s.a. x′ = f (x, u, t)

x(t0) = xt0 , x(t f ) ≥ xmin

Se cumplen la condición inicial y la restricción final junto con la condición de holgura

λ(t f ) · (x(t f ) − xmin) = 0

Página 1193 PROYECTO MATECO 3.14159

Page 42: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

Maxima 37.19 Calcular el valor de las variables de control, estado y coestado para las que se verifican las

condiciones necesarias de optimalidad que establece el principio del óptimo de Pontryagin en los siguientes

problemas de control óptimo.

(a)

mınu∈R

∫ 1

0u2dt

s.a. x′ = u − t

x(0) = 0 x(1) = 1

(b)

mınu∈R

∫ T

0u2dt

s.a. x′ = u − t

x(0) = 0 x(T ) = 1

(c)

mınu∈R

s(x(1) − 1)2 +∫ 1

0u2dt

s.a. x′ = u − t

x(0) = 0

Solución En el primer problema queremos llevar el sistema desde su estado inicial hasta un estado final

prefijado en tiempo fijo y el funcional representa el coste de la operación. En el segundo, queremos llevar

el mismo sistema desde el mismo estado inicial hasta el mismo estado final en tiempo óptimo, donde el

funcional que representa el coste de la operación es el mismo. En el tercero, queremos llevar este sistema en

tiempo fijo desde el mismo estado inicial hasta un estado próximo al deseado. No exigimos que sea exacto,

pero si próximo, por lo que el funcional incluye un coste terminal añadido, mayor cuanto más alejado este

el estado final del estado deseado (el coeficiente s se fija a priori).

En los tres problemas el hamiltoniano y las ecuaciones críticas son las mismas, con lo que los extremales

son los mismos y solo van a cambiar las condiciones que se aplican en cada caso para obtener las constantes

correspondientes a los óptimos.

( % i3) F(x,u,t):=uˆ2$f(x,u,t):=u-t$

define(H(x,u,t,λ),F(x,u,t)+λ*f(x,u,t));

H (x , u , t , λ) := (u − t) λ + u2 ( % o3)

( % i6) eq1:diff(H(x,u,t,λ),u)=0;

eq2:’diff(λ,t)=-diff(H(x,u,t,λ),x);

eq3:’diff(x,t)=diff(H(x,u,t,λ),λ);

λ + 2u = 0 ( % o4)

ddtλ = 0 ( % o5)

PROYECTO MATECO 3.14159 Página 1194

Page 43: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

ddt

x = u − t ( % o6)

Resolvemos la ecuación correspondiente a la variable de coestado (cambiamos la constante que nos da

Maxima por A)

( % i8) ode2(eq2, λ, t)

$sol2:at( %, %c=A);

λ = A ( % o8)

Resolvemos la ecuación correspondiente a la condición de primer orden y sustituimos λ(t)

( % i10) solve(eq1,u);

sol1:at( %,sol2)[1];

[u = −λ

2] ( % o9)

u = −A2

( % o10)

Una vez obtenido el control, lo sustituimos en la ecuación de movimiento del sistema y la resolvemos

(cambiamos la constante que nos da Maxima por B)

( % i13) at(eq3,sol1);

ode2( %, x, t)$

sol3:at( %, %c=B);

ddt

x = −t −A2

( % o11)

x = B −t2 + At

2( % o13)

Página 1195 PROYECTO MATECO 3.14159

Page 44: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

En el primer problema conocemos el tiempo de finalización, con lo que podemos determinar las

constantes con las condiciones inicial y final

( % i16) ec1:at(sol3,[t=0,x=0])$

ec2:at(sol3,[t=1,x=1])$

ctes:solve([ec1,ec2],[A,B]);

[[A = −3 , B = 0]] ( % o16)

Las soluciones correspondientes se obtienen sustituyendo las constantes

( % i19) aux11:at(sol1,ctes[1]);

aux12:at(sol2,ctes[1]);

aux13:at(sol3,ctes[1]);

u =32

( % o17)

λ = −3 ( % o18)

x = −t2 − 3t

2( % o19)

En el segundo problema hay que utilizar, junto con las condiciones inicial y final, la condición de

contorno que determinará el tiempo óptimo

( % i20) cc:H(x(T),u(T),T,λ(T))=0;

(u(T ) − T ) λ(T ) + u(T )2 = 0 ( % o20)

Las soluciones correspondientes se obtienen sustituyendo las constantes correspondientes a la cuarta

solución, que es la única que tiene sentido (solo mostramos ésta)

PROYECTO MATECO 3.14159 Página 1196

Page 45: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i24) ec1:at(sol3,[t=0,x=0])$

ec2:at(sol3,[t=T,x=1])$

ec3:at(cc,[x(T)=1,λ(T)=rhs(sol2),u(T)=rhs(sol1)])$

ctes:solve([ec1,ec2,ec3],[A,B,T])[4];

[A = −2

52

√3, B = 0 ,T =

√2√

3]] ( % o24)

( % i27) aux21:at(sol1,ctes);

aux22:at(sol2,ctes);

aux23:at(sol3,ctes);

u =2

32

√3

( % o25)

λ = −2

52

√3

( % o26)

x = −t2 − 2

52 t√

3

2( % o27)

Se deja como ejercicio comprobar que en el segundo caso el valor del funcional es menor.

En el tercer problema hay que utilizar, junto con la condición inicial, la condición de contorno adap-

tada al caso en el que hay valor residual

( % i30) S(x):=s*(x-1)ˆ2$

diff(S(x),x)$

ct:at(λ(1)=%,x=x(1));

λ(1) = 2 (x(1) − 1) s ( % o30)

Las soluciones correspondientes se obtienen sustituyendo las constantes correspondientes a la única

solución que se tiene

Página 1197 PROYECTO MATECO 3.14159

Page 46: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

( % i33) ec1:at(sol3,[t=0,x=0])$

ec2:at(ct,[λ(1)=rhs(sol2),x(1)=at(rhs(sol3),t=1)])$

ctes:solve([ec1,ec2],[A,B]);

[[A = −3s

s + 1, B = 0]] ( % o33)

( % i36) aux31:at(sol1,ctes[1]);

aux32:at(sol2,ctes[1]);

aux33:at(sol3,ctes[1]);

u =3s

2 (s + 1)( % o34)

λ = −3s

s + 1( % o35)

x = −t2 − 3st

s+1

2( % o36)

El estado final depende de s y cuanto más grande sea mayor es la importancia que se da a que el valor final

este cerca del objetivo, de heho, cuando s tiende a infinito el valor del estado final se acera a 1.

( % i37) xf:at(rhs(aux33),t=1),radcan;

2s − 12s + 2

( % o37)

( % i38) limit(xf,s,inf);

1 ( % o38)

Se deja como ejercicio el cálculo del valor del funcional en función de s.

PROYECTO MATECO 3.14159 Página 1198

Page 47: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

Las trayectorias en cada uno de los casos son:

( % i39) wxdraw2d(color=blue,explicit(rhs(aux13),t,0,1),

color=red,explicit(rhs(aux23),t,0,sqrt(2)/sqrt(3)),

color=light_green,explicit(at(rhs(aux33),s=5),t,0,1),

color=dark_green,explicit(at(rhs(aux33),s=10),t,0,1))$

( % t39)

En rojo llegada al estado final deseado exacta en tiempo óptimo. En azul llegada al estado final deseado

exacta en tiempo fijo. En verde llegada final aproximada al estado final deseado en tiempo fijo (s=5 verde

claro y s=10 verde oscuro). ♣

Nota Un problema típico es llevar un sistema dinámico de un estado inicial a uno final lo más rápido

posible. En este caso utilizaremos como funcional F(t, x, u) = 1 de forma que tenemos

t∗ =∫ t∗

0dt ♣

Maxima 37.20 En este ejercicio hay que llevar un sistema dinámico cuya ecuación de movimiento,

x′ = x + u, depende de un control u, desde un estado inicial x0 = 5 a un estado final x f = 11 en el

menor tiempo posible considerando dos casos: controles no acotados y controles acotados entre -1 y 1:

(a)

mınu∈ℜ

∫ T

0dt

s.a. x′ = x + u

x(0) = 5 x(T ) = 11

(b)

mın−1≤u≤1

∫ T

0dt

s.a. x′ = x + u

x(0) = 5 x(T ) = 11 ♣

Maxima 37.21 Calcular el valor de las variables de control, estado y coestado para las que se verifican las

condiciones necesarias de optimalidad que establece el principio del óptimo de Pontryagin en los siguientes

Página 1199 PROYECTO MATECO 3.14159

Page 48: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

problemas de control óptimo.

(a)

mınu∈ℜ

∫ 1

0u2dt

s.a. x′ = x + u

x(0) = 1,

x(1) = 2

(b)

mınu∈ℜ

∫ 1

0u2dt

s.a. x′ = x + u

x(0) = 1,

x(1) >= 2

(c)

mınu∈ℜ

∫ 1

0u2dt

s.a. x′ = x + u

x(0) = 1,

x(1) = 3

(d)

mınu∈ℜ

∫ 1

0u2dt

s.a. x′ = x + u

x(0) = 1,

x(1) >= 3

Solución En todos los problemas queremos llevar el sistema desde su estado inicial hasta un estado final

en tiempo fijo y el funcional representa el coste de la operación. En el primero queremos que alcance el

estado x f = 2, en el segundo incluimos la posibilidad de superar el estado final x f = 2, y en los dos últimos

lo mismo pero con x f = 3. En todos los problemas el hamiltoniano y las ecuaciones críticas son las mismas,

con lo que los extremales son los mismos y solo van a cambiar las condiciones que se aplican en cada caso

para obtener las constantes correspondientes a los óptimos.

( % i2) L(x,u,t):=uˆ2$

f(x,u,t):=x+u$

( % i3) define(H(x,u,t,λ),L(x,u,t)+λ*f(x,u,t));

H (x , u , t , λ) := (x + u) λ + u2 ( % o3)

( % i6) eq1:’diff(λ,t)=-diff(H(x,u,t,λ),x);

eq2:diff(H(x,u,t,λ),u)=0;

eq3:’diff(x,t)=diff(H(x,u,t,λ),λ);

ddtλ = −λ ( % o4)

λ + 2u = 0 ( % o5)

ddt

x = x + u ( % o6)

PROYECTO MATECO 3.14159 Página 1200

Page 49: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

( % i8) sol1:ode2(eq1, λ, t)$

sol1p:subst(A, %c,sol1);

λ = A %e−t ( % o8)

( % i10) sol2:solve(eq2,u);

sol2p:subst([sol1p],sol2[1]);

[u = −λ

2] ( % o9)

u = −A %e−t

2( % o10)

( % i11) eq3nw:subst([sol2p],eq3);

ddt

x = x −A %e−t

2( % o11)

( % i13) sol3:ode2(eq3nw, x, t)$

sol3p:subst(B, %c,sol3),radcan;

x =%e−t

(4B %e2t + A

)4

( % o13)

En el primer y tercer problema podemos determinar las constantes con las condiciones inicial y

final. En los otros dos, ademas de la solución correspondiente a la igualdad, tenemos otra posible solución

asociada a la condición de trasversalidad λ(1) = 0, que aparece al considerar la condición de holgura

λ(1)(x(1) − 2) = 0 en el segundo problema y λ(1)(x(1) − 3) = 0 en el cuarto.

Página 1201 PROYECTO MATECO 3.14159

Page 50: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

( % i17) ci:at(rhs(sol3p),t=0)=1;

cfa:at(rhs(sol3p),t=1)=2;

ctbd:at(rhs(sol1p),t=1)=0;

cfc:at(rhs(sol3p),t=1)=3;

4B + A4

= 1 ( % o14)

%e−1(4 %e2B + A

)4

= 2 ( % o15)

%e−1A = 0 ( % o16)

%e−1(4 %e2B + A

)4

= 3 ( % o17)

En los casos primero y tercero, la solución se obtiene mediante las condiciones inicial (x(0) = 1) y

final (x(1) = 2/x(1) = 3) y no presentan el menor interés

( % i21) ctesa:solve([ci,cfa],[A,B])$sollama:at(sol1p,ctesa[1]),radcan;solua:at(sol2p,ctesa[1]),radcan;solxa:at(sol3p,ctesa[1]),radcan;

λ =

(4 %e2 − 8 %e

)%e−t

%e2 − 1( % o19)

u = −

(2 %e2 − 4 %e

)%e−t

%e2 − 1( % o20)

x =%e−t

((2 %e − 1) %e2t + %e2 − 2 %e

)%e2 − 1

( % o21)

( % i25) ctesc:solve([ci,cfc],[A,B])$sollamc:at(sol1p,ctesc[1]),radcan;soluc:at(sol2p,ctesc[1]),radcan;solxc:at(sol3p,ctesc[1]),radcan;

λ =

(4 %e2 − 12 %e

)%e−t

%e2 − 1( % o23)

PROYECTO MATECO 3.14159 Página 1202

Page 51: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

u = −

(2 %e2 − 6 %e

)%e−t

%e2 − 1( % o24)

x =%e−t

((3 %e − 1) %e2t + %e2 − 3 %e

)%e2 − 1

( % o25)

En los otros casos hay que considerar la solución se obtiene mediante las condiciones inicial (x(0) =

1) y de trasversalidad (λ(1) = 0) y corresponde al estado final libre con un menor valor del funcional.

( % i30) ctesbd:solve([ci,ctbd],[A,B]);sollambd:at(sol1p,ctesa[1]),radcan;solubd:at(sol2p,ctesbd[1]),radcan;solxbd:at(sol3p,ctesbd[1]),radcan;at(rhs(solxbd),[t=1]),radcan;

[[A = 0 , B = 1]] ( % o26)

λ =

(4 %e2 − 8 %e

)%e−t

%e2 − 1( % o27)

u = 0 ( % o28)

x = %et ( % o29)

%e ( % o30)

▷ Esta solución alcanza en un estado final x(1) = e y es la solución correspondiente al segundo

problema al ser x(1) = e > 2. La solución al cuarto problema es la solución correspondiente a x(1) = 3, ya

que esta solución no verifica x(1) ≥ 3. ♣

Maxima 37.22 Calcular el valor de las variables de control, estado y coestado para las que se verifican las

condiciones necesarias de optimalidad que establece el principio del óptimo de Pontryagin en el siguiente

problema de control óptimo.

Página 1203 PROYECTO MATECO 3.14159

Page 52: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

mın−1≤u≤1

∫ 2

0

x2

2dt

s.a. x′ = u

x(0) = 1

Solución Queremos llevar el sistema desde el estado inicial x(0) = 1 al instante final t f = 2 sin importar-

nos el estado final que se alcance minimizando el coste de la operación, que depende del estado del proceso

durante el recorrido. El primer paso es definir el hamiltoniano junto al resto de funciones:

( % i3) F(x,u,t):=(1/2)*xˆ2$

f(x,u,t):=u$

define(H(x,u,t,λ),F(x,u,t)+λ*f(x,u,t));

H (x , u , t , λ) := uλ +x2

2( % o3)

En este problema la región de control es el intervalo [−1, 1], que no es un abierto. Por tanto, no tenemos

garantía de que la derivada del hamiltoniano con respecto al control se anule y vamos a maximizar el

hamiltoniano directamente, ya que es lineal en el control. El único término que depende de él es λu, que

para λ fijo alcanza su mínimo para u = −1 si λ es positivo y para u = 1 si es negativo. Si λ(t) es 0 el control

puede tomar cualquier valor sin que cambie el hamiltoniano

u∗(t) =

−1 λ(t) > 0

indeterminado λ(t) = 0

1 λ(t) < 0

Calculamos las ecuaciones de movimiento de las variables de estado y coestado:

( % i5) eq1:’diff(x,t)=diff(H(x,u,t,λ),λ);

eq2:’diff(λ,t)=-diff(H(x,u,t,λ),x);

ddt

x = u ( % o4)

PROYECTO MATECO 3.14159 Página 1204

Page 53: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

ddtλ = −x ( % o5)

En este caso, las ecuación de movimiento de la variable de estado depende del control y la de la variable

de coestado del estado, con lo que no podemos resolverlas directamente. Sin embargo, como el funcional

solo depende del estado y cuando el estado es cero no hay aportación al valor del funcional, podemos

plantear un problema más simple: cómo llevar el sistema al estado x f = 0 en tiempo óptimo:

mın−1≤u≤1

∫ T

0

x2

2dt

s.a. x′ = u

x(0) = 1

x(T ) = 0

La solución intuitiva es frenar al máximo tomando u = −1, de forma que tengamos x′ = −1-

Para comprobarlo, tomamos u = −1 junto a la condición inicial y obtenemos la trayectoria correspon-

diente de la variable de estado

( % i9) eq11:sublis([u=-1],eq1);

ode2(eq11,x,t)$

ic1( %,t=0,x=1)$

solx:expand( %);

ddt

x = −1 ( % o6)

x = 1 − t ( % o9)

La condición de estado final nos permite obtener el tiempo óptimo:

( % i11) cf:x(T)=0;

solve(at(solx,[t=T,x=rhs(cf)]),T);

x(T ) = 0 ( % o10)

Página 1205 PROYECTO MATECO 3.14159

Page 54: Tema 37 Control óptimo continuo

Bloque X. OPTIMIZACIÓN DINÁMICA

[T = 1] ( % o11)

Para comprobar que es un mínimo calculamos la trayectoria de variable de coestado y comprobar que

es positiva, λ(t) ≥ 0. En este cálculo vamos a utilizar la condición de contorno para determinar su valor al

final del proceso.

( % i13) eq21:sublis([x=rhs(solx)],eq2);

sollam:ode2(eq21,λ,t);

ddtλ = t − 1 ( % o12)

λ =t2

2− t + %c ( % o13)

( % i15) cc:H(x(T),u(T),T,λ(T))=0;

solve(at(cc,[x(T)=0,u(T)=-1,T=1]),λ(1));

u(T ) λ(T ) +x(T )2

2= 0 ( % o14)

[λ(1) = 0] ( % o15)

( % i17) sollamp:ic1(sollam,t=1,λ=0);

λ =t2

2− t +

12

( % o17)

Como la función es positiva, la solución del problema en tiempo óptimo es tomar el control u = −1, que

lleva el sistema a cero en el instante final t f = 1.

Volviendo al problema original, al tomar u = 0 a partir del punto t = 1 el sistema sigue en el mismo

estado hasta el instante final t f = 2 sin añadir valor al funcional. En este caso la variable de coestado vale

cero en el intervalo [1, 2] y decimos que el control obtenido es singular (si la variable de coestado vale cero

PROYECTO MATECO 3.14159 Página 1206

Page 55: Tema 37 Control óptimo continuo

TEMA 37. CONTROL ÓPTIMO CONTINUO

en un número finito de puntos diremos que es normal).

u∗(t) =

−1 0 ≤ t ≤ 1

0 1 < t ≤ 2

Las diferentes trayectorias se obtienen como funciones a trozos:

( % i19) define(x(t), if t<=1 then rhs(solx) else 0);

define(λ(t), if t<=1 then rhs(sollamp) else 0);

define(u(t), if t<=1 then -1 else 0);

x(t) := if t<= 1 then rhs (x = 1 − t) else 0 ( % o17)

λ(t) := if t<= 1 then rhs(λ =

t2 − 2t + 12

)else 0 ( % o18)

u(t) := if t<= 1 then −1 else 0 ( % o19)

( % i21) wxdraw2d(line_width=2,color=red,explicit(x(t),t,0,2),

color=blue,explicit(λ(t),t,0,2))$

wxdraw2d(line_width=2,color=green,explicit(u(t),t,0,2))$

( % t21)

Página 1207 PROYECTO MATECO 3.14159

Page 56: Tema 37 Control óptimo continuo

En preparación