CONTROL INTELIGENTE 1 TRABAJO FINAL: APLICACIÓN DE ALGORITMOS DENETICOS CONTROL PID A UN SISTEMA DE SEGUNDO ORDEN CON RETARDO Profesor: Juan Pablo Rivera. OBJETIVO Realizar por medio de los algoritmos genéticos una aplicación al área de Instrumentación y control. INTRODUCCIÓN La necesidad de optimizar una función de costo dada es un problema que se presenta en las más diversas áreas del conocimiento humano, ya que es lógico esperar que al diseñar un equipo o sistema se desee que éste funcione de la mejor forma posible, según algún criterio de calidad previamente establecido. Los Algoritmos Genéticos (AG) son una forma novedosa de atacar el problema de buscar la optimización de funciones, lo cual es una tarea que puede ser complicada en aplicaciones con máximos locales; como en nuestro caso los parámetros de ganancia, constantes derivativas e integrales. PROCEDIMIENTO 1. Se supone que se tiene el siguiente de sistema de control con un controlador PID, en donde se realizó la simulación de este como se observa en la figura 2. x Clock 1 Step To Workspace1 6.3223 s2 +17 .9996 s+12 .8112 s s3 +6s2 +5s Transfer Fcn 1 Transfer Fcn Scope To Workspace y Figura 1 Control PID RESPUESTA DEL SISTEMA CON EL CONTROLADOR PID 1.8 1.6 SP RESPUESTA DEL SISTEMA RESPUESTA DEL SISTEMA 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 5 10 15 TIEMPO Figura 2 REPUESTA ANTE EL PID CLASICO SISEÑO DEL ALGORITMO GENETICO Utilizando el software init_PID.m, se observa la respuesta del mismo sistema ante un controlador PID, solo que esta vez este no es hallado de la manera convencional explicada en la teoría de control clásico, sino que utiliza un algoritmo genético para encontrar los valores ideales de las ganancias Ki, Kp, Kd, que son las ganancias integral, proporcional y derivativa respectivamente. Step Response 1.4 1.2 1 Amplitude 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 Time (sec) 6 7 Figura 3 REPUESTA ANTE EL PID POR AG 8 9 10 Figura 4 VALOR DE LAS GANANCIAS POR AG EN EL TIEMPO Comparando los resultados obtenidos en la respuesta del sistema ante un controlador PID convencional (Figura 2), con la respuesta del mismo ante un controlador PID por AG (Figura 3), se observa que el sistema controlado con el algoritmo genético presenta un menor sobre impulso ante el set point deseado (escalón unitario); además el sistema alcanza su estabilización de manera más rápida lo que hace este sistema mas eficaz y eficiente contra el control tradicional. En la figura 4 se puede observar las ganancias como fueron optimizadas en el tiempo, logrando así el control cuasi-ideal del sistema. 2. Descripción y análisis de los programas: init_PID.m Son definidas variables globales de tiempo y el sistema. Es creada la planta para la cual se va a diseñar el controlador PID, definiendo la función de transferencia. Se procede a iniciar el algoritmo genético creando la población inicial de 80, además se definen los limites de las ganancias en el rango de [ -100 , 100 ] Desde aquí son llamados subprogramas elaborados con anterioridad por los programadores, como lo son initializeaga, evalOps, entre otros. Se realizan los ajustes de los parámetros del algoritmo genético y se comienza a realizar iteraciones hasta con el fin de encontrar las ganancias ideales para el controlador PID. Se genera el control con los parámetros de las ganancias y se plotea la respuesta y se subplotean loa parámetros de las ganancias obtenidos con la ayuda del algoritmo genético. PID_objfun_MSE.m Se definen las variables globales y valores de las ganancias los cuales son mandados desde el programa principal con la variable x_pop. Una vez más se define la función de transferencia del sistema a controlar, además se crea el controlador PID a partir de las ganancias actuales, teniendo en cuenta de que el controlador va en serie con la función de transferencia y hay realimentación unitaria. Se procede a aplicar un estimulo tipo escalón a el sistema ya realimentado, a su vez es calculado el error cuadrático generado por este estimulo, Finalmente con un ciclo IF se valora la estabilidad obtenida por medio de los polos del sistema; una vez se evalué con este ciclo IF se obtiene el valor deseado con la función fx_val gato.m Se evalúa si la función nargin tiene los parámetros suficientes, esto con el fin de obtener un óptimo resultado en el algoritmo genético. Luego de determinar el número de entradas, se comienza a hacer una serie de comparaciones para darle los valores necesarios para elaborar los cruces. Si luego de evaluada, la variable opts está vacía o contiene muy pocos parámetros (< 5), se le asigna un valor con la línea opts = [1e-6 1 0]; Se dan valores a diferentes variables y se comienzan a hacer a hacer la función objetivo, la función de costo y las mutaciones, guardando los resultados de las mismas en otras variables. Utilizamos un ciclo FOR para representa un modelo probabilístico de operadores genéticos con el fin de obtener vectores como: la población final, matriz con los mejores promedios, entre otros. Se obtiene un vector x, que representa la mejor solución al problema. 3. Describa de manera breve qué hacen los programas: maxGenTerm.m Este código hace que el programa retorne un 1 cuando y si se alcanza el número máximo de generaciones a obtener. normGeomSelect.m Es una función de selección, basada en la distribución normalizada de los parámetros. Se encarga de seleccionar una nueva población a partir de la población vigente. Es una función que clasifica los valores en base a la distribución geométrica normalizada, es decir, realiza una interpolación; esto con el fin de seleccionar una nueva población a partir de la ya existente. arithXover.m Esta función elige un padre y una madre para realizar una interpolación a lo largo de los valores tomados por los dos padres para crear las funciones hijas. unifMutation.m Esta función realiza las mutaciones a la población vigente, es decir, cambia uno de los parámetros de alguna de las funciones padres, basada en una probabilidad de distribución uniforme, buscando asi mejorar la siguiente generación. 4. Conclusiones respecto al uso de algoritmos genéticos en aplicaciones de control. ¿Qué otras aplicaciones en el área puede tener el uso de AG´s?. Complementar apreciaciones con una investigación seria en bases de datos adecuadas. A la hora de implementar control PID a un sistema es mucho más eficiente emplear una técnica de control moderno como los algoritmos genéticos, no obstante la gran desventaja que tiene esta técnica es su compleja programación. Los algoritmos genéticos se pueden utilizar en casi todos los problemas de identificación procesos, ya que simulan muy bien cualquier tipo de datos presentados. Pienso que otra aplicación para la que se puede utilizar el matlab es en el diseño de rutas de robots, en la cual encuentren el mejor camino dentro de un laberinto; esto puede considerarse útil a la hora del diseño de robots para la búsqueda de sobrevivientes en desastres tales como terremotos en donde estas maquinas pueden buscar con facilidad en lugares donde ni rescatistas ni animales entrenados pueden. Otra posible aplicación de los algoritmos genéticos es en el Routing: En la elección de rutas de transporte de información, especialmente en telecomunicaciones, en donde si una ruta esta atiborrada de datos, el sistema busca otra ruta más despejada para el envió de información.