scieee AI-readable full text Open interactive document viewer

Predicción basada en datos aplicada a un proceso de laboratorio

García Rosales de Salamanca, Rafael

Abstract

La finalidad de este Trabajo de Fin de Grado ha consistido en el tratamiento de datos que fueron tomados a partir un Sistema de Control de Procesos PT326 de Retroalimentación en el laboratorio del departamento de Ingeniería de Sistemas y Automática de la Escuela Técnica Superior de Ingeniería de la Universidad de Sevilla, y un sistema simulado en MATLAB Simulink de dicho aparato con el que se comprobará la similitud de los resultados. La problemática de este sistema radica en la dificultad que muestra su control si no se apoya en compensadores con retardo. Es por ello por lo que se pretende mostrar como resultado el comportamiento del sistema ante una serie de escalones proporcionados de manera manual alrededor de su punto de funcionamiento. El proyecto se ha dividido en varias secciones. En primer lugar, el tratamiento de los datos del sistema simulado. A su vez, dicha sección se ha subdividido en dos apartados, la toma de datos a temperatura ambiente constante y a temperatura ambiente variable. Y, en segundo lugar, el tratamiento de los datos del sistema real. Una vez realizados todos los experimentos, se procedió a su comparación para ver la precisión de ambas simulaciones y la efectividad del aparato de laboratorio.

Full text

