You are on page 1of 5

CONTROL PTIMO

Oscar Jarrin
Andrs Merino
8 de noviembre de 2012
1 Introduccin
Buscaremos una solucin numrica al problema:

mn J(y, u) :=
1
2
y y

2
L
2
(0,1)
+

2
u
2
L
2
(0,1)
sujeto a:
y

= u
y(0) = y(1) = 0
u
a
(x) u(x) u
b
(x).
donde > 0, y

L
2
(0, 1) y , u
a
, u
b
C[0, 1]. Para esto, se darn las condiciones de optimalidad
del problema y mediante un algoritmo que involucra elementos nitos y mtodo del gradiente se
lo resolver numricamente; nalmente se implementar este algoritmo en MATLAB.
2 Condiciones de optimalidad
Por la teora vista en clase, se tiene que la solucin del problema anterior satisface las siguientes
condiciones de optimalidad:
1. Ecuacin de estado
y

= u,
y(0) = y(1) = 0.
2. Ecuacin adjunta
p

= y y

,
p(0) = p(1) = 0.
3. Desigualdad variacional
(p + u, v u)
L
2
(0,1)
0, u
a
v u
b
.
1
3 Algoritmo
Denamos
f (u) =
1
2
Su y

2
L
2
(0,1)
+

2
u
2
L
2
(0,1)
,
donde S es el operador lineal que resuelve la ecuacin de estado. Diferenciado este funcional
tenemos
f

(u)v =

1
0
(p u)v dx,
donde p es la solucin de la ecuacin adjunta.
Teniendo en cuenta esto, los pasos del algoritmo son:
1) Dar un u
0
que satisfaga u
a
u
0
u
b
.
2) A partir de u
n
, obtenga y
n
resolviendo la ecuacin de estado.
3) Obtenga p
n
resolviendo la ecuacin adjunta.
4) Obtenga v
n
(direccin de descenso) resolviendo el problema
mn
u
a
vu
b

1
0
(v
n
+u
n
)vdx.
Si f

(u
n
)(v
n
u
n
) 0, parar.
5) Obtenga s
n
(paso de descenso) tal que
f (u
n
+ s
n
(v
n
u
n
)) = mn
s(0,1]
f (u
n
+ s(v
n
u
n
))
6) Fije u
n+1
= u
n
+ s
n
(v
n
u
n
), n = n + 1. Vaya a 2).
Para el paso 4) tomamos la direccin de descenso de la siguiente forma:
v
n
(x) =

u
a
(x) si (x)p
n
(x) + u
n
(x) > 0,
1
2
u
a
(x) +
1
2
u
b
(x) si (x)p
n
(x) + u
n
(x) = 0,
u
b
(x) caso contrario.
Para el paso 5) hallamos el paso de descenso teniendo en cuenta que, si denimos g(s) =
f (u
n
+ s(v
n
u
n
)) se tiene que
g(s) =
s
2
2

w
n
y
n

2
+v
n
u
n

+ s [(y
n
y

, w
n
y
n
) + (u
n
, v
n
u
n
)]
+
1
2
y
n
y

2
+

2
u
n

2
,
donde w
n
= Sv
n
. Derivando se tiene que el mnimo se alcanza en s =
g
1
g
2
con
g
1
= (y
n
y

, w
n
y
n
) + (u
n
, v
n
u
n
),
g
2
= w
n
y
n

2
+v
n
u
n

2
.
Por lo tanto s
n
se toma de la siguiente manera:
s
n
=

0 si >
g
1
g
2
< 0,
1 si >
g
1
g
2
> 1,

g
1
g
2
caso contrario.
2
4 Implementacin en MATLAB
Se ha generado en MATLAB la funcin ControlOptimo que toma como argumentos y

, , , u
a
, u
b
y la cantidad de particiones del intervalo [0, 1]. Un ejemplo se tiene en el problema

mn J(y, u) :=
1
2
y 1
2
L
2
(0,1)
+
0,1
2
u
2
L
2
(0,1)
sujeto a:
y

