Algoritmos Genéticos

6
ELECTRÓNICA AUTOMATIZACIÓN Y CONTROL Algoritmos Genéticos Diseño de un controlador PI óptimo usando Algoritmos Genéticos Nombres: Miguel Benalcázar Xavier Falconí Mauricio Vinueza 21/05/2012 Diseño de un controlador PI óptimo para el proceso Multitank

description

Material sobre algoritmos geneticos para la carrrera de Ingenieria en Sistemas Computacionales

Transcript of Algoritmos Genéticos

Page 1: Algoritmos Genéticos

ELECTRÓNICA AUTOMATIZACIÓN Y CONTROL

Algoritmos Genéticos Diseño de un controlador PI óptimo usando

Algoritmos Genéticos

Nombres:

Miguel Benalcázar Xavier Falconí

Mauricio Vinueza

21/05/2012

Diseño de un controlador PI óptimo para el proceso Multitank

Page 2: Algoritmos Genéticos

Tema: Diseño de un controlador PI óptimo usando Algoritmos Genéticos Resultados de Aprendizaje Los algoritmos genéticos son relativamente fáciles por su sencillez, ya que su espacio de búsqueda no necesita de mucha información pues trabaja mediante individuos que a su vez forman la población. Su principal aplicación es en optimización de funciones puesto que sus áreas de estudio pueden abarcar grandes extensiones. Dando solución de forma de búsqueda por aproximación de la población mediante la utilización de los índices de desempeño o de costo como los más utilizados.

Descripción del Problema Se quiere controlar el nivel de un tanque usando un Controlador PI mediante la realización de algoritmos genéticos, incluida su implementación en Simulink y desempeño. Marco Teórico

ALGORITMOS GENÉTICOS

Los Algoritmos Genéticos son métodos basados en el principio de selección natural para resolver problemas de optimización “complicados” A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la selección natural y la supervivencia de los más fuertes. Es decir, los algoritmos genéticos tienden a trabajar en un principio con un número determinado de individuos y estos en sí formar una población, cada uno de estos individuos representa una solución al problema dado. Esto se debe a que cada individuo posee un valor. Cuando mayor sea la adaptabilidad del individuo al problema, mayor será la probabilidad de que este sea seleccionado para la reproducción y con esto generar una nueva población. Esta nueva población estará compuesta por cualidades de los padres (comparten material genético de ambos). De esta manera se produce una nueva población de diferentes posibles soluciones, la cual remplaza a la población vieja (padres) y verifica la interesante propiedad de que contiene una mayor proporción de buenas características en comparación con la población eliminada. Por lo tanto se tendría que: - Partiendo de una población inicial (soluciones factibles) - Seleccionar individuos (favorecer a los de mayor calidad) - Recombinarlos - Introducir mutaciones en sus descendientes - Insertarlos en la siguiente generación El algoritmo genético se encuentra regido y debe ser evaluado por:

Page 3: Algoritmos Genéticos

Índice de calidad

Índice de desempeño

Índice de adaptación

Índice de costo Procedimiento

clear all; pob=rand(6,2); %Creación de la población de forma aleatoria C1=5.66*10^-5; %Datos multitank Alfa1=0.29; %Datos multitank a=25e-2; %Datos multitank w=3.5e-2; %Datos multitank H0(1)=18e-2; %Datos multitank tam=length(pob)%Se obtiene el tamaño de la población sumdecem=0; %Inicialización de variables acumpor=0; %Inicialización de variables

for i=1:1:tam ki=pob(i,1); %Asignación de valores de población a

variable ki kp=pob(i,2); %Asignación de valores de población a

variable kp sim('tanq_PI',60); %Simulación bloque simulink tiempo 60seg decem(i)=1/costo; %Se obtiene el desempeño sumdecem=decem(i)+sumdecem; %Acumulador del desempeño

end

for i=1:1:tam por(i)=decem(i)/sumdecem; %Desempeño ponderado acumpor=por(i)+acumpor; %Acumulador del desempeño ponderado fron(i)=acumpor; %Obtenemos frontera end

pob=[pob por' fron']; %Visualización de datos (población,

porcentaje, frontera) f=rand(6,1);

for i=1:tam %Selección de nueva población if (i<=1) if(f(i)<fron(i)) newki=pob(i,1); newkp=pob(i,2); end end if (i>1) if(f(i)>fron(i-1) && f(i)<=fron(i)) newki=pob(i,1); newkp=pob(i,2); end if(f(i)>0 && f(i)<=fron(i))

Page 4: Algoritmos Genéticos

newki=pob(i,1); newkp=pob(i,2); end end newpob=[ f(i) newki newkp] %Visualización de nueva población end

Para poder realizar la simulación del código anterior es necesario realizar el siguiente diagrama de bloques en simulink y debe ser almacenado con el nombre de tanq_PI

Fig 1. Modelo Simulink

Análisis de Resultados

Al correr el programa vamos a observar en un principio la creación de individuos, cuya unión se la conoce como población, además de la población se observara el porcentaje y sus fronteras.

Se encuentra en el siguiente orden: ki, kp, %, fronteras

fig 2. Visualización Población

Page 5: Algoritmos Genéticos

Dentro del programa se realizara una selección de varios individuos, esto se realiza comparando los límites de frontera con valores al azar.

En la figura 3. Se puede observar la selección de la población después de haber realizado la ruleta o haber comprado con valores al azar Una vez realizada la selección cargamos los datos de ki, y kp en la simulación realizada en simulink y podemos obtener los resultados del controlador PI aplicada al sistema multitank

fig 3.Selección de Población

Page 6: Algoritmos Genéticos

En la figura 4 se puede observar el comportamiento del sistema aplicando el controlador PI con algún valor de ki y kp seleccionado por la ruleta, en este caso podemos observar que en la parte a del grafico 4 el nivel trata de llegar al SP determinado pero los valores asignados con controlador no son los más óptimos. Bibliografía

- http://di002.edv.uniovi.es/~alguero/eaac/eaac_archivos/09-

10/Trabajos%20para%20evaluaci%C3%B3n/Quintairos/Art%C3%ADculos%20proporcionados/temageneticos.pdf

- http://webdiis.unizar.es/asignaturas/EDA/ea/slides/9-Algoritmos%20geneticos.pdf

fig 4. Respuesta del sistema