SciELO - Scientific Electronic Library Online

 
 número34Planificación estática para la transmisión de datos en tiempo real con WSNAnálisis de las debilidades que presentan las Entidades Muy Pequeñas al implementar el estándar ISO/IEC 29110: Una comparativa entre estado del arte y el estado de la práctica índice de autoresíndice de assuntosPesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

Links relacionados

  • Não possue artigos similaresSimilares em SciELO

Compartilhar


RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação

versão impressa ISSN 1646-9895

RISTI  no.34 Porto out. 2019

https://doi.org/10.17013/risti.34.68-84 

ARTÍCULOS

Configuración de un Control de Temperatura en un Sistema Embebido de Bajo Costo, usando Herramientas de Inteligencia Artificial y el Internet de las Cosas

Configuration of a temperature control in a low cost embedded system, using artificial intelligence and the internet of things tools

Carlos Mario Correa Torres1, Jhon Fredy Valencia Gómez1

1Servicio Nacional de Aprendizaje, Diagonal 104 No. 69-120,50002, Medellín, Colombia. cmcorrea@sena.edu.co, jfvalenciag@sena.edu.co


 

RESUMEN

El propósito de este trabajo es la implementación de un controlador difuso en línea, empleando una plataforma del internet de las cosas (IoT), para obtener un conjunto de datos que se procesan, empleando redes neuronales, con el objetivo de obtener un modelo que permita la identificación de la dinámica de un sistema térmico. Se calculan los parámetros de un controlador neuronal con base en el modelo estimado de la planta y posteriormente se transmiten a un sistema en chip (SoC), con el fin de configurar un sistema de control automático fuera de línea.

Palabras-clave: inteligencia artificial; internet de las cosas; sistemas embebidos; control automático.


 

ABSTRACT

The purpose of this paper is to implement an online fuzzy controller using an internet of things (IoT) platform to obtain a data set, that is processed using neural networks in order to build a model that permits to identify the dynamics of a thermal system. The parameters of a neural controller are calculated based on the estimated model of the plant. These parameters are transmitted to a System on a Chip (SoC) in order to configure an automatic offline control system.

Keywords: artificial intelligence; internet of things; embedded systems, automatic control.


 

1. Introducción

La cuarta revolución industrial ha llegado, como cada revolución, producto de la invención e introducción de herramientas tecnológicas que modifican drásticamente los métodos de producción, los empleos, las interacciones sociales y el entorno. En las primeras revoluciones, fueron la máquina de vapor, la energía eléctrica, la informática y automatización, las que impulsaron respectivamente cada una de ellas. Esta cuarta revolución la promueve, no una tecnología específica, sino la sinergia de distintos desarrollos en áreas como biología sintética, fabricación aditiva, internet de las cosas, inteligencia artificial, blockchain, datos masivos, entre otras. La implementación de estas tecnologías y los productos de sus integraciones en entornos industriales, debe ser un tema de análisis prioritario para el desarrollo de la economía del país, tratar de resolver los retos que se presentan en estandarización, confiabilidad de sistemas computacionales, tráfico de datos, demanda energética, implementación de sistemas ciberseguros, costos de actualización tecnológica, entre otros, resulta imperativo si deseamos ser competitivos y tener una industria que satisfaga los requerimientos modernos. También deben considerarse las nuevas oportunidades en creación de productos y servicios soportados en estas, resulta obvio que con las revoluciones industriales desaparecen algunos tipos de trabajos y surgen otros que requieren nuevos conocimientos (Schwab, 2017), además de un alto componente de creatividad e innovación. El propósito de este trabajo es evidenciar que la aplicación de herramientas de la inteligencia artificial y el internet de las cosas en contextos industriales traerá beneficios en el desarrollo de procesos con sistemas más eficientes y con capacidad de autogestión.

2. Marco Teórico