Equation Chapter 1 Section 1 Trabajo Fin de Grado Ingeniería de Tecnologías Industriales Predicción basada en datos aplicada a un proceso de laboratorio Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Autor: Rafael García Rosales de Salamanca Tutores: Daniel Rodríguez Ramírez Alfonso Daniel Carnerero Panduro Sevilla, 2021 III Trabajo Fin de Grado Ingeniería de Tecnologías Industriales Predicción basada en datos aplicada a un proceso de laboratorio Autor: Rafael García Rosales de Salamanca Tutores: Daniel Rodríguez Ramírez Profesor titular Alfonso Daniel Carnerero Panduro Personal de investigación Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2021 V Trabajo Fin de Grado: Predicción basada en datos aplicada a un proceso de laboratorio Autor: Rafael García Rosales de Salamanca Tutores: Daniel Rodríguez Ramírez Alfonso Daniel Carnerero Panduro El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2021 El Secretario del Tribunal VII A mi familia A mis maestros IX Agradecimientos En estas líneas me gustaría expresar mi agradecimiento a Daniel Rodríguez y a Daniel Carnerero por haberme ayudado a hacer posible este Trabajo Fin de Grado. De igual modo, agradezco a todos los profesores que me han impartido clases y me han aportado los conocimientos necesarios para sacar adelante esta carrera. Gracias a mis padres, Emilia y Rafael, a mi hermana, Emi, a mis abuelos, Emilia, Maruja, Paco y Rafael, que han hecho de mí la persona que soy hoy en día y que, de una manera u otra me han ayudado y me han dado las fuerzas y la confianza necesarias para sacar adelante esta carrera. No me quiero olvidar de quien se ha convertido en una persona verdaderamente importante a lo largo de todos estos años. Gracias Carmen por el apoyo incondicional y la paciencia que, sin entender de ingeniería, me has transmitido siempre. Rafael García Rosales de Salamanca Sevilla, 2021 ÍNDICE DE FIGURAS Figura 1. Feedback Process Control Trainer PT326. ....................................................................................... 6 Figura 2. Tarjeta de adquisición de datos NI USB-6211.................................................................................. 6 Figura 3. Archivo de Simulink para los sistemas simulados. .......................................................................... 7 Figura 4. Regulador de la apertura de la rejilla en los sistemas simulados. ................................................... 8 Figura 5. Regulador de la temperatura ambiente y de referencia en los sistemas simulados. ....................... 8 Figura 6. Regulador de los escalones y del valor de referencia de los sistemas simulados. ........................... 8 Figura 7. Archivo de LabVIEW para el sistema real. ....................................................................................... 9 Figura 8. Cableado de la tarjeta NIDAQ. ...................................................................................................... 10 Figura 9. Datos recogidos de entrada y salida del histórico a temperatura constante. ................................ 12 Figura 10. Datos recogidos de salida del histórico a temperatura constante recortados. ............................ 12 Figura 11. Detalle del escalón 1 del histórico a temperatura constante. ..................................................... 13 Figura 12. Detalle del escalón 2 del histórico a temperatura constante. ..................................................... 13 Figura 13. Detalle del escalón 3 del histórico a temperatura constante. ..................................................... 13 Figura 14. Detalle del escalón 4 del histórico a temperatura constante. ..................................................... 13 Figura 15. Detalle del escalón 5 del histórico a temperatura constante. ..................................................... 13 Figura 16. Detalle del escalón 6 del histórico a temperatura constante. ..................................................... 13 Figura 17. Detalle del escalón 7 del histórico a temperatura constante. ..................................................... 14 Figura 18. Detalle del escalón 8 del histórico a temperatura constante. ..................................................... 14 Figura 19. Detalle del escalón 9 del histórico a temperatura constante. ..................................................... 14 Figura 20. Detalle del escalón 10 del histórico a temperatura constante. ................................................... 14 Figura 21. Datos recogidos de entrada y salida experimentales a temperatura constante. ........................ 15 Figura 22. Datos recogidos de salida experimentales a temperatura constante recortados. ....................... 15 Figura 23. Predicción del primer escalón del experimento a temperatura constante.................................. 16 Figura 24. Predicción del segundo escalón del experimento a temperatura constante. .............................. 16 Figura 25. Predicción del tercer escalón del experimento a temperatura constante. .................................. 16 Figura 26. Predicción del cuarto escalón del experimento a temperatura constante. ................................. 17 Figura 27. Predicción del quinto escalón del experimento a temperatura constante. ................................. 17 Figura 28. Datos recogidos de entrada y salida del histórico a temperatura variable. ................................. 19 Figura 29. Datos recogidos de salida del histórico a temperatura variable recortados. ............................... 19 Figura 30. Detalle del escalón 1 del histórico a temperatura variable. ........................................................ 20 Figura 31. Detalle del escalón 2 del histórico a temperatura variable. ........................................................ 20 Figura 32. Detalle del escalón 3 del histórico a temperatura variable. ........................................................ 20 Figura 33. Detalle del escalón 4 del histórico a temperatura variable. ........................................................ 20 Figura 34. Detalle del escalón 5 del histórico a temperatura variable. ........................................................ 21 Figura 35. Detalle del escalón 6 del histórico a temperatura variable. ........................................................ 21 XVII Figura 36. Detalle del escalón 7 del histórico a temperatura variable. ........................................................ 21 Figura 37. Detalle del escalón 8 del histórico a temperatura variable. ........................................................ 21 Figura 38. Detalle del escalón 9 del histórico a temperatura variable. ........................................................ 21 Figura 39. Detalle del escalón 10 del histórico a temperatura variable. ...................................................... 21 Figura 40. Datos recogidos de entrada y salida experimentales a temperatura variable. ........................... 22 Figura 41. Datos recogidos de salida experimentales a temperatura variable recortados. ......................... 22 Figura 42. Predicción del primer escalón del experimento a temperatura variable. ................................... 23 Figura 43. Predicción del segundo escalón del experimento a temperatura variable. ................................. 23 Figura 44. Predicción del tercer escalón del experimento a temperatura variable. ..................................... 23 Figura 45. Predicción del cuarto escalón del experimento a temperatura variable. .................................... 24 Figura 46. Tornillo regulador de la temperatura de referencia para el experimento real. ........................... 26 Figura 47. Datos del histórico del experimento real recogidos de entrada y salida. .................................... 26 Figura 48. Datos de salida del histórico del experimento real recortados. .................................................. 27 Figura 49. Detalle del escalón 1 del histórico del experimento real. ............................................................ 27 Figura 50. Detalle del escalón 2 del histórico del experimento real. ............................................................ 28 Figura 51. Detalle del escalón 3 del histórico del experimento real. ............................................................ 28 Figura 52. Datos reales experimentales recogidos de entrada y salida. ...................................................... 29 Figura 53. Datos reales experimentales recogidos de salida recortados. .................................................... 29 Figura 54. Predicción del primer escalón del experimento real. .................................................................. 30 Figura 55. Predicción del segundo escalón del experimento real. ............................................................... 30 Figura 56. Predicción del tercer escalón del experimento real. ................................................................... 30 Figura 57. Predicción del cuarto escalón del experimento real. .................................................................. 31 Figura 58. Predicción del quinto escalón del experimento real. .................................................................. 31 Notación S. a AT Sujeto a Matriz traspuesta H-1 Inversa de la matriz x+ λk+1 Vector de estados siguiente Instante posterior 1 1 INTRODUCCIÓN 1.1. Sobre el Machine Learning E l análisis predictivo viene cogiendo fuerza desde hace unos años. Esto es debido al auge que está sufriendo la tecnología que estudia el campo de la Inteligencia Artificial, es decir, el Machine Learning, que emplea este tipo de algoritmos para predecir el comportamiento futuro de un conjunto masivo de datos mediante la identificación de patrones. Los datos previamente conocidos, también denominados “histórico de datos”, se emplean para implementar un modelo que permita conocer el comportamiento de un determinado sistema. El área más destacada de este nuevo avance es conocida como Big Data. 1.2. Sobre el proyecto En este Trabajo Fin de Grado se pretende predecir el comportamiento de un sistema calentador de aire de laboratorio y el comportamiento de un sistema simulado. Ambos presentan un retraso mínimo entre el momento en el que se aplica un cambio en la señal de control, es decir, en la temperatura ambiente, y el momento en el que el sistema devuelve la señal de salida. Una vez que se tienen ambos resultados, se pueden estudiar las diferencias que presentan y observar las disimilitudes que muestra el sistema físico real a la hora de predecir los estados. Estos han sido los pasos que se han llevado a cabo en este trabajo para desarrollar el proyecto. La peculiaridad de este proyecto se centra en el enfoque que se le ha dado: no se ha pretendido estudiar el sistema en bucle cerrado, sino abierto. Esta línea de actuación implica que la salida del sistema no provoca ningún efecto sobre la entrada, es decir, el estudio que se ha realizado no ha consistido en tratar el sistema como un aparato calentador de aire convencional en el que, mediante un mando de control, se exige al sistema que expulse aire a una determinada temperatura. Esta acción la lleva a cabo trabajando a una temperatura específica para conocer cuál es su evolución en el “Ya no estamos en la era de la información, estamos en la era de la gestión de la información” - Chris Hardwick - Introducción 2 tiempo. 1.3. Motivación del trabajo La motivación que da vida a este proyecto nace del deseo del estudiante de seguir formándose en la rama de Ingeniería de Sistemas y Automática, y seguir profundizando en los aspectos de Inteligencia Artificial, de Machine Learning y de Big Data puesto que, como se mencionó previamente, son aspectos de la tecnología que se encuentran en continuo crecimiento y su desarrollo es fundamental en el mundo que estamos construyendo. Basándonos en las palabras de Fernando Agudo, profesor del CEUPE: "el Big Data es la capacidad que están adquiriendo las empresas de cara a poder almacenar, tratar y analizar de una manera más económica, rápida y flexible la gran cantidad de datos que se están generando diariamente con el objetivo final de poder tomar decisiones en base a toda esa información". (Agudo, 2018) Supone un paso más en la carrera de llegar a ser un profesional con vocación y deseo de levantar con sus acciones un mundo más justo y sostenible. 3 2 EXPLICACIÓN DEL ALGORITMO Y DEL EXPERIMENTO 2.1. Explicación del algoritmo n cuanto al algoritmo implementado podemos destacar muchos detalles. Para facilitar la comprensión del algoritmo empleado y el trabajo con este, se optó por dividirlo en diferentes partes: 1- Para cada experimento, se ha elaborado un archivo denominado “SimPreparaDatos”. Con este archivo se tratan los datos pertenecientes al histórico con el que se predecirá el comportamiento de los nuevos escalones. En estas líneas de código, los resultados obtenidos directamente de Simulink han sido tratados para eliminar una gran parte de los datos de salida que no aportaban más información de la necesaria. De aquí se obtienen las matrices C y C+. 2- También se ha llevado a cabo el archivo “SimPreparaDatos_experimento”. Su función es idéntica a la del programa anterior, con la diferencia de que se estudian los datos pertenecientes a los nuevos escalones y las matrices que se reciben son C_exp y C_exp+. 3- Por último, se halla el archivo “SimPrediccion”. En este se reciben las cuatro matrices mencionadas anteriormente que contienen los valores de los escalones. Se desarrolló con el fin de mostrar por pantalla una serie de gráficas con las que se pudiesen estudiar las diferencias entre los datos de LabVIEW y los datos obtenidos con dicho archivo mediante un algoritmo basado en la predicción de datos según determinados parámetros, entre ellos, el número de estados anteriores. Cada uno de estos tres archivos tiene una copia, es decir, tres se han usado para el experimento a temperatura constante y los otros tres para el de temperatura variable. 2.2. Explicación del experimento La finalidad de este Trabajo Fin de Grado ha consistido en, mediante un Sistema de Control de Procesos (PT326), observar las diferencias que ocurren entre el aparato en una situación real y en una simulación. El PT326 conlleva por sus características un retardo que transcurre desde que se dan los valores de entrada hasta que recibimos los resultados a la salida del tubo de aire. E “Es necesario tener una buena gestión de la información, tanto a nivel organizativo como a nivel de seguridad, puesto que vamos a almacenar mucha información y mucha de ella siendo información sensible” - Fernando Agudo - Explicación del algoritmo y del experimento 4 El motivo por el que se decidió comparar los resultados entre el aparato real y la simulación es la gran dependencia de la temperatura ambiente que presentan. Al necesitar un periodo largo de tiempo para obtener resultados, estos varían en función del momento del día en el que nos encontremos. Sin embargo, el experimento simulado puede no presentar dicho problema manteniendo constante el valor de la temperatura en Simulink. Como se ha mencionado en el anterior párrafo, el proceso real presenta ciertas dificultades. Para estudiar la evolución del sistema, se ha elegido un punto de funcionamiento y en torno a este se basa este experimento. Para estudiar la evolución del sistema real, se han ido introduciendo cada cierto tiempo escalones con diferentes amplitudes, de manera que la parte que nos ocupa es la vuelta al punto de funcionamiento, debido a que es el momento en que mejor se manifiesta el retraso que presenta nuestro sistema. Una vez obtenidos los valores de salida (obtenidos en LabVIEW), se han pasado a MATLAB para proceder a su tratamiento. Una vez en MATLAB, se han tratado los escalones por separado de manera que se ha ido viendo la diferencia entre los datos arriba mencionados mediante gráficas, también se han podido observar datos predichos con un código implementado en otro archivo, “.m” 1 , de MATLAB. Pasamos ahora a describir la parte del sistema simulado. En este caso, el programa utilizado se nos ha dado ya creado en Simulink. Ajustando los parámetros necesarios, hemos obtenido dos simulaciones distintas: una a temperatura ambiente constante y otra a temperatura ambiente variable. Estas simulaciones se han llevado a cabo siempre con los mismos datos para poder observar la diferencia entre ambas situaciones al mismo tiempo. En cuanto al proceso a temperatura ambiente constante, observamos que los resultados son notablemente más estables que en el sistema real, puesto que en el real la temperatura ambiente iba cambiando y, por lo tanto, no todos los escalones tardaban en retornar al punto de funcionamiento el mismo tiempo, llegando algunos a no alcanzar el valor de referencia 2 . 1 Con esta nomenclatura hacemos referencia a la extensión de los archivos realizados en MATLAB. 2 Además, en el proceso simulado a temperatura constante, se ha comprobado su correcto funcionamiento añadiendo escalones que no pertenecían al dataset original. 5 3 DESCRIPCIÓN DEL EQUIPO UTILIZADO 3.1. Hardware P ara la elaboración de este proyecto, se ha hecho uso de dos aparatos del laboratorio del Departamento de Ingeniería de Sistemas y Automática de la Escuela de Ingenieros de la Universidad de Sevilla. El elemento más importante, y en el que se fundamenta todo este trabajo, es el Feedback Process Control Trainer (PT326), que consiste en un calentador de aire a modo de secador de pelo. El otro elemento de trabajo que se ha utilizado ha sido una tarjeta de adquisición de datos NI USB-6211, cuya función ha sido comunicar el calentador de aire con el ordenador. 3.1.1. Feedback Process Control Trainer El calentador de aire se divide en varias partes que permiten el comportamiento que se espera de dicho aparato. Estas son: 1. Un elemento corrector o rejilla, a través de la cual se introduce el aire que será calentado en la siguiente etapa. Según la apertura que tenga la rejilla, el aire tardará más o menos tiempo en calentarse de manera que, a mayor apertura, mayor cantidad de aire circulará por el tubo, por lo que tardará más tiempo en calentarse y a menor apertura ocurrirá el caso contrario, al entrar menos aire, éste atravesará el tubo más lentamente, lo que provocará un calentamiento mucho más rápido. 2. Un elemento motor. El elemento motor de este equipo es una fuente de alimentación variable cuya salida varía de los 15 a los 80 vatios, según se determine en la señal controladora. 3. Un elemento controlador. Éste apica una señal proporcional a la desviación del elemento controlador, generando una señal que será transmitida al elemento corrector. 4. Un elemento comparador. En el elemento comparador se emplea un amplificador sumador que compara el valor fijado con el valor medido. 5. El tornillo con el que ajustaremos la temperatura ambiente para calibrar el calentador de aire. 6. Por último, el tubo de aire. Una vez que el aire entra por la rejilla, éste pasa al tubo, por el que “Es importante conocer la información con la que estamos trabajando antes de aplicar los algoritmos en la fase analítica” - María Elena García - Descripción del equipo utilizado 6 6 circulará hasta llegar a la salida. A lo largo del tubo se situará el elemento detector. Consiste en un termistor que se encargará de medir la temperatura a la que el aire sale. Se puede colocar tanto al principio como al final del tubo según si se quiere aumentar o disminuir el retraso que presentará el sistema que estamos estudiando. Figura 1. Feedback Process Control Trainer PT326. 3.1.2. Tarjeta de adquisición de datos NI USB-6211 Este aparato consiste en un dispositivo DAQ multifunción. Cuenta con entradas y salidas analógicas, y; entrada y salida digitales. Además, el dispositivo contiene un amplificador integrado para configuraciones rápidas a altas velocidades de escaneado. Figura 2. Tarjeta de adquisición de datos NI USB-6211. 7 Predicción basada en datos aplicada a un proceso de laboratorio 3.2. Software Además de los dispositivos utilizados para el desarrollo del proyecto, se han empleado diferentes softwares para alcanzar el objetivo deseado. Estos son MATLAB y LabVIEW. 3.2.1. MATLAB MATLAB (de la abreviatura MATrix LABoratory) es un software de carácter numérico que se basa en la operaciones mediante matrices con un lenguaje de programación propio. Para el desarrollo del experimento se ha utilizado la versión 2018a. En MATLAB, se ha trabajado con los códigos de obtención y predicción de datos del sistema simulado tanto para temperatura ambiente constante como temperatura ambiente variable, realizando así diferentes archivos “.m”. Además, se ha utilizado la herramienta Simulink de MATLAB. Con Simulink se han obtenido los datos de las diferentes simulaciones del calentador, tanto las pertenecientes al ya mencionado histórico de datos, como los datos que han servido para predecir los estados futuros de los escalones. Figura 3. Archivo de Simulink para los sistemas simulados. El archivo de Simulink utilizado permite cambiar la apertura de la rejilla, la temperatura ambiente, la temperatura de referencia, y la amplitud de los escalones que se van a proporcionar. Experimentos realizados 14 14 Figura 17. Detalle del escalón 7 del histórico a temperatura constante. Figura 18. Detalle del escalón 8 del histórico a temperatura constante. Figura 19. Detalle del escalón 9 del histórico a temperatura constante. Figura 20. Detalle del escalón 10 del histórico a temperatura constante. 4.1.3. Base de datos generada Con el método empleado se consiguió una base de datos experimentales que posteriormente se predecirían. En el caso que nos ocupa, la base de datos consiste en cinco escalones de diferentes amplitudes entre sí y ninguna coincidente con los escalones pertenecientes al histórico. Bien es cierto que el número de escalones experimentales podría haber sido mayor, sin embargo, para evitar alargar demasiado el proyecto se optó por predecir este número de escalones. Estos escalones se han tratado de la misma manera que los primeros, obteniendo las matrices C y C+, y las temperaturas a las que han sido tomados. Una muestra de dichos escalones es la siguiente: 15 Predicción basada en datos aplicada a un proceso de laboratorio Figura 21. Datos recogidos de entrada y salida experimentales a temperatura constante. Figura 22. Datos recogidos de salida experimentales a temperatura constante recortados. 4.1.4. Predicción de los resultados Una vez obtenidos todos los escalones pertenecientes al histórico de datos y los escalones experimentales, todos con sus respectivas matrices y temperaturas, se realizó el problema de optimización que permitía predecir el comportamiento de los escalones experimentales. Dicho problema de optimización consiste en la fórmula: 𝑚𝑖𝑛λ𝑘 λ𝑘 𝑇λ𝑘 S. a: [𝐸 1] * λ𝑘= [𝑥𝑘 1] Tras completar la predicción de cada uno de los escalones, se compararon dichas predicciones con los datos correspondientes a los obtenidos en la simulación. Cabe mencionar que, en estos casos, las predicciones se realizaron teniendo en cuenta tres salidas anteriores, aunque se podrían haber tenido en cuenta desde una hasta diez salidas anteriores, se determinó que con solo tres era más que suficiente para obtener una buena predicción. Las comparaciones de las diferentes predicciones con sus respectivas matrices originales de datos quedaron de la siguiente manera: Experimentos realizados 16 16 Figura 23. Predicción del primer escalón del experimento a temperatura constante. Figura 24. Predicción del segundo escalón del experimento a temperatura constante. Figura 25. Predicción del tercer escalón del experimento a temperatura constante. 17 Predicción basada en datos aplicada a un proceso de laboratorio Figura 26. Predicción del cuarto escalón del experimento a temperatura constante. Figura 27. Predicción del quinto escalón del experimento a temperatura constante. Es preciso observar que las predicciones obtenidas son prácticamente similares, aunque no idénticas a los resultados sacados de las simulaciones, por lo que se podrían considerar buenos los resultados. 4.1.5. Implementación del algoritmo en MATLAB El problema de optimización que se ha planteado puede resolverse, puesto que está sujeto a restricciones de igualdad. Al ser un problema de minimización no es necesario realizar iteraciones, por lo que la solución de cada vector de estados se encuentra de una manera mucho más rápida. La solución del problema del problema de minimización para cada estado se puede hallar de la siguiente manera: Para el problema de optimización 𝑚𝑖𝑛λ𝑘+1 1 2 λ𝑘+1 𝑇𝐻λ𝑘+1 + 𝑓𝑇λ𝑘+1 S. a: C * λk+1 = 𝑏 Donde: H = 2(H1 + H2) Experimentos realizados 18 18 f = -2H1 λ𝑘 b = C+ λ𝑘 Y λk+1 representa la variable a obtener del problema que nos ocupa. Realizando cálculos llegamos a la siguiente situación: λ𝑘+1 =𝐴 ∗ λ𝑘 Donde A = 2H-1 + H-1CT(CH-1CT)-1C+ - 2H-1CT(CH-1CT)-1CH-1 De esta manera, el sistema nuevo estaría formado por: λ𝑘+1 =𝐴 ∗ λ𝑘 x𝑘=𝐷∗ λ𝑘 Con: E = [𝑥1𝑥2... 𝑥𝑁] D = [𝑥1 +𝑥2 +... 𝑥𝑁 +] C = [𝑥1 1𝑥2 1... 1𝑥𝑁 1] C+ = [𝑥1 + 1𝑥2 + 1... 1𝑥𝑁 + 1] 4.2. Experimento simulado a temperatura ambiente variable En este caso, en el ensayo a temperatura ambiente variable realizado también sobre el sistema simulado, la temperatura ambiente se fue cambiando para cada escalón, lo que implica un mayor acercamiento a una situación real. Esta se varió entre los 21oC y los 23oC, aunque la temperatura de referencia sí se mantuvo en 20oC. Además, para poder realizar una buena comparación con el primer experimento, se mantuvo la apertura de la rejilla al 80%. 4.2.1. Características Este nuevo experimento tiene una particularidad con respecto al anterior, aunque las amplitudes de los escalones se han escogido con el mismo criterio, la predicción de los nuevos escalones se antoja más compleja debido a que la temperatura pasa a ser un dato de entrada. En este caso también se comienza recopilando una base de datos amplia a diferentes temperaturas, con la intención de predecir la evolución de las trayectorias. Los puntos más interesantes de conocer sobre este segundo experimento son los siguientes: 1. En primer lugar, el punto de referencia se volvió a situar en 5 V. Al tener una apertura del 80%, 19 Predicción basada en datos aplicada a un proceso de laboratorio la salida vuelve a verse desajustada con respecto a los ejes de los datos de entrada. 2. De nuevo las entradas de los escalones del histórico de datos presentan unas amplitudes en el rango ±3 V, es decir, se tienen datos desde los 2 hasta los 8 V de entrada. La diferencia con el anterior experimento vuelve a radicar en la temperatura ambiente, que ocasiona que la vuelta al punto de funcionamiento de los datos sea de un tamaño mayor. 3. También para este experimento se determinó que con diez escalones sería suficiente para poder predecir el comportamiento de las nuevas trayectorias. 4.2.2. Implementación Los datos recopilados desde la nueva simulación se almacenan en MATLAB. Como en el experimento a temperatura constante, se dibujan los escalones que proporcionan las matrices C y C+. Una vez que se tienen estos datos, se pueden pasar al archivo .m de MATLAB con el que se puede predecir la trayectoria de los datos de salida. En este caso, si se dibuja el conjunto de datos, se puede observar que la principal diferencia con respecto al caso de temperatura constante es, como se menciono previamente, la evolución de la temperatura ambiente a lo largo del experimento. Figura 28. Datos recogidos de entrada y salida del histórico a temperatura variable. Figura 29. Datos recogidos de salida del histórico a temperatura variable recortados. Experimentos realizados 20 20 De la misma manera que antes, las matrices C y C+ son la misma matriz desplazada un instante de tiempo. Una vez que se han sacado todos los datos, éstos se han utilizado principalmente para resolver el problema de optimización, explicado en el apartado 4.2.5 de dicha memoria. Los escalones del histórico de datos con los que se tratará de predecir el comportamiento de los datos experimentales se muestran a continuación: Figura 30. Detalle del escalón 1 del histórico a temperatura variable. Figura 31. Detalle del escalón 2 del histórico a temperatura variable. Figura 32. Detalle del escalón 3 del histórico a temperatura variable. Figura 33. Detalle del escalón 4 del histórico a temperatura variable. 21 Predicción basada en datos aplicada a un proceso de laboratorio Figura 34. Detalle del escalón 5 del histórico a temperatura variable. Figura 35. Detalle del escalón 6 del histórico a temperatura variable. Figura 36. Detalle del escalón 7 del histórico a temperatura variable. Figura 37. Detalle del escalón 8 del histórico a temperatura variable. Figura 38. Detalle del escalón 9 del histórico a temperatura variable. Figura 39. Detalle del escalón 10 del histórico a temperatura variable. 4.2.3. Base de datos generada Con el método empleado se consiguió una base de datos experimentales que posteriormente se predecirían. En el caso que nos ocupa, la base de datos consiste en cuatro escalones de diferentes amplitudes entre sí y ninguna coincidente con los escalones pertenecientes al histórico. Bien es cierto que el número de escalones experimentales podría haber sido mayor, sin embargo, para evitar alargar demasiado el proyecto se optó por predecir este número de escalones. Estos escalones se han tratado de la misma manera que los primeros, obteniendo las matrices C y C+, y obteniendo las temperaturas a las que han sido tomados. Una muestra de dichos escalones es la siguiente: Experimentos realizados 22 22 Figura 40. Datos recogidos de entrada y salida experimentales a temperatura variable. Figura 41. Datos recogidos de salida experimentales a temperatura variable recortados. 4.2.4. Predicción de los resultados Tras haber obtenido los escalones correspondientes de este segundo experimento se pasaron los resultados al archivo .m con el que se predicen los estados siguientes de los escalones. El problema de optimización de estos datos cambia también respecto al anterior, siendo su fórmula: 𝑚𝑖𝑛λ𝑘 λ𝑘 𝑇λ𝑘 S. a: [𝐷 1] * λ𝑘= [𝑥𝑘 1] Se realizó la comparación de las predicciones obtenidas por el problema de optimización, volviendo a compararse con los resultados sacados a partir de la simulación. Se puede remarcar que en este experimento también ha bastado realizarlo con tres salidas anteriores, ya que se han conseguido muy buenas aproximaciones. Las comparaciones de las diferentes predicciones con sus respectivas matrices originales de datos quedaron de la siguiente manera: 23 Predicción basada en datos aplicada a un proceso de laboratorio Figura 42. Predicción del primer escalón del experimento a temperatura variable. Figura 43. Predicción del segundo escalón del experimento a temperatura variable. Figura 44. Predicción del tercer escalón del experimento a temperatura variable. Experimentos realizados 30 30 Figura 54. Predicción del primer escalón del experimento real. Figura 55. Predicción del segundo escalón del experimento real. Figura 56. Predicción del tercer escalón del experimento real. 31 Predicción basada en datos aplicada a un proceso de laboratorio Figura 57. Predicción del cuarto escalón del experimento real. Figura 58. Predicción del quinto escalón del experimento real. Conclusiones 32 32 5 CONCLUSIONES El desarrollo de este proyecto se ha basado en la consecución de una serie de bases de datos mediante dos métodos distintos. El primero, un calentador de aire real de laboratorio y el segundo, un archivo de Simulink que simulaba dicho aparato, con el fin de predecir la evolución de un conjunto de trayectorias ajenas a dichas bases de datos. A su vez, la parte simulada del trabajo se ha subdividido en dos secciones según el valor que alcanzaba la temperatura ambiente. Tras la realización de estas predicciones se ha podido comprobar que el funcionamiento del algoritmo empleado para realizarlas funciona de manera prácticamente similar al aparato real. Además, se observa que las bases de datos utilizadas para solucionar el problema de optimización tienen un tamaño apropiado para el desarrollo del ejercicio, aunque de haberse aumentado, podría llegar a ser mínimamente más exacta de lo que se presenta en el trabajo. En los experimentos simulados se ofrecía la posibilidad de, variando dos parámetros, mejorar la eficiencia del algoritmo de predicción. Estos dos parámetros son el número de salidas anteriores a la que se pretende predecir, n_ant en los códigos, y el valor de ponderación H1 para ajustar la optimización. Efectuando las pruebas pertinentes, se llegó a la conclusión de que un valor adecuado para n_ant era tres, y para H1, 0.001*IN. Una vez realizadas todas estas observaciones se puede concluir que el papel que juega la Inteligencia Artificial hoy en día ha supuesto un gran avance en el ámbito tecnológico, permitiendo así el manejo de cantidades inmensas de datos para la predicción de importantes eventos futuros. Además, bien es cierto que se podría extrapolar todo el avance que ha supuesto el asunto del Big Data a muchos otros aspectos del mundo actual, como ya ocurre en temas financieros. 5.1. Cambios notables a lo largo de la realización del proyecto A medida que se iba avanzando en el proyecto se iba descubriendo que, desarrollando una serie de cambios en el código, era posible reducir el tiempo de ejecución para cada escalón, lo que permitió ahorrar una cantidad de tiempo considerable: 1. En primer lugar, el cambio más significativo que ha podido hacerse se ha mostrado a lo largo de esta memoria de manera que se pudiese comprobar dicha afirmación. Se trata de reducir la duración de los experimentos. Este cambio se puede observar en las gráficas de las dos simulaciones. De este modo, el régimen permanente de cada escalón queda reducido entre 4 y 5 veces, eliminando una cantidad importante de información innecesaria a la hora de graficar los resultados. 2. En segundo lugar, el propio problema de optimización también fue modificado a medida que se fue trabajando en el proyecto, lo que permitió reducir también el tiempo que tardaba el programa en alcanzar la solución para cada estado a predecir. 5.2. Posibles mejoras y avances Por un lado, además de haberse estudiado la predicción de escalones de dos sistemas distintos, también cabía la posibilidad de trabajar el control de los datos que lo componen. Al no precisar del tiempo oportuno para abarcar esta tarea, se optó por dejarla de lado, pudiendo, en un futuro, aumentar conocimientos en dicho área. 33 Predicción basada en datos aplicada a un proceso de laboratorio Por otro lado, a pesar de haberse conseguido unos resultados bastante óptimos, indagando en este tema se podrían alcanzar unos resultados de mayor calidad y eficiencia. Es por ello por lo que el alumno tiene intención de seguir investigando y profundizando conocimientos en su futuro como estudiante y, posteriormente, como profesional. Como mencionó Ana Criado, del CoE Lead Analytics, “Uno de los consejos más repetidos por los expertos en el Bid Data Talent 2021 fue que a un Científico de Datos tiene que gustarle aprender e instruirse en distintas cosas nuevas día tras día. Ya que, esta tecnología conlleva una multitud de herramientas que exigen un compromiso y una especie de sacrificio, pero al final es como todas las profesiones, donde necesitas estar actualizado constantemente”. (Criado, 2021) Anexo I: Códigos de MATLAB 34 34 ANEXO I: CÓDIGOS DE MATLAB En este anexo se explican detalladamente los diferentes códigos utilizados en la herramienta MATLAB. Cada código tiene una copia, pero al ser muy similares dos de ellos, solamente se anexan uno de cada. Del tercer archivo archivo sí se anexan los dos tipos de códigos, ya que los cambios son significativos. Preparación de los datos: Histórico de datos % Este código trata los datos del ensayo original con el que se va a % conocer el funcionamiento del calentador de aire a TEMPERATURA AMBIENTE CONSTANTE. % A partir de este ensayo se volveran a tomar datos del calentador para que, % una vez que tenemos los escalones y los vectores de estados correspondientes, % podamos predecir el comportamiento que se obtiene con esos datos nuevos. clear; clc; n_ant = 3; %Número de salidas anteriores en los vectores de estado load('resultados_Tcte') %Carga de los resultados "originales" obtenidos a parir de la simulación u = resultados_Tcte(:,1); %Datos de entrada del calentador (escalones introducidos) y = resultados_Tcte(:,2); %Datos de salida del calentador (resultados obtenidos) indices = find(u==5); %Busca los puntos de referencia aux = 1+find((indices(2:end)-indices(1:end-1))~=1); y_datos = y(aux(1):end); u_datos = u(aux(1):end); indices = find(u_datos==5); %Encuentra los puntos iguales al de funcionamiento y_datos = y_datos(indices-n_ant); u_datos = u_datos(indices-n_ant); clearvars variables indices u y indices_cortar = find(u_datos~=5); %Encuentra los puntos distintos al de funcionamiento n_escalones = length(indices_cortar)/n_ant; %Número de escalones del ensayo original E = []; %Se crea la matriz E, que servirá para posteriormente para formar C y C_pl 35 Predicción basada en datos aplicada a un proceso de laboratorio duracion_experimento = 500; % duracion_experimento = 50; %Tamaño de los escalones tras recortarlos y eliminar parte que no aporta información for i=1:n_escalones %Se crea la matriz E, que se compone de los diferentes escalones del ensayo original "recortados" ind_bajo = indices_cortar(1+ (i-1)*n_ant); ind_alto = ind_bajo+duracion_experimento; y_porcion = y_datos(ind_bajo:ind_alto); for j=1:n_ant aux_bloque(j,:)= y_porcion(n_ant-(j-1):end-(j-1)); end E = [E aux_bloque]; end C_pl = E(:,2:end); C = E(:,1:end-1); save('Dataset.mat','C','C_pl') %Se guardan las matrices creadas para tratarlas en el código de predicción figure %Dibuja los datos de entrada y de salida completos plot(resultados_Tcte(:,1)) title('Datos de entrada y salida originales') hold on plot(resultados_Tcte(:,2)) xlabel('t (ms)') legend('Entrada u','Salida y','Location','southwest') hold off figure %Dibuja los datos salida realmente necesarios plot(y_datos) title('Datos de salida recortados del ensayo original') xlabel('t (ms)') legend('Salida y','Location','northeast') Preparación de los datos: Datos experimentales % Este código trata los datos del experimento a predecir con el que se va a % verificar el comportamiento del calentador de aire a TEMPERATURA AMBIENTE CONSTANTE. % Una vez tomados estos datos y conocidos los vectores de estados, se % comprobará en el código de predicción que funnciona correctamente. n_ant = 3; %Número de salidas anteriores en los vectores de estado load('resultados_experimento') %Carga de los resultados "originales" obtenidos a parir de Labview u = resultados_experimento(:,1); %Datos de entrada del calentador (escalones introducidos) y = resultados_experimento(:,2); %Datos de salida del calentador (resultados obtenidos) indices = find(u==5); Anexo I: Códigos de MATLAB 36 36 aux = 1+find((indices(2:end)-indices(1:end-1))~=1); y_datos = y(aux(1):end); u_datos = u(aux(1):end); indices = find(u_datos==5); %Encuentra los puntos iguales al de funcionamiento y_datos = y_datos(indices-n_ant); u_datos = u_datos(indices-n_ant); clearvars variables indices u y indices_cortar = find(u_datos~=5); %Encuentra los puntos distintos al de funcionamiento n_escalones = length(indices_cortar)/n_ant; %Número de escalones del experimento E = []; %Se crea la matriz E, que servirá para posteriormente para formar C y C_pl duracion_experimento = 500; % duracion_experimento = 50; %Tamaño de los escalones tras recortarlos y eliminar parte que no aporta información for i=1:n_escalones %Se crea la matriz E, que se compone de los diferentes escalones del experimento "recortados" ind_bajo = indices_cortar(1+ (i-1)*n_ant); ind_alto = ind_bajo+duracion_experimento; y_porcion = y_datos(ind_bajo:ind_alto); for j=1:n_ant aux_bloque(j,:)= y_porcion(n_ant-(j-1):end-(j-1)); end E = [E aux_bloque]; end C_pl_exp = E(:,2:end); C_exp = E(:,1:end-1); save('Dataset_experimento.mat','C_exp','C_pl_exp') %Se guardan las matrices creadas para tratarlas en el código de predicción figure plot(resultados_experimento(:,1)) title('Datos de entrada y salida del experimento') hold on plot(resultados_experimento(:,2)) xlabel('t (ms)') legend('Entrada u','Salida y','Location','southwest') hold off figure plot(y_datos) title('Datos de salida recortados del experimento') xlabel('t (ms)') 37 Predicción basada en datos aplicada a un proceso de laboratorio legend('Salida y','Location','northeast') Predicción de los nuevos datos: A temperatura constante % En este código se predice el comportamiento del calentador de aire para % unos vectores de estados predefinidos en un experimento. Para ello, se % utilizará el ensayo original para, a partir de este, predecir de manera % correcta la evolución del sistema con los datos del nuevo experimento. load('Dataset.mat'); %Carga de los datos del ensayo original load('Dataset_experimento.mat'); %Carga de los datos del experimento t_ms = 0.04; %Tiempo de muestreo duracion_exp = 200; %Duración del experimento de predicción % duracion_exp = 45; %Duración del experimento de predicción N = length(C); %Longitud de la matriz C del ensayo %Vamos a probarlo de verdad %PUNTOS DEL ENSAYO ORIGINAL A TEMPERATURA CONSTANTE x0 = [[7.752936;7.704296;7.769151;7.744104;7.753886;7.751353;7.717486;7.761399;7.7 20312;7.759593],... %primer escalon simulado T cte [3.323007;3.359953;3.286416;3.286230;3.310115;3.353498;3.346577;3.357231;3.30 616;3.294665],... %segundo escalon simulado T cte [6.586704;6.67030;6.630937;6.655972;6.655523;6.652718;6.586408;6.62643;6.6013 07;6.638512],... %tercer escalon simulado T cte [4.453244;4.43181;4.404899;4.445354;4.46553;4.396595;4.43033;4.423412;4.46422 7;4.402156],... %cuarto escalon simulado T cte [7.234312;7.238627;7.165013;7.207419;7.220335;7.149678;7.176147;7.171068;7.16 4775;7.227448],... %quinto escalon simulado T cte [3.860627;3.875212;3.918576;3.913162;3.86506;3.830826;3.84675;3.920675;3.8862 85;3.919897],... %sexto escalon simulado T cte [8.315626;8.325643;8.253988;8.271909;8.246944;8.330047;8.255178;8.251452;8.26 7706;8.309627],... %séptimo escalon simulado T cte [2.743141;2.734211;2.78067;2.78927;2.808628;2.7335;2.771618;2.772946;2.721488 ;2.789615],... %octavo escalon simulado T cte [8.896543;8.822526;8.835573;8.867035;8.810542;8.823167;8.889091;8.845773;8.87 2638;8.842229],... %noveno escalon simulado T cte [2.184501;2.221886;2.223067;2.223067;2.167133;2.218212;2.178272;2.167807;2.20 2186;2.188505]]; %décimo escalon simulado T cte %PUNTOS DEL EXPERIMENTO A TEMPERATURA CONSTANTE APERTURA 80% x0 = [[4.097714;4.104983;4.174727;4.147105;4.099798;4.116361;4.167076;4.102304;4.1 58381;4.17593],... %primer escalon [3.622322;3.586762;3.636074;3.575833;3.601173;3.636397;3.568219;3.567251;3.62 1995;3.585309],... %segundo escalon [3.076917;3.030196;3.025307;3.054935;3.035247;2.997725;3.043435;3.059833;3.00 005;3.024724],... %tercer escalon [6.886458;6.863768;6.896242;6.940015;6.879072;6.952988;6.897136;6.89544;6.945 612;6.936874],... %cuarto escalon [8.556386;8.545197;8.542838;8.577282;8.522992;8.581804;8.576247;8.555436;8.61 3428;8.62006]]; %quinto escalon col_vector_de_estados=1; %ELEGIR EL VECTOR DE ESTADOS CORRESPONDIENTE AL ESCALÓN A REPRESENTAR Anexo I: Códigos de MATLAB 38 38 x0=x0(1:n_ant,col_vector_de_estados); y0 = x0; dist = ((C_pl-repmat(y0,[1 N])).^2) dist = sum(dist,1) % Se pueden probar diferentes valores de H1 para ver cual produce un mejor % resultado, aunque para el H1 original la respuesta es suficientemente % buena. H_1 = 0.0001*eye(N); %H1 ORIGINAL H_2 = diag(dist); % En las siguientes líneas se utiliza el ensayo original para observar cómo % predice este algoritmo su evolución y a partir de estos resultados, % predecir el comportamiento del sistema con los datos del nuevo % experimento. Aeq = [C_pl; ones(1,N)]; beq = [y0 ; 1]; lambda = quadprog(2*H_2,[],[],[],Aeq,beq); lambda_hist = lambda; x_pred = C_pl*lambda; tau = 1; C_lambda = [C; ones(1,N)]; C_pl_lambda = [C_pl; ones(1,N)]; for i=2:1+duracion_exp dist = ((C-repmat(x_pred(:,i-1),[1 N])).^2)'; dist = sum(dist,2); H_2 = diag(dist); H = 2*(H_1+H_2); % tic inv_H = diag(1./diag(H)); inv_CHC = inv(C_lambda*inv_H*C_lambda'); A_lambda = 2*inv_H*H_1(1) + (inv_H*C_lambda'*inv_CHC)*(C_pl_lambda - 2*C_lambda*inv_H*H_1(1) ); lambda = A_lambda*lambda; % toc lambda_hist(:,i) = lambda; x_pred(:,i) = C_pl*lambda; end %%% COMPARACIÓN DE LA PREDICCIÓN CON LA SALIDA DE LA SIMULACIÓN DEL EXPERIMENTO %PARA N_ANT=3 DE LOS DATOS DEL EXPERIMENTO 39 Predicción basada en datos aplicada a un proceso de laboratorio % y_aux = C(:,(col_vector_de_estados-1)*499+1:(col_vector_de_estados- 1)*499+498); % ENSAYO ORIGINAL LARGO % y_aux = C_exp(:,(col_vector_de_estados-1)*49+1:(col_vector_de_estados- 1)*49+48); %EXPERIMENTO CORTO y_aux = C_exp(:,(col_vector_de_estados-1)*499+1:(col_vector_de_estados- 1)*499+498); % EXPERIMENTO LARGO figure plot(0:t_ms:duracion_exp*t_ms,x_pred(1,:),'r') hold on grid plot(0:t_ms:duracion_exp*t_ms,y_aux(1,1:(duracion_exp+1)),'b') ylabel('o') legend('Predicción','Real') ax = gca; outerpos = ax.OuterPosition; ti = ax.TightInset; left = outerpos(1) + ti(1); bottom = outerpos(2) + ti(2); ax_width = outerpos(3) - ti(1) - ti(3); ax_height = outerpos(4) - ti(2) - ti(4); ax.Position = [left bottom ax_width ax_height]; Predicción de los nuevos datos: A temperatura variable % En este código se predice el comportamiento del calentador de aire para % unos vectores de estados predefinidos en un experimento. Para ello, se % utilizará el ensayo original para, a partir de este, predecir de manera % correcta la evolución del sistema con los datos del nuevo experimento. load('Dataset.mat'); %Carga de los datos del ensayo original load('Dataset_experimento.mat'); %Carga de los datos del experimento t_ms = 0.04; %Tiempo de muestreo % duracion_exp = 200; duracion_exp = 45; %Duración del experimento de predicción N = length(C); %Longitud de la matriz C del ensayo %PUNTOS DEL ENSAYO ORIGINAL A TEMPERATURA CONSTANTE PARA APERTURA 80% % x0 = [[7.952773;7.966311;8.035014;7.945809;8.026278;7.944588;8.009571;7.970654;8.0 17906;7.982013;20.5],... %primer escalon simulado T cte % [3.82215;3.782143;3.776809;3.794;3.770787;3.786849;3.770293;3.816058;3.816733 ;3.805942;21],... %segundo escalon simulado T cte % [7.397316;7.368843;7.426041;7.376063;7.419842;7.420413;7.383797;7.352366;7.41 0677;7.40386;21.5],... %tercer escalon simulado T cte % [5.396263;5.375779;5.423085;5.394898;5.380765;5.421413;5.439611;5.383536;5.38 2627;5.415938;22],... %cuarto escalon simulado T cte % [8.483353;8.487705;8.413106;8.471784;8.450723;8.412849;8.460711;8.462628;8.44 1378;8.425368;22.5],... %quinto escalon simulado T cte % [5.409286;5.420654;5.416311;5.352326;5.410369;5.3473;5.357319;5.346533;5.4201 05;5.381816;23],... %sexto escalon simulado T cte Bibliografía 46 46 BIBLIOGRAFÍA [1] Agudo, F. (2018). Por qué el Bid Data es tan importante para las empresas. Recuperado https://www.ceupe.com/blog/por-que-el-big-data-es-tan-importante-para-las-empresas.html [2] Mathworks. Análisis predictivo. [En línea] https://es.mathworks.com/discovery/predictiveanalytics.html [3] National Instruments. USB-6211. [En línea] https://www.ni.com/es-es/support/model.usb- 6211.html [4] Wikipedia. MATLAB. [En línea] https://es.wikipedia.org/wiki/MATLAB#MATLAB [5] Lucas, J. (2019). Qué es C: Características y sintaxis. Recuperado https://openwebinars.net/blog/que-es-c/ [6] Criado, A (2021). ¿Qué consejo le darías a una persona que quiere ser un Dara Scientist?. Recuperado https://www.campusbigdata.com/big-data-blog/item/160-que-consejo-le-darias-a-una- persona-que-quiere-ser-un-data-scientist [7] Clemares Galindo, L. (2020). Elena García: “El Big Data me ha permitido saciar mi constante curiosidad ante el porqué de las cosas”. Recuperado https://blogthinkbig.com/entrevista-a-maria- elena-garcia-cientifica-de-luca [8] Gelsinger, P. (2019). La mejor formación especializada en Big Data al alcance de tu mano: Tu futuro empieza hoy. Recuperado https://eniit.es/big-data-international-campus/ [9] Rodríguez Ramirez, D. (2018). Control de un proceso con retraso.