Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
En preparación