Está en la página 1de 5

1

Mtodo de Bsqueda Directo Hooke&Jeeves


Hctor F. Faras Stipo ( cronopio@elo.utfsm.cl )

Abstract Se utiliz el mtodo de bsqueda directo de Hooke&Jeeves propuesto en [1] para determinar los parmetros de un controlador PI utilizando el software Matlab. I. INTRODUCCIN Los mtodos analticos imponen demasiadas restricciones a las funciones objetivos, y resulta que no siempre es posible resolver el sistema de ecuaciones analticamente. Para resolver sta problemtica nacen los mtodos numricos, los cules se dividen en dos grandes grupos, los mtodos numricos Indirectos y los Directos [2]. Los mtodos numricos Indirectos utilizan la funcin objetivo analtica, las primeras y segundas derivadas, pero las derivadas muchas veces son de difcil obtencin e incluso puede que no se conozca la funcin objetivo analticamente. Entre los mtodos Indirectos ms conocidos se encuentran: Newton, QuasiNewton, Secante, Regula Falsi. Los mtodos numricos Directos en cambio, requieren nicamente los valores que entrega la funcin objetivo, los que pueden ser resultados de experimentacin o bien de la evaluacin de una expresin analtica. Adems el mtodo Directo utiliza un plan de experiencias secuencial, el cul utiliza los resultados de los experimentos o evaluaciones analticas previas para generar el prximo experimento de una forma tal que se acelere la obtencin de una solucin ptima. Entre los mtodos Directos ms conocidos se encuentran: Fibonacci, Nelder&Mead, y el no tan conocido Hooke&Jeeves [1] que ser tratado con profundidad en este trabajo. R. Hooke (1635-1702) Filsofo y Fsico ingls considerado el mecnico ms notable de su poca y fundador de la meteorologa cientfica. Fue el primero en formular la teora de los movimientos planetarios matemticamente y se dice que fue l quien por primera vez idealizo que los cuerpos se atraen mutuamente con una fuerza que vara inversamente al cuadrado de la distancia que los separa.

T.A. Jeeves public la referencia [1] en el Journal ACM en 1961. II. MTODO DE HOOKE&JEEVES PARA BUSCAR MNIMOS MIRADO DESDE EL PUNTO DE VISTA DE LOS MTODOS NUMRICOS La explicacin del mtodo se realizar para una funcin de 2 variables para su mejor comprensin, destacando que el mtodo puede ser utilizado para una funcin de n variables. El mtodo consiste bsicamente en realizar la bsqueda en cada una de las dimensiones (X1,X2) y luego por la diagonal determinada por los puntos coordenadas y el punto inicial X0=( X1(0),X2(0)) en el cul se inicio la bsqueda variando el paso para cada iteracin en caso de ser necesario para ir ajustando el resultado hasta alcanzar la precisin requerida. El vector XBi es un pivote base que se sita en la coordenada (X1(i),X2(i)) que minimiza mejor la funcin objetivo o el resultado del experimento hasta la iteracin i.

Fig1. Idea bsica del mtodo de bsqueda Hooke&Jeeves. El algoritmo en diagrama de flujo para realizar el mtodo se muestra en la figura 2, en el cual se debe ingresar: la funcin objetivo f(X) a minimizar en el caso de que se conozca(o bien, disponer de la planta a experimentar); el nmero N de variables de la funcin f(X); la tolerancia de error E permitida; el largo del paso D inicial; el punto inicial X0=(X1(0),X2(0)..., XN(0) );

2
Ejemplo 1: f(X1,X2)= cos(X1)+sen(X2); N=2; E=0.1; D=1; X0=(-1.5;-6); rojo representan las zonas de mximos locales, y las ms cercanas al azul las de mnimos locales. El diagrama de flujo de la figura 2 fue programado en Matlab y se muestra a continuacin:
function Hooke(E,D,X0) N=length(X0); XB=X0; YB=f(XB(1),XB(2)); fin=0;count=0; posicion_de_partida=X0; %determina N