(x) = xu(x)
y(0) = y(1) = 0
x
2
u(x) x.
para el cual se introduce la instruccin >> [u,y]=ControlOptimo(1,0.1,x,x^2,x,10),
obteniendo:
u = (0; 0,0123; 0,0494; 0,1111; 0,1975; 0,5556; 0,6667; 0,7778; 0,8889; 1,0000),
y = (0; 0,0051; 0,0084; 0,0126; 0,0179; 0,0242; 0,0292; 0,0317; 0,0297; 0),
y la grca:
0 0.2 0.4 0.6 0.8 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
u
0 0.2 0.4 0.6 0.8 1
0
0.005
0.01
0.015
0.02
0.025
0.03
0.035
y
A continuacin se detalla el cdigo en MATLAB.
funct i on [ u_n , y_n]=ControlOptimo ( Y_om, lambda , Beta , U_a , U_b,m)
%%
% Es t e programa r e s ue l v e e l pr obl e ma
% min 1/ 2 ||yY_om||^2+l ambda / 2 ||u||^2
% s u j e t o a :
% y = b e t a u en ( 0 , 1 )
% y ( 0) =y ( 1) =0
%
% U_a <= u <= U_b
%
% Ut i l i z a nd o e l e me nt o s f i n i t o s y mt odo d e l g r a d i e nt e
%%
% Mal l a
h=1/(m1) ;
x =[ 0 : h : 1 ] ;
3
% Eva l ua c i n de f unc i o ne s s o b r e l a ma l l a
f or i =1:m
u_a ( i )= f eval ( i nl i ne ( U_a ) , x ( i ) ) ;
end
f or i =1:m
u_b( i )= f eval ( i nl i ne ( U_b) , x ( i ) ) ;
end
f or i =1:m
b( i )= f eval ( i nl i ne ( Beta ) , x ( i ) ) ;
end
f or i =1:m
y_om( i )= f eval ( i nl i ne (Y_om) , x ( i ) ) ;
end
% Mat ri z de masa par a e l e me nt o s f i n i t o s
A=speye (m) ;
f or i =1:m
A( i , i ) =( 1/h^2)(2 h ) ;
end
f or i =1:m1
A( i , i +1)=(1/h^2) ( h1) ;
end
f or i =2:m
A( i , i 1)=(1/h^2) ( h1) ;
end
% I n i c i a l i z a r u_n
f or i =1: c e i l (m/2)
u_n( i )= f eval ( i nl i ne ( U_a ) , x ( i ) ) ;
end
f or i =c e i l (m/2) +1:m
u_n( i )= f eval ( i nl i ne ( U_b) , x ( i ) ) ;
end
% Pri mer pas o d e l a l g o r i t mo
% Re s o l uc i n de l a e c ua c i n de e s t a d o
y_n=(A\( b . u_n ) ) ;
y_n ( 1 ) =0 ;
y_n (m) =0 ;
% Re s o l uc i n de l a e c ua c i n a dj unt a
p_n=(A\( y_ny_om) ) ;
p_n ( 1 ) =0 ;
p_n(m) =0 ;
% Bsqueda de d i r e c c i n de d e s c e ns o
f or i =1:m
i f ( b( i ) p_n( i )+lambdau_n( i ) ) >0 ;
v_n ( i )=u_a ( i ) ;
e l s e i f ( b( i ) p_n( i )+lambdau_n( i ) ) ==0 ;
v_n ( i ) =( u_a ( i )+u_b ( i ) ) /2 ;
el se
v_n ( i )=u_b( i ) ;
end
end
% Bl oque i t e r a t i v o
% Ve r i f i c a c i n de c o nd i c i n de o p t i ma l i d a d
4
while t rapz ( ( b . p_n+lambdau_n ) . ( v_nu_n ) , x) <0
w_n=(A\v_n ) ;
w_n( 1 ) =0 ;
w_n(m) =0 ;
g_1=t rapz ( ( y_ny_om) . ( w_ny_n ) , x)+lambda t rapz ( u_n . ( v_nu_n ) , x ) ;
g_2=t rapz ( ( w_ny_n ) . ^2 , x)+lambda t rapz ( ( v_nu_n ) . ^2 , x ) ;
% Bsqueda d e l pas o de d e s c e ns o
i f g_1/g_2 <0;
s_n =0;
e l s e i f g_1/g_2 >1;
s_n =1;
el se
s_n=g_1/g_2 ;
end
% Ac t ua l i z a c i n d e l c o nt r o l
u_n=u_n+s_n ( v_nu_n ) ;
% Re s o l uc i n de l a e c ua c i n de e s t a d o
y_n=(A\( b . u_n ) ) ;
y_n ( 1 ) =0 ;
y_n (m) =0 ;
% Re s o l uc i n de l a e c ua c i n a dj unt a
p_n=(A\( y_ny_om) ) ;
p_n ( 1 ) =0 ;
p_n(m) =0 ;
% Bsqueda de d i r e c c i n de d e s c e ns o
f or i =1:m
i f ( b( i ) p_n( i )+lambdau_n( i ) ) >0 ;
v_n ( i )=u_a ( i ) ;
e l s e i f ( b( i ) p_n( i )+lambdau_n ( i ) ) ==0 ;
v_n ( i ) =( u_a ( i )+u_b( i ) ) /2 ;
el se
v_n ( i )=u_b ( i ) ;
end
end
end
% Gr f i c a d e l c o nt r o l , e s t a d o y r e s t r i c c i o n e s
subplot ( 1 , 2 , 1 ) ; pl ot ( x , u_n , x , u_a , : r , x , u_b , : r , LineWidth , 1 . 5 )
t i t l e ( u )
subplot ( 1 , 2 , 2 ) ; pl ot ( x , y_n , LineWidth , 1 . 5 )
t i t l e ( y )
end
5

You might also like