Вы находитесь на странице: 1из 3

Algoritmo genético simple aplicado al control

Camilo López Mesa, Mateo Mejía Herrera.

Instituto Tecnológico Metropolitano


Medellín, Colombia

camilolopez205157@correo.itm.edu.co
mateomejia199756@correo.itm.edu.co

1 INTRODUCCIÓN

Los algoritmos genéticos son métodos adaptativos basados en la


reproducción sexual y en el principio de supervivencia del más
apto, estos siguen una serie de pasos para dar solución a un
problema. A menudo son utilizados para la optimización de
parámetros, y la resolución de problemas complejos. En este
proyecto se desarrolló en MATLAB un algoritmo genético para
la optimización de las constantes de un controlador PID, aplicado
un motor d-c para controlar su velocidad. Además, se utilizó el
comando GA del toolbox de Global Optimization para Figura 1. Diagrama respuesta al escalón de la planta
compararlo con el algoritmo genético desarrollado y las variables
controlada.
obtenidas como ideales por medio del comando pidtuner.

2 OBJETIVOS

 Crear un marco comparativo de las constantes PID


obtenidas del algoritmo genético, el toolbox GA y el
pidtuner Figura 2. Valor de la constante proporcional, integral y
 Explorar los principios para la elaboración de un
derivativa del control PID.
algoritmo genético, como la selección por torneo,
operador de cruce, copia y mutación.

3 METODOLOGÍA

Para el desarrollo del código fue necesario establecer una


planta y aplicar un control PID en este caso la planta es un
motor d-c TGP01D-A130 para realizar un control de
velocidad.
1423
𝐺𝑠 = 2 Figura 3. Rendimiento del control.
𝑠 + 6.877𝑠 + 43.78
La anterior ecuación describe el comportamiento de la
planta. 3.2 Algoritmo Genético
Se tuvieron en cuenta los resultados anteriores con el fin
3.1 Pidtuner de mejorar el comportamiento de la planta. Por ello fueron
A continuación, se muestra la respuesta y el seleccionadas cuatro variables de interés y se establecieron
comportamiento de la planta usando los valores pid valores que cumplieran dicho objetivo.
obtenidos con el pidtuner.
Tiempo de estabilización: 0.5 seg
Sobre impulso: 1%
Tiempo de subida: 0.1 seg
Estable: TRUE
El algoritmo genético se desarrolló mediante
programación modular, las 6 funciones que componen el
algoritmo son:

3.2.1 Función Gpoblacion


En esta función se crea una población de 100 individuos con tres
cromosomas que varían aleatoriamente entre 0 y 1.
Después de mil generaciones se obtuvo un error de 1.2125, con
el transcurso de más generaciones se obtendrá mejores
3.2.2 Función fitness resultados, lo que implica mejor procesamiento computacional.
Se evalúa la respuesta de la planta a cada individuo comparando
sus características con las propuestas en la sección 3.2

Si al evaluar la estabilidad de la planta esta resulta ser inestable


se penaliza el fitness del individuo con un valor de 1000, para
posteriormente remplazarlos por nuevos individuos, esto asegura
que todos los individuos sean estables.

3.2.3 Función elite


Esta función retorna elite1 y elite2 los dos mejores individuos o Figura 4. Control de la velocidad de un motor dc, utilizando el
con menor fitness que son enviados a la siguiente generación. toolbox de Matlab.
3.2.4 Función torneo
Para la selección del primer padre se escogen dos individuos
aleatorios de la población, teniendo la precaución de no elegir los
individuos de la elite. Los individuos seleccionados compiten en
un torneo donde se evalúan sus cromosomas y el mejor individuo
será el primer padre. El segundo padre se escoge de forma
aleatoria teniendo la misma precaución de la elite.
3.2.5 Función cruce
Se crea un número aleatorio en 0-1 si el numero está en el rango
de 0-0.9 se procede hacer la función de cruce de otro modo los
padres serán copiados y enviados a la próxima generación.
En esta función se intercambian los cromosomas y-z ente los dos
individuos, esto con el fin de obtener mayor diversidad en la Se observa que el control de velocidad del motor dc mediante el
población. toolbox de Matlab se acerca significativamente a la respuesta
3.2.6 Función mutación esperada.
Antes de enviar los hijos cruzados a la próxima generación, se
crea un número aleatorio en 0-1 que representa la probabilidad de 4.2 Algoritmo Genético
cruce, si el número está en el rango de 0-0.3 se procede a mutar Desde las primeras generaciones se observa individuos que se
uno de los cromosomas del hijo con el peor fitness.
acercan a la respuesta esperada, al pasar 1401 generaciones se
obtiene un individuo con fitness de 1.4848.

4 RESULTADOS

4.1 toolbox GA
Con el comando GA del toolbox de Matlab Global Optimization
se obtuvieron los siguientes resultados:
Figura 5. Respuesta de la planta con las constantes obtenidas con
el algoritmo genético
Pidtuner GA Algoritmo
toolbox genético

Tiempo de 0.5 s 0.4997 s 0.5522 s


estabilización
Sobre impulso 1% 1.7948% 2.8802%

Tiempo de subida 0.1 s 0.18s 0.0198 s

Estable TRUE TRUE TRUE

Fitness 0 1.2125 1.4848

Tabla 1. Comparación de resultados obtenidos.

5 CONCLUSIONES

 El comando GA de Matlab presenta mejor respuesta en


menor tiempo que el algoritmo genético desarrollado,
lo que evidencia la robustez y eficiencia del toolbox de
Matlab.
 Los algoritmos genéticos necesitan una alta capacidad
de procesamiento, esta razón hace que en ocasiones el
proceso de encontrar la respuesta sea lento.
 Los individuos deben de cumplir con la constante
proporcional, integral y derivativa, acercarse al tiempo
de estabilización, tiempo de subida y al sobre impulso.
Con esto verificamos que en realidad cumpla con las
condiciones que se esperan como respuesta de la planta
 Se debe realizar el cálculo del fitness teniendo en
cuenta características determinantes de la respuesta,
esto permite darle versatilidad a el algoritmo y moldear
la respuesta que estamos buscando.
 En el toolbox se alcanza el criterio de tiempo de
estabilización con 0.49997s, mejor que el tiempo
esperado, mientras que el sobre impulso y tiempo de
subida se acercan al objetivo, pero no logran cumplirlo.
 La respuesta del algoritmo genético se acerca mucho en
el tiempo de estabilización (0.522s) y overshoot
(2.8802%) a los deseados además cumple muy bien el
criterio de tiempo de subida superando por mucho a el
obtenido en el GA con un tiempo de 0.0198s.
 Es posible que el comportamiento del GA sea mejor
debido a que se utilizo un porcentaje de mutación más
alto.

6 REFERENCIAS

. https://es.mathworks.com/discovery/genetic-algorithm.html

http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/temagenet
icos.pdf

Вам также может понравиться