Las técnicas de Inteligencia Artificial (IA) buscan básicamente que algoritmos informáticos emulen la observación, el entendimiento y el razonamiento humano. Por ejemplo, cuando intentamos describir muchos de los fenómenos de la naturaleza percibimos que la incertidumbre, la ambigüedad y la subjetividad hacen parte fundamental de nuestra representación y comprensión del mundo, podemos notar que algunos sistemas pueden ser definidos de manera más sencilla a partir de descripciones meramente cualitativas. Existe también, un gran conocimiento que a través de años de observación y experimentación han adquirido operadores humanos en sistemas industriales, que solo puede expresarse verbalmente, información que sería deseable ser interpretada y almacenada para su réplica. En el contexto anterior ha surgido como una solución de la representación y matematización de esta información, la lógica difusa.

2.1. Lógica Difusa

La lógica difusa tiene como base los denominados conjuntos difusos, que asumen valores de pertenencia en el intervalo [0 1]. A diferencia de la lógica clásica donde la pertenencia es exclusivamente 1 o 0, pertenece o no pertenece y en donde los enunciados solo pueden ser verdaderos o falsos. Un conjunto difuso A, se caracteriza por una función de pertenencia A: ? X?[0, 1], donde A denota tanto al conjunto como la función de pertenencia asociada. En 1965, Lofti A. Zadeh propuso el álgebra para la operación de estos conjuntos (Zadeh, 1965), y diferentes representaciones han hecho uso de esta, como, por ejemplo, los sistemas difusos Mamdani (Mamdani & Assilian, 1975), con variables lingüísticas de entrada y salida, que poseen sistemas de inferencia basados en reglas de la forma SI antecedente, ENTONCES consecuente, cuyo fin es obtener conclusiones de las variables lingüísticas de salida, a partir de los actuales valores de las variables de entrada. En los últimos años se han desarrollado un gran número de aplicaciones principalmente en sistemas de control automático, que se construyen a partir de reglas semánticas y el conocimiento experto (Olufunke, Charles, Charles, Abraham, & Snasel, 2013) (Bazmara & Donighi, 2014).

2.2. Redes Neuronales

De la inspiración de los procesos biológicos ocurridos en el sistema nervioso central, donde una neurona, recibiendo a través de sus dendritas impulsos nerviosos, procesados luego por el cuerpo principal y transmitidos por medio de la sinapsis a otras neuronas en una estructura inmensa de conexiones e información, las redes neuronales artificiales buscan procesar información en estructuras similares, para conseguir así, un tipo de asociación y aprendizaje artificial. En la red neuronal artificial, cada neurona se alimenta de entradas que a través de una función, obtienen una salida, producto de una suma ponderada de sus entradas, pueden obtenerse también relaciones no lineales, con el uso de la llamada función de activación, a cada entrada corresponde un factor de ponderación que influye en la participación de esta en el cálculo del valor de salida, a este valor se le conoce como peso, el proceso de entrenamiento consiste en ajustar estos pesos para que la salida calculada se aproxime al valor de una salida esperada. En sus inicios las redes neuronales básicamente se usaban para clasificaciones simples, más sin embargo el desarrollo de algoritmos y estrategias de optimización (Rumelhart, Hinton, & Williams, 1986) (Rumelhart, Hinton, McClelland, 1986) han conseguido hacerlas aplicables a múltiples procesos tales como: reconocimiento de patrones, identificación de sistemas, entre otros (Bevilacqua, Cerrone-Szakal & Siegfried, 2007).

2.3. Internet de las Cosas

La miniaturización de los circuitos electrónicos y el desarrollo de sistemas embebidos, ha permitido que tecnologías de procesamiento digital y comunicación en Sistemas en Chips (SoCs) pueden integrarse prácticamente a cualquier objeto, sus grandes volúmenes de producción y la competencia entre grandes empresas que quieren participar del rentable y prometedor negocio, ha generado una reducción considerable en el costo de estos dispositivos, logrando así, que se puedan desarrollar prototipos con inversiones mínimas de dinero. Herramientas de software de código abierto, una comunidad enorme de desarrolladores trabajando colaborativamente también han promovido la facilidad, simplicidad en el desarrollo de aplicaciones y servicios soportados en estas tecnologías. Lo anterior ha brindado las bases para lo que conocemos como el internet de las cosas (IoT). El IoT desarrolla la idea de sensores, actuadores, máquinas, electrodomésticos etc. inmersos en redes, que permiten además de su interconexión, la presentación y el análisis de datos. Estos dispositivos encuentran aplicación en diversas áreas cuando intercambian información en servicios públicos, transporte, equipos biomédicos, inmótica, domótica, industria automovilística, entre otras (Lee & Lee, 2015) (Ning & Hu, 2012) (Gubbi, Buyya, Marusic, & Palaniswami, 2013), el verdadero potencial del IoT se evidenciará en un escenario donde máquinas y objetos a través de conexiones generen productos o servicios de forma autónoma.

