Skip to content

A0. MLC Foundations (Español)

Marco-GG edited this page Aug 12, 2017 · 3 revisions

Control a Lazo Cerrado optimizado a través de Función de Costo

La teoría de control clásica categoriza los sistemas de control en Open-Loop Control Systems y Closed-Loop Control Systems \cite{Ogata2002}. Se definen los mismos a continuación:

  • Open-Loop Control Systems: Son aquellos sistemas en donde la salida del sistema no es comparada contra una referencia de entrada. Estos sistemas funcionan a base de calibración. Ejemplos de los mismos puede son pavas eléctricas, balanzas, etc.. Un esquema de este modelo es mostrado en la Figura N°1.
  • Closed-Loop Control Systems: También llamados sistemas retroalimentados (Feedback Control Systems). Esta clase de sistema compara la salida retroalimentada contra una referencia de entrada, obteniendo así una función de error. La señal retroalimentada (feedback signal) puede ser la salida del sistema o bien una función derivada de la misma. La función de error es utilizada para especificar la actuación a ingresar en el sistema físico. Ejemplos de los mismos son el sistema de frenos ABS o la termorregulación corporal, entre otros. Un esquema de este modelo es mostrado en la Figura N°2.
Open Loop Control System
Figure N°1: Open Loop Control System

Architecture

MLC es un framework utilizado para descubrir leyes de control. Tiene como fin generar modelos de sistemas de forma automática, los cuales llamaremos controladores, a través de información de la calidad de la solución generada. Esta información es procesada a través de métodos basados en Machine Learning, los cuales están diseñados para buscar nuevos controladores dentro del espacio de soluciones existente. La arquitectura básica del mismo se exhibe en la figura 4.

MLC Architecture

En la figura 3 se puede observar como la ley de control es reemplazada por el MLC, el cual recibe como entrada los valores sensados s y un costo asociado a la ley de control, resultante de la aplicación de la función de costo J ante la salida del sistema físico excitado. En función de estas muestras, MLC genera una nueva ley de control con el objetivo de minimizar/maximizar el resultado de la evaluación de la función de costo J.

La función de costo debe ser definida por el usuario del MLC. La misma debe adecuarse al tipo de problema que se desea resolver. Se puede pensar como ejemplo la estabilización de un flujo turbulento: se puede considerar que el sistema converge si la velocidad del mismo en diferentes puntos es semejante (deja de ser turbulento para pasar a ser laminar). Una función de costo válida en este contexto sería aquella que arroje un número que tienda a cero en cuanto las velocidades tienden a ser homogéneas.

Machine Learning and Genetic Programming

Machine Learning es una subrama de las ciencias de la computación basada en las campos de Pattern Recognition y Computational Learning Theory. La misma es utilizada, entre otros usos, para identificar sistemas dentro de un espacio de soluciones de alta dimensionalidad (high dimensional search space) a través de técnicas de aprendizaje. Existe una gran cantidad de técnicas a utilizar dentro del campo de Machine Learning, tales como Gradient Search o Monte-Carlo Statistical Analysis, pero las mismas poseen como característica principal la obtención de soluciones subóptimas o asociadas con un costo alto cuando el espacio de soluciones es extremadamente grande \cite{Duriez2016}. Es aquí donde entran en juego los algoritmos evolucionarios, los cuales han demostrado ser óptimos a la hora de resolver este tipo de problemas.

La Programación Genética y los Algoritmos Genéticos están basados en la propagación de generaciones de individuos, llamadas poblaciones, los cuales son seleccionados en función del resultado de la evaluación de una función de costo J, también llamada función de fitness. Dicho resultado es conocido como costo o fitness. Un individuo en este ámbito tiene una correspondencia directa con la estructura y parámetros que definen a una ley de control. En la figura 5 se exhibe un diagrama detallado del uso de estos algoritmos dentro de la solución implementada en MLC. Un individuo b = K(s) es evaluado en el sistema dinámico. De dicha evaluación, se obtiene su fitness. Al terminar de evaluar una población entera, MLC genera una nueva población a través del uso de diferentes técnicas de Programación Genética. Este proceso se exhibe en detalle en la sección \ref{sec:law_gen}.

New Control Laws Generation

Un individuo se encuentra modelizado dentro del MLC como un conjunto de funciones y parámetros que poseen la forma de un recursive function tree. Las funciones matemáticas utilizadas son las operaciones suma, resta, multiplicación y división con el agregado de cualquier otro tipo de función, como puede llegar a ser un coseno, una exponencial o una tangente hiperbólica por nombrar algunas. Los nodos hojas poseen constantes o bien parámetros del sistema (por lo general sensores), mientras que los nodos no hoja poseen las funciones matemáticas anteriormente nombradas. La figura 6 muestra la modelización de un individuo. La composición de los individuos a través de trees hacen de los mismos candidatos ideales para ser utilizados como input dentro de algoritmos genéticos.

Individual Tree

Generation of New Control Laws

La primera población de individuos es generada de forma aleatoria en función de los sensores, constantes y funciones matemáticas a disposición y la misma no posee un costo asociado a priori. La población luego es evaluada. Este proceso consiste en tomar muestras de los sensores involucrados en la ley de control y reemplazarlas en la función matemática que define a un individuo. De dicha evaluación se obtiene el fitness asociado a cada individuo. A partir de este punto se procede a evolucionar la población. Dicha evolución se lleva a cabo a través de los siguientes algoritmos \cite{Duriez2016}:

  • Elitismo: Se eligen a los mejores individuos de la población evaluada y se agregan directamente en la próxima generación.
  • Replicación: De forma aleatoria, se eligen algunos individuos de la población evaluada y se hace avanzar a los mismos a la próxima población.
  • Crossover: Se toman a dos individuos que posean un fitness similar y se intercambian de forma aleatoria algunas ramas del recursive tree asociado a cada uno.
  • Mutación: Se modifican de forma aleatoria los parámetros o funciones de ciertos individuos.

Genetic Algorithms

Luego de realizar la evolución de la población se procede nuevamente a evaluar a la misma. A partir de este momento, ese proceso se repite hasta que se llega a algún punto de corte. Por lo general, el punto de corte del algoritmo utilizado por MLC consiste en la cantidad de generaciones evaluadas y evolucionadas hasta el momento. Otro punto de corte que se puede utilizar es haber alcanzado algún fitness deseado en el mejor individuo. En la figura 7 se muestra un diagrama de flujo explicando el proceso de generación de nuevas poblaciones.

Flow Diagram

Clone this wiki locally