Fig2. Diagrama de flujo del algoritmo implementado.

while((fin==0)&(count<=1000)) X=XB; YA=YB; A2=0; while((A2==0)&(fin==0)&(count<=1000)) for i=1:1:N X(i)=XB(i)+D; Y=f(X(1),X(2)); if Y<YB YB=Y; XB(i)=X(i); else X(i)=XB(i)-D; Y=f(X(1),X(2)); if Y<YB YB=Y; XB(i)=X(i); else X(i)=XB(i); end end end count=count+1; if YA==YB R=D*N^(0.5); if R<=E posicion_final=XB; minimo=YB; entorno=R; fin=1; else D=0.5*D; X0=XB; end else X=2*XB-X0; YA=f(X(1),X(2)); X0=XB; if YA<YB XB=X; YB=YA; count=count+1; else A2=1; end end

Fig3. Grfica de la curva del ejemplo 1. En la grfica de la curva del ejemplo 1 mostrado en la figura 3, las tonalidades ms cercanas al

end end posicion_de_partida posicion_final minimo=YB entorno=R iteraciones=count

3
function r=f(x,y) r=cos(x)+sin(y);

X0 =(-1.5;-6.0) XB1 =(-2.5;-7.0) XB2 =(-3.5;-8.0) XB3 =(-3.5;-8.0) XB4 =(-3.0;-8.0) XB5 =(-3.0;-8.0) XB6 =(-3.25;-7.75) XB7 =(-3.25;-7.75) XB8 =(-3.125;-7.875) XB9 =(-3.125;-7.875) XB10=(-3.125;-7.875) III. APLICACIN EN CONTROL La idea general es utilizar el mtodo de bsqueda directo para ajustar los parmetros de un controlador [4], de manera de minimizar alguna caracterstica del lazo cerrado, como: IAE: Integral del valor absoluto del error; ITAE: Integral del valor absoluto del error ponderado por el tiempo; ISE: Integral del cuadrado del error; ITSE: Integral del cuadrado del error ponderado por el tiempo;

Fig4. Grfica de la superficie del ejemplo 1 en el plano (X1,X2). En la lnea de comando de Matlab se invoc la funcin Hooke (lnea 1), lo que arroj los siguientes resultados: >>Hooke(1e-1,1,[-1.5 -6] ) posicin_de_partida= -1.5 -6 posicin_final= -3.1250 -7.8750 mnimo= -1.9996 entorno= 0.0884 iteraciones= 10 >> Los resultados obtenidos son muy buenos, dada la tolerancia de error aceptada(E=0.1). El mnimo que debera haber encontrado con exacta precisin es 2 en las coordenadas (-,-5/2) que corresponde a un mnimo local.
X B's en el plano X X
1
-5

-5.5 -6

En este trabajo se utilizar el criterio de minimizar la integral del valor absoluto del error IAE frente a un escaln de referencia para ajustar los parmetros de un controlador PI (proporcional-integrativo). En este caso se utilizar la Planta o proceso a controlar como un experimento en el cul se va a minimizar el valor IAE. Para llevar a cabo nuestro experimento, se utiliz Simulink de Matlab.

-6.5

X2

-7

-7.5

-8 -8.5

-9 -4

-3.5

-3

-2.5

-2

-1.5

-1

Fig5. Grfica de los puntos XB en cada iteracin. En la figura 5 se denota en color rojo el punto inicial y con azul el final que corresponde al punto que minimiza la funcin objetivo. A continuacin se muestran los puntos encontrados para cada una de las iteraciones del ejemplo 1:

Fig6. Esquema en Simulink para la realizacin de los experimentos. En el esquema de la figura 6 se utiliz una Planta de primer orden con ganancia K y constante de tiempo Tau; El controlador PI con ganancia proporcional Kp y ganancia integrativa Kp/Ti.