3. Desarrollo de la Implementación del Sistema

La teoría del control clásico a través de ecuaciones diferenciales y el análisis en la frecuencia, ha permitido la identificación de sistemas dinámicos y el desarrollo de estrategias de control, principalmente en sistemas lineales e invariantes en el tiempo (LTI), de una entrada y una salida (SISO). La teoría de control moderna por su parte ha permitido el análisis de sistemas más complejos; sistemas de múltiples entradas y múltiples salidas (MIMO), inclusive variantes en el tiempo. Una de las técnicas de este análisis es la representación de sistemas dinámicos por el espacio de estados, en este, un sistema dinámico pude definirse de forma matricial a través de sus entradas, las variables de estado y sus salidas (Narendra & Parthasarathy, 1990) donde:

 

 

Como el propósito es implementar el sistema en tiempo real, se propone usar inicialmente un controlador difuso en línea, que en tanto se encuentra conectada la planta satisfaga las necesidades de control y a su vez pueda generar variabilidad en los datos de entrada, para que estos, en conjunto con sus salidas correspondientes, proporcionen la información necesaria para el entrenamiento de la red neuronal y con esto, la identificación del sistema. Una vez realizada la identificación del sistema térmico, se define a partir del modelo estimado de la planta, un controlador, que se implementa en el sistema embebido, para evitar la necesidad de conexión a la red. A continuación, se presenta el controlador difuso y la red neuronal para la identificación de la planta que se usaron, para luego mostrar le estructura del sistema de control.

 

 

3.1. Controlador Difuso

Para el controlador difuso se utiliza un sistema difuso tipo Mamdani, se define el Error como variable lingüística de entrada, el error resulta de la diferencia entre el valor deseado o setpoint y el valor actual de temperatura, este se compone de cuatro conjuntos o valores difusos: Negativo Grande, Negativo Mediano, Negativo pequeño y Positivo. Se definieron funciones de pertenencia triangulares para el error, en el intervalo [-70 10], el rango del error se define partiendo de una temperatura ambiente y un setpoint para entrenamiento de 60 grados, los rangos para cada función de pertenencia triangular se definieron subjetivamente. Como variable lingüística de salida se define la Potencia, con cuatro conjuntos o valores difusos; Potencia grande, Potencia media, Potencia pequeña y Potencia cero, en un intervalo [0 100], se definieron 3 funciones triangulares en intervalos subjetivos sin traslapamiento y una función singleton que se definió para el caso de salida de una potencia cero, se buscó que el sistema tuviese una respuesta aproximadamente proporcional o tipo rampa como puede apreciarse en la Figura 2. La simplicidad y generalidad de este sistema se plantea con el propósito de que pueda ser usado en cualquier otro sistema dinámico lineal, las variables, sus correspondientes conjuntos difusos y rangos se muestran en la Figura 2. Para la implementación de este sistema de inferencia difusa se utilizó el software LabVIEW y su herramienta para el desarrollo de sistemas difusos Fuzzy System Designer perteneciente a la versión 2018. La Figura 2 muestra la ventana de evaluación del controlador difuso propuesto. Para la operación del sistema de inferencia se definieron 4 reglas:

1. Si el Error es negativo grande entonces la potencia es potencia grande.

2. Si el Error es negativo mediano entonces la potencia es potencia media.

3. Si el Error es negativo pequeño entonces la potencia es potencia pequeña.

4. Si el Error es positivo entonces la potencia es potencia cero.

 

 

