Vous êtes sur la page 1sur 6

Computacin Evolutiva

Algoritmos Genticos (AG)

Aplicacin

de

Ejercicio: Hallar las variables para el modelo matemtico que corresponde a la


velocidad de cabeceo de un aircraft haciendo uso de algoritmos genticos.
La funcin de transferencia del sistema real es:

1.151 s +0.1774
s + 0.739 s2 +0.921
3

La funcin de transferencia del sistema simulado es:

K s+A
s + B s 2 +C
3

Para la solucin de este problema:


1. Se sac la cantidad de individuos, en nuestro caso la cantidad de individuos
es igual a cuatro (4).
2. Haciendo uso de las herramientas obtenidas en clase se gener un
documento en SIMULINK, el cual contiene una entrada que genera valores
randomicos de tipo escaln, una funcin de transferencia que en nuestro
caso equivale a la funcin de transferencia de la velocidad de cabeceo de
una aircraft y una salida. En medio de estas se encuentran dos variables
que son enviadas al Workspace que son Entrada y Salida.
Entrada: contiene los valores que se generan randomicamente de tipo
escaln.
Salida: contiene los valores que se generan al pasar la seal de entrada
por la funcin de transferencia.
3. Se gener un segundo documento en SIMULINK en el cual se van a cargar
los datos que se ingresen desde la herramienta de MatLab llamada
Optimtool.
4. Se gener un script donde se calcula la funcin costo.
El cdigo generado en MatLab fue el siguiente:

function [costo]=Estimacion(x)
%Se declaran las variables globales
global K A B C
%Se asignan los valores a las variables globales
K=x(1);
A=x(2);
B=x(3);
C=x(4);
%Se generan variables de tipo string con el objetivo de facilitar
%la concatenacin de las variables num y den
abre='[';
cierra=']';
uno=num2str(1);
%Se define un vector tiempo para que acompae a la variable EntradaR
%en el bloque From Workspace
time=(0:0.1:100)';
Salida1 = evalin('base', 'Salida');%toma el dato del valor Salida
Entrada1 = evalin('base', 'Entrada');%toma el dato del valor Entrada
%Se enva la variable EntradaR=[time Entrada1] a el Workspace
assignin('base', 'EntradaR', [time Entrada1]);
%Se pasan todas las variables a String
k = num2str(K);
a = num2str(A);
b = num2str(B);
c = num2str(C);
%Se concatena el numerador para poder ser enviado al simulink
n1=strcat(abre,k);
n2=strcat(a,cierra);
num=sprintf('%s %s', n1, n2);
%Se concatena el denominador para poder ser enviado al simulink
d1=strcat(abre,uno);
d2=sprintf('%s %s', d1, b);
d3=strcat(c,cierra);
den=sprintf('%s %s', d2, d3);
%Se enva el numerador al documento parcial_simulink_part_1 con ruta
%al bloque de Transfer Fcn al parmetro Numerator
set_param('parcial_simulink_part_1/Transfer Fcn','Numerator',num);
%Se enva el denominador al documento parcial_simulink_part_1 con ruta
%al bloque de Transfer Fcn al parmetro Denominator
set_param('parcial_simulink_part_1/Transfer Fcn','Denominator',den);
%Se corre el documento de simulink parcial_simulink_part_1
[t,x,y]=sim('parcial_simulink_part_1.mdl');
%Se recibe el dato que llega de la simulacion
Salidasim=y(5:1005,2);
%Se envia la variable Salidasim=Salidasim al Workspace
assignin('base', 'Salidasim', Salidasim);
%Se calcula la funcin costo
[costo]=mean(((Salida1-Salidasim).^2));
end

Prueba:
1. Lo primero que se hizo fue abrir todos los documentos
(parcial_simulink_part_1, simulaciondatos, optimtool).
2. Despus se procedi a correr el documento de SIMULINK llamado
simulaciondatos ya que este corresponde a la funcin de transferencia
real de la velocidad de cabeceo del aircraft, es decir, con este documento
se generan la Entrada y Salida reales.
3. Despus se procedi a abrir el optimtool y se ingresaron los datos:
Bounds:
Lower: [0,0,0,0]
Upper: [1.5,1.5,1.5,1.5]
Initial range:
[0,0,0,0;1.5,1.5,1.5,1.5]
Population size:
5
Finalmente se procedi a presionar el botn de start. Obteniendo los
siguientes resultados:

Imagen No.1 Valores del Optimtool

Imagen No.2 Valores Calculados por la Funcin Costo

En la Imagen No.2 podemos ver los valores que la funcin costo calcul, presenta
4 individuos donde el individuo 1 equivale a la variable K, el individuo 2 equivale a
la variable A, el individuo 3 equivale a la variable B y el individuo 4 equivale a la
variable C.

Imagen No.3 FDT aircraft real SIMULINK (simulaciondatos)

Imagen No.4 FDT aircraft simulada (parcial_simulink_part_1)

Imagen No.5 Respuesta real Vs Respuesta simulada

Imagen No.6 Grafica del Mejor Individuo

Imagen No.7 Bloque despus y antes de optimizacin

Vous aimerez peut-être aussi