Algoritmos Genéticos - Capítulo 12 1 Algoritmos Genéticos – Capítulo 12 Ricardo Linden.
Algoritmos Genéticos
-
Upload
christian-quiroz -
Category
Documents
-
view
5 -
download
0
description
Transcript of 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
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:
Í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))
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
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
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