Cabe notar que sistemas más robustos pueden ser implementados, con mayor número de variables, conjuntos y reglas de inferencia, pueden también definirse otros apoyados en el conocimiento experto.

3.2. Red Neuronal propuesta para la identificación

Para la identificación del sistema, como se mencionó anteriormente, se propone el uso de redes neuronales, en específico el uso de un perceptrón simple (Torrubia, 2010), que pueda predecir la salida de la planta a partir de datos de entradas-salidas previos, la estructura del perceptrón propuesto se muestra en la Figura 3.

 

 

 

3.3. Controlador Neuronal

El propósito de un controlador es suministrar, a través de una variable manipulada, una entrada en la planta, que produzca que la variable controlada alcance un valor de referencia o setpoint. Una vez identificada la planta con el modelo que se describe en la ecuación 10, podemos calcular a partir de esta, una acción de control, despejando el valor de u(k), luego dividiendo por su correspondiente coeficiente o peso wn+1, y reemplazando el valor y(k+1) por el valor de referencia (Torrubia, 2010):

 

 

Se debe satisfacer que wn+1 > 0.1. para la convergencia del modelo. Para el entrenamiento de la red neuronal se utilizó el software Matlab versión 2018a y su herramienta para el trabajo con redes neuronales, utilizando el 80% de los datos para entrenamiento y el 20% para validación, con datos tomados en tiempo real, tanto de la salida de la planta, como del controlador, como se explicó en la sección 2.2. Durante el proceso de evaluación del controlador se entrenó la red varias veces usando sesgo o bias diferente de cero, y se observó que su valor fue siempre cercano a cero, como se evidencia en la ecuación 5, que muestra la dependencia del valor futuro principalmente de la suma ponderada de los valores previos de entradasalida, sin termino adicional, por lo anterior en las simulaciones posteriores se consideró eliminar el sesgo.

3.4. Funcionamiento del Sistema

El funcionamiento del sistema se describe en los siguientes pasos:

1. Una vez establecida la conexión, el microcontrolador en el sistema térmico transmite el valor actual de temperatura.

2. El controlador difuso en LabVIEW, basado en la temperatura recibida del microcontrolador y en sus reglas de inferencia, calcula la potencia y transmite esta al microcontrolador.

3. Paralelamente a los pasos 1 y 2 los datos de temperatura y potencia son recibidos por Matlab para usarse en el entrenamiento de la red neuronal.

4. Una vez son alcanzados la cantidad de datos determinados (data set) se inicia el proceso de entrenamiento y se evalúa el desempeño usando 13, se debe satisfacer que (mse<1.0)ywn+1 > 0.1, si estos criterios no se satisfacen, la acción de control sigue siendo calculada por el controlador difuso.

5. Si los criterios se cumplen, el vector w' que contiene los coeficientes calculados de la red neuronal para el controlador, es transmitido al SoC, este ignora ahora la potencia transmitida desde el controlador difuso y comienza a trabajar sin conexión.

6. El SoC calcula la potencia necesaria usando el vector w', el vector z y la ecuación 13, el vector z es actualizado en cada instante de muestreo para el próximo cálculo de la potencia (Figura 4).

 

 

7. Los coeficientes son guardados en la memoria EEPROM del microcontrolador para que permanezcan, inclusive, el sistema se desconecte de la red eléctrica.

La transmisión y recepción de estos datos esta soportada en herramientas del IoT, específicamente, en el protocolo Message Queuing Telemetry Transport (MQTT) y el formato Java Script Object Notation (JSON). MQTT es un protocolo Machine To Machine, usado ampliamente en el IoT, usa un modelo, publicar - suscribirse, donde básicamente los datos que se transmiten o publican pueden ser recibidos por cualquier dispositivo en la red que se suscriba a estos, esta característica permite compartir información paralelamente de forma eficiente. La intermediación de estos datos se consigue a través de un Broker que se encarga de la gestión de transporte, la topología implementada se muestra en la Figura 5.

 

 