4
Se hicieron algunas modificaciones sobre el programa original para utilizar los resultados experimentales provenientes del Simulink. La funcin modificada se nombr HookePI en la cul se debe ingresar: la tolerancia de error E permitida; el largo del paso D inicial; los parmetros iniciales X0=(Kp,Ti); los parmetros de la planta XP=(K,Tau);
function HookePI(E,D,X0,XP) global Kp Ti K Tau tout y ref error N=length(X0); %determina N X0 XB=X0; Kp=XB(1);Ti=XB(2); K=XP(1);Tau=XP(2); YB=er; fin=0;count=0; while((fin==0)&(count<=150)) X=XB; YA=YB; A2=0; while((A2==0)&(fin==0)&(count<=150)) for i=1:1:N X(i)=XB(i)+D; Kp=X(1);Ti=X(2); Y=er; if Y<YB YB=Y; XB(i)=X(i); else X(i)=XB(i)-D; Kp=X(1);Ti=X(2); Y=er; if Y<YB YB=Y; XB(i)=X(i); else X(i)=XB(i); end end end count=count+1; if YA==YB R=D*N^(0.5); if R<=E posicion=XB; minimo=YB; entorno=R; fin=1; else D=0.5*D; X0=XB; end else X=2*XB-X0; Kp=X(1);Ti=X(2); YA=er; X0=XB; if YA<YB XB=X; YB=YA; count=count+1; else A2=1; end end end end Kp=XB(1) Ti=XB(2) int_error_minima=YB entorno=R iteraciones=count function r=er( ) global K Tau Kp Ti tout ref y error tiempo=100*Tau; sim('sist',[0 tiempo]) r=IAE(length(IAE));

Ejemplo 2: E =1e-5; D =0.1; X0=(10,1e-4); XP=(1,1e-3); En la lnea de comando de Matlab se invoc la funcin HookePI (lnea 1), lo que arroj los siguientes resultados: >>Hooke(1e-5,0.1,[10 1e-4],[1 1e-3] ) Kp= 9.707 Ti= 9.9111e-4 Int_error_mnima= 1.0291e-4 entorno= 8.6317e-6 iteraciones= 31 >>

Fig7. Grfica de los puntos XB en cada iteracin. En la figura 7 se puede ver que a medida que se acerca al mnimo local el algoritmo disminuye el paso hasta cumplir con la tolerancia de error.

5
V. REFERENCIAS 1. R. Hooke and T. A. Jeeves, "Direct Search Solution of Numerical and Statistical Problems", Journal of the ACM, Vol. 8, April 1961, pp. 212229. 2. Enrique Tarifa, Optimizacin y Simulacin de Procesos-Mtodos Numricos Universidad Nacional de Jujuy. 3. CECC Biografas Fsicos-Matemticos (www.cecc.cl).

Fig8. Grfica de la respuesta a escaln inicial y final. En la figura 8 se aprecia el buen desempeo del algoritmo para minimizar la integral del valor absoluto del error. IV. CONCLUSIONES En base a los resultados presentados en este trabajo, se puede concluir que el algoritmo de bsqueda directa de Hooke&Jeeves entrega resultados bastante satisfactorios y posee la gran ventaja de que solo requiere la funcin objetivo o la planta a experimentar. Cabe destacar que los resultados encontrados por el mtodo corresponden a mnimos locales, por lo que la solucin encontrada no necesariamente va a ser un mnimo global. Adems como el mtodo descrito opera en N variables, ste se puede utilizar en sistemas ms complejos para encontrar los parmetros del controlador que nos entregue la mejor respuesta posible del proceso segn algn criterio como el IAE, ITAE, ISE, ISTE, o bien, cualquier otro.

4. Apuntes del profesor J.Glaria B. del Depto. de Electrnica de la UTFSM-Valpo Chile.

También podría gustarte