Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Farias PDF
Farias PDF
2
Ejemplo 1:
f(X1,X2)= cos(X1)+sen(X2);
N=2;
E=0.1;
D=1;
X0=(-1.5;-6);
%determina N
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
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)
>>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
>>
X B's en el plano X X
-5
-5.5
-6
X2
-6.5
-7
-7.5
-8
-8.5
-9
-4
-3.5
-3
-2.5
-2
-1.5
-1
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
>>
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.