Otra herramienta en la que se apoya este trabajo es el Node Red, entorno de trabajo que permite la programación basada en flujogramas, además de integrar el Broker para la gestión de transporte de datos, permite realizar la depuración de estos, y también su presentación usando el dashboard, esta herramienta se usó para visualizar las respuestas de los controladores. Node Red fue instalado en un computador portátil haciendo la función de servidor, con el software LabVIEW y Matlab, configurando en ellos la comunicación con el protocolo MQTT, para la implementación del sistema. El SoC que se utiliza es el Node MCU de la empresa Espressif, dispositivo de muy bajo costo, que integra un Procesador dual Tensilica de 32 bits, de doble núcleo a 240MHz y una interfaz WI-FI con Protocolo 802.11 b/g/n. Este microcontrolador a través del modulador de ancho de pulso (PWM) controla la potencia a través de un relevador de estado sólido que está conectado a la resistencia eléctrica del sistema térmico, la potencia calculada se encuentra limitada en el intervalo [0 100], en el sistema se integró una pantalla táctil para la visualización local de la temperatura y reconfiguración del punto de referencia. La Figura 6 muestra su implementación.

 

 

4. Resultados

Se implementó en el sistema térmico de prueba, para tener una referencia, un controlador Maxthermo MC5438, usando el algoritmo Proporcional Integral Derivativo (PID), con la función de autoajuste y se estableció como referencia 58 °C, la respuesta del controlador se muestra en la Figura 7.

 

 

A continuación, en la Figura 8, se presentan los resultados obtenidos de la implementación del sistema de control difuso en línea con un setpoint de 60 °C, sin la aplicación de la red neuronal para la identificación.

 

 

Posteriormente se implementó el sistema completo. La Figura 9 presenta la respuesta del controlador, primero usando el controlador difuso en línea para la identificación del sistema y luego el controlador neuronal propuesto funcionando en el sistema embebido desconectado de la red. El tiempo de entrenamiento fue de 72.64 segundos, luego de haber tomado los datos para su entrenamiento.

 

 

Se modificó luego del establecimiento del punto de referencia de 60°C a un valor de 70°C, para verificar su funcionamiento con un valor distinto al de su entrenamiento. La Figura 10 muestra el desempeño del controlador.

 

 

Las figura 11 y 12 muestran otros resultados obtenidos de la implementación del sistema completo con sus respectivos valores de mse obtenidos.

 

 

 

Con el objetivo de evaluar la robustez del controlador, este fue sometido a dos perturbaciones. Luego de haber llegado al punto de referencia 60° C y estabilizarse, fue introducido un flujo de aire frio constante a las 6:29 P.M, una vez el controlador consigue volver al punto de referencia 6:41 P.M, desde otra zona del horno se introduce otra corriente de aire a las 6:43 P.M como puede observarse en la Figura 13.

 

 

5. Conclusiones

Puede observarse que el desempeño del controlador difuso (Figura 8) es aceptable, aun siendo diseñado a partir de información verbal muy general, tiene un menor tiempo de establecimiento que el controlador Maxthermo (Figura 7), aunque presenta una oscilación leve y permanente alrededor del setpoint, también demanda una constante conexión para su operación. Cabe notar que el objetivo de este es suministrar variabilidad en los datos para alimentar el perceptrón manteniendo la planta controlada en tanto este es entrenado. Se espera que este controlador funcione solo en la etapa inicial. Por otra parte, el desempeño del controlador neuronal trabajando en desconexión con el modelo de la planta presenta un buen desempeño (Figura 9,11,12), su tiempo de establecimiento es menor que el de controlador Maxthermo, esto inherente al proceso de autoajuste ejecutado por el Maxthermo. El controlador presenta una oscilación aún más leve que el controlador difuso, el tiempo de conexión es bajo y además no demanda de ninguna intervención en aspectos como programación o configuración, el controlador también muestra que funciona, luego de configurado para otros valores de referencia (Figura 10). La Figura 13 evidencia que se comporta bien frente a perturbaciones ya que es capaz aun siendo estas permanentes, regresar al punto de referencia.

