CARRERA DE INGENIERÍA EN ELECTRÓNICA EN AUTOMATIZACIÓN Y CONTROL CONTROL INTELIGENTE NRC: 2033 DISEÑO DE CONTROLADOR NEURONAL PARA LA UNIDAD AIR FLOW TEMPERATURE CONTROL SYSTEM Profesor: Ing. Víctor Proaño Elaborado por: Johanna Almachi Denis Flores Diego Soria Carlos Vaca 03 DE JULIO DE 2014
Contenido I. Tema... 2 II. Objetivos... 2 III. Descripción del Modelo Matemático del Sistema... 2 IV. Identificación de la Planta... 3 V. Obtención de parámetros de entrenamiento... 5 VI. Control utilizando redes neuronales inversas... 8 VII. Resultados Prácticos... 11 VIII. Conclusiones... 12 CONTROLADOR NEURONAL INVERSO Página 1
I. Tema Diseño de controlador neuronal para la unidad Air Flow Temperature Control System II. Objetivos Diseñar un controlador con redes neuronales y verificar la funcionalidad del controlador. Realizar el experimento del control neuronal con modelo inverso para la unidad Air Flow Temperature Control System. Realizar el experimento y representar gráficamente los resultados para distintos valores de referencia. III. Descripción del Modelo Matemático del Sistema La unidad Air Flow Temperature Control System es un sistema que existe un intercambio de masa y energía con el ambiente puesto que al cambiar las perturbaciones mediante la placa se varía el intercambio de calor entre aire caliente y aire frío. Ilustración 1. Unidad Air Flow Temperature Control System. Las variables que tienen relación con nuestro sistema son: La masa de aire El volumen La densidad y presión La temperatura (variable por la niquelina). La propagación del calor en la planta se realiza mediante conducción, por convección y radiación. El objetivo es conocer la forma en que responde la temperatura de salida, a los cambios en el voltaje de la niquelina en la entrada. El flujo de calor en el sistema de temperatura se da por convección, es decir, se transfiere energía entre una superficie, que es la niquelina, y un fluido que se mueve sobre esta que en este caso es el aire. Mediante el ventilador se fuerza al aire a fluir a través de la niquelina y el conducto, a esto se lo denomina convección interna forzada y la transferencia de calor. CONTROLADOR NEURONAL INVERSO Página 2
Dentro de la planta el aire es calentado por conducción mediante una niquelina allí ascenderá por convección y se pondrá en contacto con el ventilador cediendo parte de su calor al aire frío volviendo hacia el ventilador para que posteriormente sea enviado de forma laminar (todas las moléculas pasan ordenadamente dentro del tubo) al tubo en donde se verá afectado también por fenómenos de convección y radiación de la niquelina. Ilustración 2. Diagrama de Bloques del Sistema Como se puede observar en la ilustración 2 se obtiene el modelo matemático de primer orden característico de un sistema intercambiador de temperatura, el mismo que se verá afectado por la resistencia térmica que es controlada mediante las perturbaciones en la entrada de flujo del aire ambiente y de la capacitancia térmica que será afectada por la potencia de la niquelina como se explicó en la interpretación física de la planta. IV. Identificación de la Planta Para el modelamiento de la planta se recurrió a un procedimiento experimental, siguiendo los pasos que se detallan a continuación: Adquisición de datos. Identificación del modelo matemático de la planta. El modelo que se ha definido seguir para la planta de temperatura es de primer orden como se muestra en la figura a continuación. Ilustración 3. Modelo de Primer Orden a Seguir. Mediante el modelo mostrado podemos lograr representar la dinámica de la planta en su casi totalidad, de esta manera pudiendo proseguir a la identificación de sus constantes K y tau. Para la obtención de dichos parámetros se utiliza la herramienta ident de MATLAB mediante la cual al ingresar los datos tomados en el laboratorio por parte del Ing. Víctor Proaño con un valor en la entrada de 4 voltios y con un periodo de muestreo de 0.1 segundos obtenemos los parámetros y procedemos a la respectiva comparación con los datos reales. Los datos nos muestran una dinámica del proceso como se muestra en la siguiente figura, siendo el eje X el tiempo y el eje Y la temperatura de salida. CONTROLADOR NEURONAL INVERSO Página 3
Ilustración 4. Datos Obtenidos de la Planta con 4 Voltios de entrada en 200 segundos. Tenemos que considerar que los datos tomados parten a partir de 22.8 Grados Centígrados que se los considerará como temperatura Ambiente. En la Herramienta ident ingresamos los datos y obtenemos los parámetros del modelo. Ilustración 5. Ingreso de datos obtenidos a ident. Con los datos provistos a ident procedemos a obtener el modelo de primer orden y se obtiene los siguientes parámetros Ilustración 6. Parámetros obtenidos para el modelo de temperatura. CONTROLADOR NEURONAL INVERSO Página 4
Parámetros: Con dichos valores procedemos a comparar si los datos se cumplen reemplazando los valores en el modelo de simulink como se muestra en la figura a continuación. Ilustración 7. Simulación de la planta con los parámetros obtenidos Con este resultado obtenido podemos empezar a trabajar con la obtención de los patrones de entrenamiento, se puede decir que el modelo aprueba el comportamiento de los datos obtenidos en un 90% y es altamente aceptable. V. Obtención de parámetros de entrenamiento Se utiliza el modelo matemático en lazo abierto para obtener los valores objetivos. Planta Ilustración 8. Simulación de la planta con los parámetros obtenidos Para obtener estos valores objetivos, se ha desarrollado el siguiente algoritmo en Matlab: Código Matlab Especificación de los rangos de operación de la temperatura y el voltaje tempp=25:1:65; %Temperatura de referencia up=0:0.1:5; %Estado inicial CONTROLADOR NEURONAL INVERSO Página 5
Generación de los patrones p=combvec(tempp,up); %Parámetros de entrada %Identificación de los parámetros for i=1:length(p) temp0=p(1,i); u=p(2,i); sim('planta',0.5); dtemp(i)=temp.signals.values(length(temp.signals.values))-temp0; i end plot(dtemp) title('variación de temperatura [ C]'); Tm(1,:)=dtemp; Entrenamiento de la Red net=newff(minmax(p), [4 1], {'tansig', 'purelin'}, 'trainlm'); net.trainparam.show=50; net.trainparam.lr=0.05; net.trainparam.epochs=400; net.trainparam.goal=1e-7; [net tr]=train(net,p,tm); a=sim(net,p); figure(2) plot(a(1,:)) title('variación de temperatura [ C]'); 0.6 Variación de temperatura [ C] 0.6 Variación de temperatura [ C] 0.4 0.4 0.2 0.2 0 0-0.2-0.2-0.4-0.4-0.6-0.6-0.8-0.8-1 0 500 1000 1500 2000 2500-1 0 500 1000 1500 2000 2500 Ilustración 9. Resultados obtenidos variación de temperatura. Ilustración 10. Simulación de la Red Neuronal Como observamos en la figura la red alcanza entrenarse en 167 iteraciones y tener el error mínimo estableció de igual manera al hace clic en el botón performance obsemanos el proceso de entrenamiento de la red la cual fue entrenada exitosamente. CONTROLADOR NEURONAL INVERSO Página 6
Ilustración 11. Entrenamiento de la Red Neuronal Creación de la red gensim(net,50e-3) Ilustración 12. Bloque Red Neuronal Comparación con el modelo de la planta En la figura 13, se muestra el diagrama Simulink donde se compara la Red Neuronal creada y entrenada con el modelo de la planta para verificar su funcionamiento. Ilustración 13. Comparación Red Neuronal Planta En la figura 14 se muestra el comportamiento de la red en trenada para como la planta antes modelada. CONTROLADOR NEURONAL INVERSO Página 7
Ilustración 14. Resultados obtenidos de la comparación Red Neuronal Planta VI. Control utilizando redes neuronales inversas El control por modelo inverso es una técnica, que busca cancelar la dinámica de la planta al colocar un elemento en cascada con ella, en este caso una red neuronal, siendo este una aproximación matemática del inverso de la planta. Para diseñar el controlador neuronal inverso como su nombre lo dice invertimos los patrones de entrenamiento y el target % %% Controlador Neuronal Inverso Pm1(1,:)=p(1,:); %Entrada T0 Pm1(2,:)=Tm; % Variacion de Temperatura Tm1(1,:)=p(1,:); % Señal control Entrenamiento de la red del controlador cet = newff(minmax(pm1),[4 1],{'tansig' 'purelin'},'trainlm'); Y = sim(cet,pm1); cet.trainparam.epochs = 50; cet.trainparam.goal=1e-7; cet = train(cet,pm1,tm1); Y = sim(cet,pm1); CONTROLADOR NEURONAL INVERSO Página 8
Como observamos el entrenamiento de la red del controlador es exitoso con 4 neuronas y una salida. Ilustración 15.Entrenamiento de la Red Neuronal Para poder realizar pruebas usamos el comando gensim (cet) para tener el bloque de la red neuronal como tal luego realizamos el modelo de simulación. Ilustración 16. Simulación de la planta con el controlador. V. Resultados de simulación Después de obtener este modelo en simulink realizamos las respectivas pruebas donde el valor de temperatura de Set Point es de color amarillo y el valor de temperatura de la planta es de color morado y la señal de control de la red neuronal es de color verde claro cómo podemos observar en las figura presentadas a continuación el tiempo de establecimiento es pequeño aproximadamente de 30 segundos y el error en estado estacionario es muy pequeño por lo que procedió a realizar las pruebas de este controlador en junto con la planta física real. CONTROLADOR NEURONAL INVERSO Página 9
SP = 30 grados SP = 40 grados Ilustración 17. Resultados de simulación del sistema con una referencia de 30 grados. SP = 50 grados Ilustración 18. Resultados de simulación del sistema con una referencia de 40 grados. Ilustración 19. Resultados de simulación del sistema con una referencia de 50 grados. CONTROLADOR NEURONAL INVERSO Página 10
VI. Resultados Prácticos Al poder realizar las pruebas prácticas en laboratorio el día 3 de Julio del 2014, se obtuvo resultados exitosos en el desempeño del controlador mediante redes neuronales, a continuación se muestra el resultado con una referencia de 40 grados. La figura 17 muestra la salida de las tres variables involucradas en el sistema, la línea de color morado es la salida del sistema que como se aprecia se ajusta rápidamente a la línea amarilla que es la referencia de 40 grados ingresada, finalmente la línea celeste es la salida del control de la red en voltaje. Ilustración 20.Resultados prácticos obtenidos en el sistema con una referencia de 40 grados. El rendimiento es bastante bueno ya que en las pruebas realizadas se obtienen resultados de referencia aproximadamente a los 30 segundos obteniendo un desempeño exitoso del controlador implementado, para poder realizar la ejecución del programa solamente se reemplazó el modelo de primer orden obtenido para simulaciones por el bloque de representación del sistema. CONTROLADOR NEURONAL INVERSO Página 11
Ilustración 21. Modelo de Simulink Utilizado para Pruebas Prácticas en el laboratorio. VII. Conclusiones Se pudo realizar el controlador inverso mediante redes neuronales para el sistema de temperatura Air Flow Temperature Control System, empleando un sistema de primer orden, obteniendo resultados exitosos en la práctica para distintos valores de referencia. Se pudo observar que al representar la planta en una red neuronal artificial, esta no posee el comportamiento reflejado al 100% del sistema real, por lo que la generación de patrones de entrenamiento mediante el modelo obtenido tiene que ser el mejor posible, estableciendo rangos de trabajo de cada una de las variables adecuadamente. Mediante la implementación del controlador se pudo comprobar la utilidad de las redes neuronales en las tareas de control, a pesar de ser este un experimento con un sistema sencillo no se aprecia al 100% su utilidad, pero por el hecho de lograr la identificación de sistemas se justifica como una herramienta poderosa en diseño de controladores para sistemas no lineales, complejos y sin modelos de referencia. La obtención de parámetros de la planta se pudo plantear de dos maneras distintas, la utilizada en este trabajo mediante la herramienta ident es una, mientras que al utilizar comandos para aproximación de funciones en base al error como fminsearch también se obtiene un modelo con un grado de aproximación superior a 90%. CONTROLADOR NEURONAL INVERSO Página 12