La implementación de este sistema estaría en capacidad de configurar un controlador para cualquier sistema térmico ya que se logra a través de la información obtenida de sus entradas y salidas, este puede ser monitoreado en línea bajo demanda eliminando así el uso de interfaces hombre máquina, logrando una más efectiva gestión de la información del proceso y una menor necesidad de tiempo de conexión, todo esto soportado en un hardware de bajo costo. Implementar este sistema en la nube es posible usando herramientas ya disponibles, bibliotecas para machine learning, lógica difusa y manejo de protocolos para el IoT como el MQTT que son gratuitas y de uso libre.

 

REFERÊNCIAS

Bazmara, A., & Donighi, S. S. (2014). Bank customer credit scoring by using fuzzy expert system. International Journal of Intelligent Systems and Applications, 6(11), 29-35. doi: 10.5815/ijisa.2014.11.04 .         [ Links ]

Bevilacqua, P. C., Cerrone-Szakal, A., & Siegfried, N. A. (2007). Insight into the functional versatility of RNA through model-making with applications to data fitting. Quarterly Reviews of Biophysics, 40(1), 55-85. doi: https://doi.org/10.1017/S0033583507004593         [ Links ]

Gubbi, J., Buyya, R., Marusic, S., & Palaniswami, M. (2013). Internet of Things (IoT): A vision, architectural elements, and future directions. Future Generation Computer Systems, 29(7), 1645-1660. doi: https://doi.org/10.1016/j.future.2013.01.010         [ Links ]

Lee, I., & Lee, K. (2015). The Internet of Things (IoT): Applications, Investments, and Challenges for Enterprises. Business horizon, 58(4), 431-440. doi: https://doi.org/10.1016/j.bushor.2015.03.008         [ Links ]

Mamdani, E.H., & Assilian, S. (1975). An experiment in linguistic synthesis with a fuzzy logic controller. International Journal of Man-Machine Studies, 7(1), 1-13. doi: https://doi.org/10.1016/S0020-7373(75)80002-2         [ Links ]

Narendra, K. S., & Parthasarathy, K. (1990). Identification and control of dynamical systems using neural networks. IEEE Transactions on Neural Networks, 1(1), 4-27. doi:10.1109/72.80202         [ Links ]

Ning, H., & Hu, S. (2012). Technology classification, industry, and education for Future Internet of Things. International Journal Communication Systems, 25(9), 1230-1241. doi: 10.1002/dac.2373         [ Links ]

Olufunke, O.O., Charles, U.O., Charles, A.K., Abraham, A., & Snasel, V. (2013). A fuzzymining approach for solving rule based expert system unwieldiness in medical domain. Neural Network World, 23(5), 435-450. doi: http://www.nnw.cz/doi/2013/NNW.2013.23.027.pdf         [ Links ]

Rumelhart, D.E., Hinton, G.E., & McClelland, J.L. (1986). A general framework for parallel distributed processing. In D.E. Rumelhart, J.L. McClelland, & the PDP Research Group (Eds.), Parallel distributed processing: Explorations in the microstructure of cognition: Vol. 1. Foundations (pp.4576). Cambridge, MA: MIT Press.

Rumelhart, D.E., Hinton, G., & Williams, R. (1986). Learning Representations by BackPropagation Errors. Nature, 323, 533-536. doi: https://doi.org/10.1038/323533a0         [ Links ]

Schwab, K. (2017). The Fourth Industrial Revolution. New York: Crown Business.         [ Links ]

Torrubia, S. (2010). Redes Neuronales Multimodelo Aplicadas al Control de Sistemas. (Tesis de maestría). Universidad Autónoma de Barcelona, España. Recuperado de https://ddd.uab.cat/pub/trerecpro/2013/hdl_2072_207064/TorrubiaCaravacaSergioR-ETISa2009-10.pdf

Zadeh, L.A., (1965). Fuzzy sets. Information and Control, 8(3), 338-353. doi: https://doi.org/10.1016/S0019-9958(65)90241-X         [ Links ]

 

Recebido/Submission: 09/08/2019

Aceitação/Acceptance: 01/09/2019

Creative Commons License Todo o conteúdo deste periódico, exceto onde está identificado, está licenciado sob uma Licença Creative Commons