REGULACIÓN DE UN SISTEMA NO LINEAL CON LÓGICA BORROSA TITULACIÓ: Enginyería en Automàtica i Electrònica Industrial AUTOR: José Luis Pelegrí. DIRECTOR: Enric Vidal. DATA: Abril / 2014. 1 ÍNDICE 1 MEMORIA DESCRIPTIVA .......................................................................................................... 4 1.1 Objetivo del proyecto ............................................................................................................................. 4 1.2 Titular ..................................................................................................................................................... 4 1.3 Normativa de control de vertidos (licencia medioambiental) ............................................................. 5 1.4 Descripción del sistema actual de regulación ....................................................................................... 5 1.4.1 1.5 Posibles soluciones y solución adoptada ............................................................................................. 10 1.5.1 1.5.2 1.5.3 2 Descripción general de la solución adoptada ..................................................................................... 14 1.7 Prescripciones técnicas ........................................................................................................................ 14 1.8 Puesta en marcha y funcionamiento ................................................................................................... 15 1.9 Resumen del presupuesto .................................................................................................................... 15 MEMORIA DE CÁLCULO ......................................................................................................... 16 Planta .................................................................................................................................................... 16 2.1.1 2.1.2 2.2 2.3 2.5 6 Diseño del controlador borroso.............................................................................................................................. 26 Simulación sistema de control Fuzzy .................................................................................................. 28 Implementación del controlador Fuzzy .............................................................................................. 31 2.5.1 2.5.2 2.5.3 2.5.4 5 Modelización del controlador en tiempo discreto ................................................................................................. 23 Diseño del controlador Fuzzy .............................................................................................................. 24 2.3.1 2.4 Modelo de la planta ante una entrada escalón de HCl ........................................................................................... 17 Modelo del regulador de pH .................................................................................................................................. 20 Controlador discreto ............................................................................................................................ 23 2.2.1 4 Control Feed Forward (FF) .................................................................................................................................... 10 Control predictivo adaptativo experto (ADEX) .................................................................................................... 11 Control mediante lógica difusa (Fuzzy) ................................................................................................................ 12 1.6 2.1 3 Equipos utilizados .................................................................................................................................................... 8 Fuzzyficación ......................................................................................................................................................... 32 Base de reglas ......................................................................................................................................................... 35 Inferencia................................................................................................................................................................ 36 Desfuzzyficación .................................................................................................................................................... 37 2.6 Determinación de la validez del controlador fuzzy............................................................................ 38 2.7 Implementación del controlador en un PLC ...................................................................................... 43 PLANOS ....................................................................................................................................... 47 3.1 Localización fábrica ............................................................................................................................. 47 3.2 Ubicación sistema de recogida de aguas residuales ........................................................................... 47 3.3 Diagrama R&I del proceso de neutralización .................................................................................... 47 PRESUPUESTO........................................................................................................................... 51 4.1 Mediciones ............................................................................................................................................ 51 4.2 Cuadro de precios ................................................................................................................................ 53 4.3 Aplicación de precios ........................................................................................................................... 54 4.4 Resumen del presupuesto .................................................................................................................... 56 ANEXOS ....................................................................................................................................... 57 5.1 Código programa de inferencia del controlador Fuzzy en matlab ................................................... 57 5.2 Juego de pruebas del código resultado de la acción de control del regulador ................................. 59 5.3 Desfuzzificación válvulas de dosificación HCl ................................................................................... 62 5.4 Código acción de control del regulador en PLC ................................................................................ 66 5.5 Código modelo neutralización pH en PLC ......................................................................................... 68 5.6 Diagrama de bloques del sistema de control en PLC ........................................................................ 69 REFERENCIAS ........................................................................................................................... 71 2 Figura 1. Diagrama PI&D del proceso de neutralización de aguas residuales. ............................................................................... 6 Figura 2. Diagrama de bloques del sistema ...................................................................................................................................... 6 Figura 3. Sistema completo ............................................................................................................................................................... 7 Figura 4. Sistema vertido de aguas residuales .................................................................................................................................. 7 Figura 5. Sistema de medición de pH ............................................................................................................................................... 8 Figura 6. Sistema de dosificación y regulación de HCl ................................................................................................................... 8 Figura 7. Lazo de control FF........................................................................................................................................................... 10 Figura 8. Lazo de control ADEX .................................................................................................................................................... 12 Figura 9. Diagrama de pertenencia de control Fuzzy ..................................................................................................................... 14 Figura 10. Respuesta en lazo abierto del sistema ........................................................................................................................... 16 Figura 11. Respuesta en lazo cerrado para cambio de consigna de pH 4 a pH 6 ........................................................................... 16 Figura 12. Respuesta temporal del pH a una entrada escalón de HCl con válvula pequeña ......................................................... 17 Figura 13. Respuesta temporal del pH a una entrada escalón de HCl con válvula pequeña en Matlab ........................................ 18 Figura 14. Respuesta temporal del pH a una entrada escalón de HCl con válvula grande ............................................................ 18 Figura 15. Respuesta temporal del pH a una entrada escalón de HCl con válvula grande ............................................................ 19 Figura 16. Diagrama Bode de comparativa de respuestas en frecuencia de válvulas grande y pequeña ...................................... 19 Figura 17. Diagrama de bloques sistema HCl/pH .......................................................................................................................... 20 Figura 18. Diagrama de bloques del regulador PID Siemens ........................................................................................................ 20 Figura 19. Modelo continuo del sistema de neutralización ............................................................................................................ 21 Figura 20. Respuesta de pH a una variación en el SP. ................................................................................................................... 22 Figura 21. Variación del SP de caudal de HCL para conseguir el pH necesario ........................................................................... 22 Figura 22. Comparativa modelos continuo y discreto .................................................................................................................... 23 Figura 23. Respuesta del regulador de pH en continuo y en discreto ............................................................................................ 23 Figura 24. Respuesta del pH de salida en continuo y discreto ....................................................................................................... 24 Figura 25. Diagrama bloques sistema PID vs FUZZY ................................................................................................................... 24 Figura 26. Diagrama de bloques del regulador Fuzzy .................................................................................................................... 25 Figura 27. Representación gráfica de las funciones de pertenencia. .............................................................................................. 26 Figura 28. Estructura de bloques entrada/salida del modelo fuzzy en Matlab ............................................................................... 27 Figura 29. Definición de los valores de salida en el bloque fuzzy ................................................................................................. 27 Figura 30. Set de reglas en el bloque fuzzy en Matlab ................................................................................................................... 28 Figura 31. Modelo del sistema con válvulas fuzzyficadas ............................................................................................................. 29 Figura 32. Resultado de la simulación tras las válvulas fuzzyficadas............................................................................................ 29 Figura 33. Comparativa respuesta controlador discreto VS controlador borroso ......................................................................... 30 Figura 34. Salida del controlador borroso ...................................................................................................................................... 30 Figura 35. Respuesta de pH en la simulación del controlador borroso .......................................................................................... 30 Figura 36. Aplicación de las reglas, inferencia y desfuzzyficación en la simulación .................................................................... 31 Figura 37. Modelo del sistema sustituyendo bloque Fuzzy por función ........................................................................................ 31 Figura 38. Estructura de un regulador difuso ................................................................................................................................. 31 Figura 39. Función de pertenencia trapezoidal ............................................................................................................................... 32 Figura 40. Método de inferencia MAXMIN................................................................................................................................... 36 Figura 41. Representación del grado de pertenencia ...................................................................................................................... 36 Figura 42. Aplicación de las expresiones de la inferencia ............................................................................................................. 36 Figura 43. Aplicación gráfica de la inferencia................................................................................................................................ 37 Figura 44. Ecuación general para el cálculo del centro de gravedad (CoG) .................................................................................. 37 Figura 45. Desfuzzyficación de los singletones ............................................................................................................................. 37 Figura 46. Comparativa del modelo continuo y el modelo fuzzy .................................................................................................. 39 Figura 47. Sistema de inferencia fuzzy ........................................................................................................................................... 39 Figura 48. Funciones de pertenencia .............................................................................................................................................. 40 Figura 49. Respuesta temporal de la controlador en ecuación de diferencias y del controlador continuo .................................... 40 Figura 50. Modelo para la validación de la respuesta del controlador borroso ............................................................................. 41 Figura 51. Respuesta temporal de la controlador borroso .............................................................................................................. 41 Figura 52. Salida de la función de control que reproduce el control fuzzy .................................................................................... 42 Figura 53. Resultado de la simulación con la función que reproduce el control fuzzy ................................................................. 42 Figura 54. Instalación para la simulación del modelo .................................................................................................................... 43 Figura 55. Pantalla de control del proceso de neutralización ......................................................................................................... 44 Figura 56. Módulo CFC con la lógica del sistema ......................................................................................................................... 44 Figura 57. Detalle del diagrama de bloques regulador y neutralización ........................................................................................ 45 Figura 58. Respuesta de pH en el modelo de PLC ......................................................................................................................... 45 Figura 59. Respuesta del regulador en el modelo de PLC VS modelo en Matlab ......................................................................... 46 Figura 60. Modelo para juego de pruebas....................................................................................................................................... 59 Figura 61. Respuesta regulador a entrada de pH=1 ........................................................................................................................ 59 Figura 62. Respuesta regulador a entrada de pH=3 ........................................................................................................................ 60 Figura 63. Respuesta regulador a entrada de pH=7 ........................................................................................................................ 60 Figura 64. Respuesta regulador a entrada de pH=9 ........................................................................................................................ 60 Figura 65. Respuesta regulador a entrada de pH=9,3 ..................................................................................................................... 61 Figura 66. Respuesta regulador a entrada de pH=10 ...................................................................................................................... 61 Figura 67. Respuesta regulador a entrada de pH=12 ...................................................................................................................... 61 Figura 68. Función de pertenencia trapezoidal ............................................................................................................................... 62 Figura 69. Función de pertenencia trapezoidal ............................................................................................................................... 62 Figura 70. Modelo del sistema con funciones desfuzzificadas ...................................................................................................... 64 Figura 71. Salida de la función de control que reproduce el comportamiento de las válvulas ...................................................... 65 Figura 72. Resultado de la simulación con la función que reproduce el comportamiento de las válvulas ................................... 65 3 1 MEMORIA DESCRIPTIVA 1.1 Objetivo del proyecto El objetivo del proyecto es mejorar la actual regulación de neutralización de aguas residuales de la fábrica que Bayer MaterialScience S.L. tiene en su site de Tarragona. Estas aguas, tras ser procesadas se vierten, a través de un emisario común del polígono sur, al mar. El sistema de regulación actual responde correctamente y de manera muy fiable en la zona lineal de la regulación, pero cuando el proceso de neutralización está en zona no lineal el sistema pasa a ser controlado por un operador manual que vuelve a llevarlo a una zona lineal. Además durante el arranque del proceso de neutralización un operador tiene que llevar el proceso a la zona lineal antes de iniciar el sistema de control automático. Se pretende diseñar un sistema de control inmune al cambio de zona de regulación y que sea capaz de controlar la neutralización durante el arranque del proceso, la operación en zona lineal y que lleve el sistema nuevamente a zona lineal cuando entre en zona no lineal. 1.2 Titular El titular del presente proyecto es: Nombre: Bayer MaterialScience S.L. CIF: B62776794 Dirección: Ctra. Vilaseca – La Pineda S/N 43110 La Canonja Representante legal: Jesús Loma-Osorio Telf.: 977 358 100 4 1.3 Normativa de control de vertidos (licencia medioambiental) La normativa de vertido de aguas residuales establece los límites máximos autorizados de los parámetros de pH, TOC (Total Organic Carbon) y partículas en suspensión permitidos en los vertidos de aguas residuales. Para el caso que nos ocupa, el pH del agua vertida debe estar entre pH 4 y 9. La normativa a aplicar está contenida en los siguientes documentos: 1.4 Real Decreto Legislativo 1/2001,de 20 de Julio, por el que se aprueba el Texto Refundido de la Ley de Aguas (BOE n º 176, de 24 de Julio). Ley 16/2002, de 1 de Julio de Prevención y Control Integrados de la Contaminación (BOE n º 157 de 2 de Julio). Real Decreto 849/1986, de 11 de Abril, por el que se aprueba el Reglamento de Dominio Público Hidráulico (BOE n º 103, de 30 de Abril), modificado parcialmente por el Real Decreto 1315/1992 de 30 de Octubre (BOE n º 288 de 1 de Diciembre) y por el Real Decreto 606/2003, de 23 de Mayo (BOE n º 135, de 6 de Junio). Real Decreto 995/2000, de 2 de Junio, por el que se fijan objetivos de calidad para determinadas sustancias contaminantes y se modifica el reglamento del Dominio Público Hidráulico, aprobado por el Real Decreto 849/1986, de 11 de Abril (BOE nº 147 de 20 de Junio). Descripción del sistema actual de regulación El sistema actual de neutralización se basa en la reacción de un caudal de pH básico con un caudal de pH ácido. El sistema de control presenta una estrategia feedback, el controlador responde al valor de pH del medio a verter y actúa sobre una válvula de regulación en la línea de caudal de HCl que reacciona con el medio básico y neutraliza la solución. A continuación se puede ver el diagrama de proceso de neutralización de las aguas residuales, la red de aguas residuales, el depósito de almacenamiento intermedio de aguas residuales, el sistema de monitorización de pH de vertido de aguas residuales, el control de caudal de HCl para la neutralización de las aguas residuales y el caudal total de vertido de aguas residuales hacia el emisario común del polígono sur. 5 Figura 1. Diagrama PI&D del proceso de neutralización de aguas residuales. En general, el diagrama de bloques del sistema es el siguiente: Figura 2. Diagrama de bloques del sistema El sistema de recogida de aguas residuales se centra en un punto de la fábrica donde se ubican todos los servicios necesarios para su neutralización y control de vertido. 6 Figura 3. Sistema completo En las siguientes imágenes se podrá identificar cada elemento del proceso en el conjunto de la instalación real: Figura 4. Sistema vertido de aguas residuales 7 Figura 5. Sistema de medición de pH Figura 6. Sistema de dosificación y regulación de HCl 1.4.1 Equipos utilizados El control de la neutralización está basado en varios equipos y sistemas que interaccionan para dar respuesta al valor de pH de salida para que el vertido esté dentro de los parámetros de consigna requeridos. 1.4.1.1 Sistema de control El sistema de control se basa en un sistema Siemens S7 300 que obtiene las señales de campo que le envían los dos medidores de caudal y el medidor de pH y envía señales de control a la válvula de regulación. 8 1.4.1.2 Medición de caudal de salida del tanque TAG 15F202 DESCRIPCIÓN Caudal agua resid. salida tanque 2200 m3 FABRICANTE Endress+Hauser MODELO PROMAG-23 PRINCIPIO DE Inductivo MEDIDA RANGO 0-130 m3/h PRECISIÓN 0,1 m3/h 1.4.1.3 Medición de caudal de HCl TAG 15F400 DESCRIPCIÓN Aporte de HCL al mezclador 15X400 FABRICANTE Endress+Hauser MODELO PROMAG-53 PRINCIPIO DE Inductivo MEDIDA RANGO 0-500 l/h PRECISIÓN 0,1 l/h 1.4.1.4 Válvulas de regulación de caudal HCl TAG 15F400.1/2 DESCRIPCIÓN Aporte de HCL al mezclador 15X400 FABRICANTE Samson MODELO Richier chemie RANGO 0-100 % PRECISIÓN 0,1 % NOTAS La válvula de mayor capacidad tiene un kv de 0.8 y la de menor capacidad un kv de 0.1 (kv = coeficiente de caudal) 9 1.4.1.5 Medición de Ph TAG 15Q400.1 DESCRIPCIÓN Analizador pH aguas residuales FABRICANTE Yokogawa MODELO EXA-PH202 PRINCIPIO DE pH MEDIDA RANGO 0-14 pH PRECISIÓN 0,01 pH 1.5 Posibles soluciones y solución adoptada 1.5.1 Control Feed Forward (FF) El control Feed Forward es una estrategia usada para compensar perturbaciones en un sistema antes de que éstas afecten la variable controlada. En este caso, se mide una variable que pueda afectar la variable controlada, se predice su efecto y se aplica una acción correctiva anticipadamente al mismo. Para lograr la capacidad predictiva del FFC es necesario conocer la relación entre la variable cuyo efecto se desea suprimir y la variable controlada, en lo que constituye un modelo, total o parcial, del proceso. La calidad del control estará en función de la calidad del modelo usado. El comportamiento de otras variables no compensadas puede afectar a la variable controlada. El tiempo de respuesta del FFC debe ser menor que el tiempo muerto entre la presencia de la perturbación en la variable compensada y la manifestación del efecto en la variable controlada. Este tiempo muerto debe ser conocido para sincronizar la salida del controlador. Se pueden considerar múltiples variables como entrada al FFC y compensar el efecto combinado de las perturbaciones en ellas. Figura 7. Lazo de control FF 10 1.5.2 Control predictivo adaptativo experto (ADEX) El control Adaptativo Predictivo Experto (ADEX) combina el control adaptativo predictivo (AP) con el control experto basado en reglas, mediante la definición de dominios de operación para ambos en una estructura de control integrada. Dado un rango de operación de la variable bajo control, la metodología ADEX divide dicho rango en diferentes dominios de control adaptativo predictivo y de control experto. Los dominios AP son aquellos en los que la relación dinámica causa-efecto entre las variables de entrada y salida del proceso puede ser identificada por medio de un sistema adaptativo. En estos dominios se aplicará control AP y la operación del proceso podrá ser generalmente controlada en forma óptima. Los dominios EX son dominios de operación donde el control manual puede proporcionar un control más robusto y eficiente que el control AP. Esto puede suceder cuando no exista una relación causa-efecto entre las variables entrada-salida o ésta no pueda obtenerse en tiempo real o cuando adquirir dicho conocimiento llevaría cierto tiempo y no se obtendría una mejora sustancial respecto al control manual Estos dominios se sitúan habitualmente en los extremos del rango de operación normal de las variables de proceso y en ellos se utiliza la experiencia del operador para definir las reglas que imitan la inteligencia del control manual. El control ADEX aplicado en los dominios expertos se diseña con el fin de conducir las variables del proceso hacia los dominios AP, donde se aplica el control AP. El control ADEX está formado por diferentes bloques: - Bloque de control: Dependiendo de si el dominio de operación en el que se encuentra la variable de salida del proceso es AP o EX, el bloque experto determina la aplicación de control AP o EX. En el primer caso el bloque de control actuará como modelo predictivo, dentro del esquema propio del control AP, y calculará el control predictivo a aplicar al proceso. Si debe aplicarse control experto, el bloque de control actuará como un sistema por reglas que, imitando la actuación del operador humano, aplicará control experto al proceso. Esta función del bloque experto evitará la aplicación de control AP cuando no es procedente y el deterioro que conllevaría este tipo de aplicación, y permitirá en estos casos una actuación de control razonable como la que llevaría a cabo un operador humano del proceso. Esta función del bloque experto confiere al controlador ADEX gran robustez y fiabilidad industrial. 11 - Bloque conductor: En su interacción con el bloque conductor, el bloque experto puede determinar el criterio de rendimiento para la generación de la trayectoria deseada más conveniente para cada uno de los dominios AP. Así puede determinar la velocidad de cambio o pendiente de la trayectoria deseada en su acercamiento a la consigna. Si el dominio está alejado de la consigna puede desearse una gran velocidad de cambio, pero si el dominio contiene la consigna, entonces podría desea una velocidad de cambio menor, para que la consigna se alcance suavemente y sin oscilaciones. - Mecanismo de adaptación: En su interacción con el mecanismo de adaptación, el bloque experto puede determinar cuando conviene activar o desactivar la adaptación de los parámetros del modelo AP, según sean las condiciones de operación y la reinicialización de los parámetros del modelo AP al variar el dominio de operación. El funcionamiento del bloque experto permite hacer uso del conocimiento previo del que se dispone sobre el proceso y utilizarlo, por medio de aplicación de reglas, tanto en aplicaciones de control experto como en la aplicación del control adaptativo predictivo. Figura 8. Lazo de control ADEX 1.5.3 Control mediante lógica difusa (Fuzzy) La Lógica Fuzzy también es conocida como Lógica Difusa o Lógica Borrosa, y se basa en lo relativo de lo observado. En la lógica clásica (binaria o booleana) se tiene solo dos estados posibles: verdadero y falso (1 ó 0), en la lógica multivalor se incluyen sistemas lógicos que admiten varios valores de verdad posibles. En cambio en la lógica Difusa se asigna valores intermedios dentro de una escala a fin de cuantificar una incertidumbre. Por ejemplo según la lógica clásica solo se pueden definir la temperatura como “fría” y como “caliente”, según la lógica difusa se pueden asignar infinitos valores intermedios como “poco fría”, “templada”, “tibia”, “algo caliente”, etc. 12 Todo sistema puede ser representado matemáticamente utilizando técnicas de identificación y parametrización de sistemas, dando lugar a un modelo matemático, cuyo comportamiento puede ser simulado y analizado empleando herramientas informáticas. Por tanto, se tiene la capacidad de evaluar el desempeño de dicho conjunto de acciones a fin de establecer si su aplicación constituye la aplicación de la lógica correcta. La lógica Fuzzy utiliza la experiencia del ser humano para generar un conjunto de normas que permitan seguir una lógica de razonamiento. Puede representar el modelo matemático de un sistema mediante el uso de variables lingüísticas y una serie de condiciones o reglas previamente definidas. Sus algoritmos (reglas) hacen uso de instrucciones IF…THEN (SI…ENTONCES), por ejemplo: SI hay mucha demanda de mi producto ENTONCES aumentaré el precio. Elementos: -Variable Lingüística: Son variables evaluadas en un lenguaje natural y no corresponden a un valor numérico exacto. Las variables lingüísticas pueden descomponerse en términos lingüísticos. Ej. temperatura, conducta, posición, tamaño, ganancias, tiempo, etc. - Universo de Discurso: Es el rango de toda la información necesaria para el comportamiento correcto de un sistema. Por ejemplo, “temperatura” en rango de 5 a 100 °C; “rentabilidad” en rango de 10 % a 33 %, etc. - Término Lingüístico: Son los sub-conjuntos o las partes que pueden dividirse una variable lingüística. Por ejemplo para la variable “tamaño” se pueden tener los términos: alto, medio, bajo; para la variable “margen de utilidad” se pueden tener los términos: esperado, apropiado, regular, deficiente, etc. - Conjuntos Difusos: Son formas geométricas que representan una función generada por un término lingüístico. Ellas elaborarán una salida intermedia en el sistema difuso. Pueden ser: triángulos, cuadrados, trapecios, campanas gaussianas, entre otros. - Función de Pertenencia: La función de pertenencia es aquella que asocia a cada elemento de entrada el grado de pertenencia al valor lingüístico asociado. - Fuzzyficación: La fuzzyficación es el proceso realizado para convertir un valor tradicional lógico, binario, decimal, y/o exacto, en un valor o cantidad difusa. - Proceso de Inferencia: Es el proceso o metodología que se realiza para evaluar las normas, dado un conjunto de reglas (instrucciones SI…ENTONCES) se deben permitir determinar un resultado. Permite operar con conjuntos: Unión (OR), Intersección (AND), Complemento (NOT). 13 - Desfuzzyficación: Es el proceso inverso que el de la fuzzificación, es decir, es la acción de convertir un valor difuso en un valor escalar. Figura 9. Diagrama de pertenencia de control Fuzzy 1.6 Descripción general de la solución adoptada Se descarta el uso de un sistema de control basado en Feed Forward debido a que no es capaz de responder a las diversas situaciones de marcha de la instalación. Se descarta el uso de un sistema de control predictivo adaptativo experto por el elevado coste que tiene su implementación para una instalación de las características del sistema de control de vertidos. Se opta finalmente por un sistema basado en lógica difusa por su sencillez y adaptabilidad a las condiciones del proceso de control de vertidos. 1.7 Prescripciones técnicas La aplicación tiene que ser compatible con el sistema de control Siemens S7 v6.1 y debe usar los bloques estándar definidos por la PCT Global Community de Bayer AG. 14 1.8 Puesta en marcha y funcionamiento Comprobación de los requisitos legales: se comprobarán los parámetros de vertido establecidos por la administración en la concesión de la licencia de actividades. Comprobación de la interacción con elementos de seguridad: se comprobará que las nuevas funciones no interfieran en las cadenas de seguridad establecidas para la operación segura de la instalación. Comprobación de la operatividad de los dispositivos: se comprobará que tanto el programa principal, como los dispositivos actuadores operan bajo los parámetros establecidos en el proyecto. 1.9 Resumen del presupuesto El precio del presupuesto de licitación resultante es de 13.495,46 € (trece mil cuatrocientos noventa y cinco euros con cuarenta y seis céntimos), gastos generales, beneficio industrial e IVA incluidos. Tal y como se encuentra detallado en el apartado 4 del presupuesto. Tarragona, a 7 de Abril de 2014 Firmado: José Luis Pelegrí Ingeniero en Automática y Electrónica Industrial Nº colegiado: 47757649 15 2 MEMORIA DE CÁLCULO 2.1 Planta La respuesta en equilibrio del sistema tiende a ir a pH 12 que es el pH de la solución tampón del tanque. Para obtener dicha respuesta se desconecta el regulador de pH y a partir de un valor estable de pH se hace pasar el medio básico para ver la respuesta del medidor de pH ante el cambio (respuesta del sistema en lazo abierto). Figura 10. Respuesta en lazo abierto del sistema Figura 11. Respuesta en lazo cerrado para cambio de consigna de pH 4 a pH 6 16 2.1.1 Modelo de la planta ante una entrada escalón de HCl En reposo, el sistema intenta volver al pH equilibrio, en este caso pH 12. Para determinar el comportamiento del sistema ante una entrada de HCl se realizan varias pruebas donde se varía la cantidad de HCl del sistema y se observa la respuesta. Se tiene que tener en cuenta que el sistema de dosificación de HCl está compuesto por dos válvulas con dinámicas diferentes, a 160 l/h se cambia de una a otra válvula, por lo que se obtendrá la respuesta del sistema a ambos lados del cambio de válvula. En ambos casos, para determinar la función de transferencia del sistema se aplica una entrada escalón de caudal de HCl y se observa la respuesta del pH. La función de transferencia responde a la siguiente expresión: ∆ ∆ ∙ 1 Para la válvula de menor capacidad se obtienen los siguientes resultados: Q1 [l/h] Q2 [l/h] Q [l/h] pH1 [pH] pH2 [pH] pH T63 [s] 181 93,5 -87,5 5,1 9,5 4,4 225 10 180 9 160 8 140 7 120 6 100 5 80 4 60 3 40 2 20 1 0 0 K11_15F400_X Caudal HCl K11_15F400_Y Apertura válvula pH k11_15q400_1_x 0 40 80 120 160 200 240 280 320 360 400 440 480 520 560 200 Figura 12. Respuesta temporal del pH a una entrada escalón de HCl con válvula pequeña 17 Obteniendo la siguiente función de transferencia: 0,0002235 0,004444 Figura 13. Respuesta temporal del pH a una entrada escalón de HCl con válvula pequeña en Matlab Para la válvula de mayor capacidad se realizan las siguientes pruebas: Q1 [l/h] Q2 [l/h] Q [l/h] pH1 [pH] pH2 [pH] pH T63 [s] 237 180 -57 3,7 5,1 1,4 185 Gg(s) 6 250 5 200 4 150 3 100 2 50 K11_15F400_X Caudal HCl K11_15F400_Y Apertura válvula pH k11_15q400_1_x 1 0 t 25 55 85 115 145 175 205 235 265 295 325 355 385 415 445 0 Figura 14. Respuesta temporal del pH a una entrada escalón de HCl con válvula grande Obteniendo la siguiente función de transferencia: 0,0001328 0,005405 18 Figura 15. Respuesta temporal del pH a una entrada escalón de HCl con válvula grande A continuación se puede ver la diferencia de ganancia de cada una de las válvulas (-- valv. Pequeña / oo valv. Grande): Figura 16. Diagrama Bode de comparativa de respuestas en frecuencia de válvulas grande y pequeña 19 El mezclador y la longitud de tubería desde la válvula de regulación hasta la corriente principal de agua residual infieren al sistema un retardo de 30’’ en la respuesta. El sistema se puede representar con el siguiente diagrama de bloques: Figura 17. Diagrama de bloques sistema HCl/pH 2.1.2 Modelo del regulador de pH El objetivo del regulador de pH es conseguir el valor de pH deseado mediante la generación del valor de caudal de HCl adecuado. El regulador de Siemens programado en un S7 300 o 400 obedece al siguiente diagrama de bloques: Figura 18. Diagrama de bloques del regulador PID Siemens 20 De este diagrama de bloques se desprende la siguiente expresión: 1 1 1 Finalmente, dado que el regulador real sólo tiene configurados los parámetros de Ganancia, Tiempo integral y Tiempo derivativo, se puede modelar con la siguiente función de transferencia: 1 1 1 Los parámetros del regulador real son: GAIN = -0,3 TN = 100 TV = 0 Obteniéndose la función de transferencia del controlador PID real: 0,3 0,003 A pesar de tener los parámetros del regulador, su salida se tiene que adaptar en ganancia y offset a los requisitos de las válvulas y caudal de HCl necesarios. Para eso se aplican los valores implementados en el proceso real (Ganancia=LMN_FAC=50 y offset=LMN_OFF=-100). Con estos parámetros se obtiene el modelo final del sistema de neutralización de pH. Figura 19. Modelo continuo del sistema de neutralización 21 Para la simulación del sistema se han tenido varias consideraciones. Se parte de un pH en equilibrio de 12 puesto que es el pH base del tanque que se precisa neutralizar. Para comprobar los resultados se ha bajado a un valor de referencia de pH (SP) igual a pH 3.7 y se comprueba que el caudal de HCl necesario corresponda con el real (237 l/h) y se aplica un SP de 5 para ver la respuesta dinámica y que el caudal de pH corresponda con el real (180 l/h). El tiempo que lleva al sistema a alcanzar el valor de consigna desde un pH 3,7 a un pH 5 en la simulación es de unos 750 segundos (12,5 minutos), en el sistema real el tiempo que lleva al sistema a alcanzar un valor de pH de 6 desde un pH 4 es de unos 15 minutos aproximadamente. A continuación se pueden ver los resultados de la simulación, se pueden observar que los tiempos de respuesta también se aproximan a los resultados obtenidos en las pruebas reales (ver figura 11). Figura 20. Respuesta de pH a una variación en el SP. Figura 21. Variación del SP de caudal de HCL para conseguir el pH necesario 22 2.2 Controlador discreto 2.2.1 Modelización del controlador en tiempo discreto La función de transferencia en el dominio frecuencial tiene la siguiente expresión: 0,3 0,003 Partiendo de la función de transferencia del controlador en el dominio frecuencial y aplicando en Matlab la transformada z se obtiene la siguiente función de transferencia (Se toma el método aplicando ZOH y un periodo de muestreo de T= 1 s. 0,3 0,297 1 A continuación se verifican estos resultados con el modelo continuo para contrastar las respuestas del sistema continuo y del sistema discreto. Figura 22. Comparativa modelos continuo y discreto Figura 23. Respuesta del regulador de pH en continuo y en discreto 23 Figura 24. Respuesta del pH de salida en continuo y discreto Como se puede observar de los resultados, los sistemas son idénticos. 2.3 Diseño del controlador Fuzzy A continuación se diseña el controlador Fuzzy en base a los resultados obtenidos del modelo del regulador PID discreto. El diagrama de bloques de ambas topologías de regulación se puede ver en las figuras a continuación. Figura 25. Diagrama bloques sistema PID vs FUZZY 24 A continuación se debe transformar la expresión del regulador discreto en una serie de ecuaciones para poderlo representar con un algoritmo. Figura 26. Diagrama de bloques del regulador Fuzzy Dónde: r(k) es la referencia. u(k) es la entrada en la planta en el instante k. u(k-1) es la entrada de la planta en el instante k-1. e(k) es el error en el instante k. e(k-1) es el error en el instante k-1. y(k) es la salida de la planta. Ke, Kde y Ku son ganancias para sintonizar el control. La expresión de la ecuación en diferencias que representa la acción de control del regulador PID discreto queda como sigue: 0.3 1 1 0.297 → 1 → 1 1 0.3 1 0.3 0,297 0.297 1 1 Una vez obtenida la ecuación del regulador, se deben definir las reglas del controlador borroso. 25 2.3.1 Diseño del controlador borroso Se establecen varias reglas en función de la actuación del regulador. La principal será el regulador discreto que trabajará cercano al punto donde el pH se comporta de manera más lineal. Se definen las funciones de pertenencia en función de los valores de entrada que se tengan que tener en consideración: o o o o pH Muy Básico: MB= 10 pH Básico: B=8 pH Neutro: N=[4,6] pH Ácido: A= 4 A continuación podemos ver la representación gráfica de las funciones de pertenencia según la entrada de valor de pH: Figura 27. Representación gráfica de las funciones de pertenencia. Se añadirán reglas con salidas escalares que actuarán como lo haría un operador humano al trabajar el sistema fuera de la zona lineal de trabajo del regulador. A continuación se muestran las reglas del controlador borroso: pH u(k) Descripción MQ pH muy básico MB SI BQ pH algo básico B ENTONCES N 1 0.3 0,297 1 pH neutro PQ pH ácido A 26 Definiendo: o MQ=400, mucho caudal de HCl necesario o BQ= 300, bastante caudal de HCl necesario o PQ= 100, poco caudal de HCl necesario El modelo del controlador borroso se define en Matlab con la siguiente estructura: Figura 28. Estructura de bloques entrada/salida del modelo fuzzy en Matlab El valor de la salida que se ha definido para el controlador se implementa en el módulo fuzzy y queda de la siguiente manera: Figura 29. Definición de los valores de salida en el bloque fuzzy 27 El conjunto de reglas se define en el módulo fuzzy y queda de a siguiente manera: Figura 30. Set de reglas en el bloque fuzzy en Matlab 2.4 Simulación sistema de control Fuzzy El modelo inicial completo no se puede simular con el nuevo controlador fuzzy puesto que produce errores de continuidad debido a los selectores de qué válvula opera en función del caudal. Para solventar este problema de simulación se obtiene el modelo fuzzyficado del sistema de doble válvula. Para ello se considera la discretización de cada válvula. Para la válvula pequeña: 0,0002235 → 0,004444 0,0002284 1 0,9956 → 0.9956 1 0.0002284 1 0,0001324 1 0,9946 → 0.9946 1 0.0001324 1 Para la válvula grande: 0,0001328 → 0,005405 Las reglas del sistema de inferencia son las siguientes: QHCl SI mucho poco u(k) ENTONCE S Descripción 0.9946 1 0,0001324 1 Caudal 160 0.9956 1 0,0002284 1 Caudal 160 28 El modelo fuzzy del sistema queda de la siguiente manera: Figura 31. Modelo del sistema con válvulas fuzzyficadas A continuación se prueba el modelo sin aplicar las reglas al controlador pero a las válvulas para ver que el sistema responde como antes de convertir el modelo de válvulas discreto al modelo fuzzyficado. Para esto se aplica una entrada escalón de pH, para pasar del valor de pH en equilibrio (pH=12) a un pH=4.1. Una vez estabilizado el pH se comprueba que el comportamientos de las válvulas es el esperado y coincide con el modelo discreto. Figura 32. Resultado de la simulación tras las válvulas fuzzyficadas Como se puede observar, el sistema es muy parecido al obtenido con el modelo continuo del controlador y las válvulas. La mayor similitud la tiene alrededor del punto de trabajo que es donde la función de control es puramente el resultado del regulador fuzzyficado (tras escalón de entrada en el segundo 2000), mientras que en la zona más 29 alejada, donde se implementan otras reglas con salidas constantes, el regulador es más suave y consigue mitigar el sobrepico que aparece en el modelo real (desde el instante inicial hasta le segundo 2000) . Figura 33. Comparativa respuesta controlador discreto VS controlador borroso A continuación se simula el controlador borroso aplicando todo el conjunto de reglas para los valores de pH de entrada y el modelo borroso del comportamiento de la neutralización en función de la válvula que está operativa, que a su vez depende del valor de caudal de HCl requerido por el sistema par alcanzar el valor de pH adecuado. Figura 34. Salida del controlador borroso A continuación se puede ver la respuesta del sistema. Figura 35. Respuesta de pH en la simulación del controlador borroso 30 Durante la simulación del sistema se puede observar como trabaja la inferencia y la desfuzzyficación en función del conjunto de reglas que se han definido y del valor de las diferentes entradas: Figura 36. Aplicación de las reglas, inferencia y desfuzzyficación en la simulación 2.5 Implementación del controlador Fuzzy Para comprobar que los datos obtenidos del control con el regulador Fuzzy son correctos y que se puede implementar en un PLC, se sustituye el módulo fuzzy por una función donde se implementan las funciones desglosadas de la inferencia (si entonces) para cada una de las funciones de pertenencia. Figura 37. Modelo del sistema sustituyendo bloque Fuzzy por función La estructura de bloques para la obtención del controlador difuso es el siguiente: FUZZIFICACIÓN INFERENCIA DESFUZZIFICACIÓN BASE DE DATOS Figura 38. Estructura de un regulador difuso 31 DESNORMALIZACIÓN ENTRADA NORMALIZACIÓN BASE DE REGLAS SALIDA 2.5.1 Fuzzyficación El primer paso es convertir las entradas numéricas en valores difusos. Proporciona el grado de pertenencia de una variable de entrada en cada uno de los conjuntos difusos asociados a las variables lingüísticas de la entrada.). 0, , 1, 1 , 0, Figura 39. Función de pertenencia trapezoidal Las ecuaciones que se deben programar en la función fuzzy son las siguientes: Si pH<= entonces =0; Si pH> y pH<= entonces =(pH- )/( Si pH> y pH<= entonces =1; Si pH> y pH<= entonces =( Si pH> entonces - ); -pH)/( - ); =0; Las funciones de pertenencia son Ácido (A), Neutro (N), Básico (B) y Muy Básico (MB) tal y como se definen en la “Figura 39”. Para la función de pertenencia A tenemos la siguiente inferencia: PARAMETRO VALOR 0 0 3 4 Con estos parámetros tenemos las siguientes ecuaciones: Si pH> 0 y pH<= 3 entonces Si pH> 3 y pH<= 4 entonces Si pH> 4 entonces =0; =1; =( 4-pH); 32 Para la función de pertenencia N tenemos la siguiente inferencia: PARAMETRO VALOR 3 4 6 7 Con estos parámetros tenemos las siguientes ecuaciones: Si pH<= 3 entonces =0; Si pH> 3 y pH<=4 entonces =(pH- 3); Si pH> 4 y pH<= 6 entonces =1; Si pH> 6 y pH<= 7 entonces =( 7 -pH); Si pH> 7 entonces =0; Para la función de pertenencia B tenemos la siguiente inferencia: PARAMETRO VALOR 6 7 9 10 Con estos parámetros tenemos las siguientes ecuaciones: Si pH<= 6 entonces =0; Si pH> 6 y pH<= 7 entonces =(pH- 6); Si pH> 7 y pH<= 9 entonces =1; Si pH> 9 y pH<= 10 entonces =( 10-pH); Si pH> 10 entonces =0; Para la función de pertenencia MB tenemos la siguiente inferencia: PARAMETRO VALOR 9 10 14 14 33 Con estos parámetros tenemos las siguientes ecuaciones: Si pH<= 9 entonces =0; Si pH> 9 y pH<= 10 entonces =(pH- 9); Si pH> 10 y pH<= 14 entonces =1; El fragmento de código correspondiente a esta etapa es el siguiente: %%%%grado de pertenencia a estas en funciÛn del valor de pH n_a=0; n_n=0; n_b=0; n_mb=0; CoG=0; %%%ENTRADA pH %%A (Acido) a_a=0; b_a=0; c_a=3; d_a=4; if (pH>=b_a)&&(pH<=c_a) n_a=1; elseif (pH>c_a)&&(pH<=d_a) n_a=(d_a-pH)/(d_a-c_a); elseif (pH>d_a) n_a=0; end %%N (Neutro) a_n=3; b_n=4; c_n=6; d_n=7; if (pH<=a_n) n_n=0; elseif (pH>a_n)&&(pH<=b_n) n_n=(pH-a_n)/(b_n-a_n); elseif (pH>b_n)&&(pH<=c_n) n_n=1; elseif (pH>c_n)&&(pH<=d_n) n_n=(d_n-pH)/(d_n-c_n); elseif (pH>d_n) n_n=0; end %%B (Basico) a_b=6; b_b=7; c_b=9; d_b=10; if (pH<=a_b) n_b=0; elseif (pH>a_b)&&(pH<=b_b) n_b=(pH-a_b)/(b_b-a_b); elseif (pH>b_b)&&(pH<=c_b) n_b=1; elseif (pH>c_b)&&(pH<=d_b) n_b=(d_b-pH)/(d_b-c_b); elseif (pH>d_b) n_b=0; end %%MB (Muy Basico) a_mb=9; b_mb=10; c_mb=14; d_mb=14; if (pH<=a_mb) n_mb=0; elseif (pH>a_mb)&&(pH<=b_mb) n_mb=(pH-a_mb)/(b_mb-a_mb); elseif (pH>b_mb)&&(pH<=c_mb) n_mb=1; end 34 2.5.2 Base de reglas Contiene el conjunto de reglas lingüísticas de control que caracterizan los objetivos y la estrategia de control definida. A continuación se muestran las reglas del controlador fuzzy: pH u(k) Descripción MQ pH muy básico MB SI BQ pH algo básico B ENTONCES N 1 0.3 0,297 1 pH neutro PQ pH ácido A Definiendo: o MQ=400, mucho caudal de HCl necesario o BQ= 300, bastante caudal de HCl necesario o PQ= 100, poco caudal de HCl necesario El fragmento de código correspondiente a esta etapa es el siguiente: %%%%Vemos en funciÛn del valor de pH que regla tenemos que aplicar %%PQ (Poco Caudal) PQ=5; %%NQ (Normal Caudal) NQ=-0.3*e+0.297*de+du; %%BQ (Bastante Caudal) BQ=7; %%MQ (Mucho Caudal) MQ=8; 35 2.5.3 Inferencia La inferencia proporciona una salida difusa en función de los valores borrosos de las entradas y de las reglas lingüísticas difusas. En este caso se aplica el método de inferencia MAX-MIN tal y como se puede ver en la figura siguiente: Figura 40. Método de inferencia MAXMIN A continuación se muestra un ejemplo de las funciones de pertenencia en función del valor de pH: A 0 3 4 N B 6 7 MB 9 10 14 Figura 41. Representación del grado de pertenencia Si se supone que el valor de pH es 9,3, según las funciones de pertenencia este valor pertenece a la zona B y a la MB en diferente grado, para la zona B, la salida del regulador es 7 y para la zona MB la salida del regulador es 8. A continuación se muestra el cálculo de la inferencia a partir de las expresiones de las funciones y la base de reglas: B MB 9,3 9,3 → 9,3 9 9,3 10 Figura 42. Aplicación de las expresiones de la inferencia 36 10 10 9 9 10 9 0,7 0,3 Aplicando la inferencia a partir de la base de reglas y del grado de pertenencia se obtiene un conjunto de salidas difusas a modo de singletones: B MB B MB 9 9,3 10 7 ∆Ton 8 Figura 43. Aplicación gráfica de la inferencia 2.5.4 Desfuzzyficación Proporciona un valor numérico a la salida, a partir del valor difuso de salida generado por la etapa de inferencia. A continuación se puede ver cómo se calcula la salida escalara partir de los valores obtenidos en el proceso de inferencia donde se han obtenido una serie de singletones: Figura 44. Ecuación general para el cálculo del centro de gravedad (CoG) La salida según la fase de inferencia: ∆ ∆ ∆ ∆ B ∆ MB fB fMB ∆Ton 8→ 9→ 0,7 7 0,7 Figura 45. Desfuzzyficación de los singletones La salida del regulador para un valor de entrada de pH de 9,3 será 7,3. 37 ∆ 0,3 8 0,3 7,3 Dado que sólo hay una variable de entrada que aplique a las base de reglas, el paso de inferencia y desfuzzyficación se ha implementado a la vez. El fragmento de código correspondiente a la etapa de inferencia y de desfuzzyficación es el siguiente: %%%Si el pH es ·cido entonces Poco Caudal %% 0<pH<=3 -> SÛlo A if (pH<=3) CoG=PQ*n_a;end %% 3<pH<=4 -> CoG A y N if (pH>3)&&(pH<=4) CoG= (PQ*n_a+NQ*n_n);end %%%Si el pH es neutro entonces Normal Caudal %% 4<pH<=6 -> SÛlo N if (pH>4)&&(pH<=6) CoG=NQ*n_n;end %% 6<pH<=7 -> CoG N y B if (pH>6)&&(pH<=7) CoG=(NQ*n_n+BQ*n_b); end %%%Si el pH es Basico entonces Bastante Caudal %% 7<pH<=9 -> SÛlo B if (pH>7)&&(pH<=9) CoG=BQ*n_b;end %% 9<pH<=10 -> CoG B y MB if (pH>9)&&(pH<=10) CoG=(BQ*n_b+MQ*n_mb); end %%%Si el pH es Muy Basico entonces Mucho Caudal %% 10<pH -> SÛlo MB if (pH>10) CoG=MQ*n_mb;end El código completo se puede consultar en el “Anexo 5.1”. 2.6 Determinación de la validez del controlador fuzzy Para verificar el comportamiento del sistema discreto se crea un modelo en lógica difusa con la siguiente regla, que no hace más que forzar una salida u(k) según el regulador discreto obtenido para cualquier valor de e(k) para que se comporte igual que el controlador discreto. e(k) SI N ENTONCES u(k) 1 0.3 Descripción 0,297 38 1 Regulador discreto Para este fin creamos un modelo en Simulink para poder comparar el comportamiento del modelo continuo (en la parte superior) y el modelo fuzzy (en la parte inferior) como el de la figura: Figura 46. Comparativa del modelo continuo y el modelo fuzzy El controlador fuzzy tiene las entradas e(k) que se identifica por “e”, e(k-1) que se identifica por “de”, u(k-1) que se identifica por “du” y la salida u(k) que se identifica por “u”. Se utiliza el método de inferencia Sugeno puesto que permite que la funciones de pertenencia de las salidas puedan ser combinaciones lineales de las entradas y escalares, que es lo que interesa en este caso. Figura 47. Sistema de inferencia fuzzy 39 Para las pruebas del modelo la función de pertenencia de pH será única para todo valor de pH y no existirá para e(k), e(k-1) y u(k-1) y para u(k) será la combinación lineal de las variables de entrada. En el modelo final, las reglas se aplicarán al valor de entrada de pH y el resto de variables de entrada se utilizarán para obtener u(k) a partir de combinación lineal de éstas. Figura 48. Funciones de pertenencia Con esto sólo existe una regla, para todo valor de e(k), la salida u(k) será la combinación lineal introducida en el sistema de inferencia. La conclusión se muestra en la gráfica siguiente, y es que el comportamiento del sistema discreto expresado en ecuación de diferencias es idéntico al modelo continuo inicial, por lo que la aproximación discreta es válida y se puede aplicar al controlador borroso. Figura 49. Respuesta temporal de la controlador en ecuación de diferencias y del controlador continuo 40 La diferencia que se observa en este comportamiento y en el comportamiento del controlador discreto puede ser debida ala modelización borrosa que se ha tenido que realizar de la reacción de neutralización y el cambio de válvulas. Si se aplica únicamente el modelo continuo de la válvula pequeña se observa que las respuestas del modelo de controlador borroso (figura 51) y el discreto (figura 24) son idénticas. El modelo que se ha aplicado para la demostración de que ambas respuestas son idénticas es el siguiente: Figura 50. Modelo para la validación de la respuesta del controlador borroso Y el resultado queda como sigue: Figura 51. Respuesta temporal de la controlador borroso 41 A continuación se puede ver el resultado de la salida del controlador a partir de las ecuaciones que se han implementado en la función en Matlab. Figura 52. Salida de la función de control que reproduce el control fuzzy A continuación se puede ver la respuesta del sistema. Figura 53. Resultado de la simulación con la función que reproduce el control fuzzy Como se puede comprobar la salida del controlador borroso (mediante la aplicación del módulo de Simulink) y de la función (desfuzzyficación del modelo mediante código de programación) son idénticas (figuras 35 y 53), por lo que se puede concluir que el conjunto de instrucciones son válidos y aplicables a cualquier máquina a partir de sencillas instrucciones de lenguaje de programación a alto nivel, que también se pueden implementar en los PLC actuales. 42 2.7 Implementación del controlador en un PLC Para comprobar que el modelo es correcto y funcional, se implementa el código del regulador en un PLC de la serie S7 400 de Siemens y el código necesario se realizará utilizando el interface de PCS7 de Siemens. Tal y como se muestra en el “Anexo 5.3”, se ha creado la función para la desfuzzyficación de las válvulas de dosificación de HCl para poder simular en tiempo real el modelo de la reacción de neutralización en el PLC. El entorno para simular el sistema está compuesto por: - PLC S7-417-4H Estación de ingeniería PC Simatic Servidor WinCC PC Simatic Esta es la zona de simulación habilitada para la realización de las pruebas: Figura 54. Instalación para la simulación del modelo Para poder observar los resultados de la simulación se ha creado una pantalla que reproduce el sistema de neutralización de aguas residuales tal y como se presenta en los diagramas R&I iniciales con una serie de gráficas para verificar la salida del control y el valor de pH durante el tiempo de la simulación. 43 Figura 55. Pantalla de control del proceso de neutralización El código del programa está realizado con una serie de bloques lógicos cuyo contenido es el siguiente: Figura 56. Módulo CFC con la lógica del sistema 44 A continuación se muestra el detalle del bloque correspondiente a la aplicación de los modelos fuzzy del regulador y de la reacción de neutralización que corresponden al diagrama en Simulink: Figura 57. Detalle del diagrama de bloques regulador y neutralización Para la obtención de los resultados se ha puesto en práctica un ensayo que consiste en desconectar el bloque del regulador para que el sistema alcance el pH en equilibrio del sistema (pH=12), tras esto se ha fijado la consigna de pH=3,7 y se ha activado el regulador. Una vez alcanzado el valor de consigna y teniendo el sistema estable, se ha fijado un nuevo valor de consigna a pH=5.5 y se ha esperado a que la respuesta del sistema fuera estable y con el valor de pH final deseado. El resultado de la simulación aplicando los valores de pH que se han usado en la simulación en Matlab es el siguiente: Figura 58. Respuesta de pH en el modelo de PLC 45 En la siguiente figura se puede comparar la respuesta del sistema programado en el PLC con la respuesta obtenida por el modelo en Matlab. Figura 59. Respuesta del regulador en el modelo de PLC VS modelo en Matlab En los anexos se puede ver el diagrama de bloques completo para la implementación del programa en el PLC y el código para aplicación de los modelos fuzzy del regulador y de la reacción de neutralización. Tarragona, a 7 de Abril de 2014 Firmado: José Luis Pelegrí Ingeniero en Automática y Electrónica Industrial Nº colegiado: 47757649 46 3 PLANOS 3.1 Localización fábrica 3.2 Ubicación sistema de recogida de aguas residuales 3.3 Diagrama R&I del proceso de neutralización 47 48 49 50 4 PRESUPUESTO 4.1 Mediciones Código Uds. Designación Uds. Long Alto Ancho Subtotal Total CAPÍTULO 1: DISEÑO SISTEMA DE CONTROL FUZZY 1-001 U SISTEMA DE CONTROL FUZZYCONTROL++ V6 SOFTWARE DE DISEÑO Y PROGRMACIÓN SISTEMAS DE CONTROL FUZZY EN SISTEMAS DE CONTROL SIEMENS 1 1 1-002 H DISEÑADOR CONTROL SISTEMA INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 50 50 1-003 H PROGRAMADOR DE CONTROL SISTEMA INGENIERO TÉCNICO PROGRAMADOR DE SIEMENS S7 INDUSTRIAL SISTEMAS 5 5 51 Código Uds. Designación Uds. Long Alto Ancho Subtotal Total CAPÍTULO 2: IMPLEMENTACIÓN SISTEMA DE CONTROL FUZZY 2-001 H DISEÑADOR CONTROL SISTEMA INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 20 20 2-002 H PROGRAMADOR DE CONTROL SISTEMA INGENIERO TÉCNICO PROGRAMADOR DE SIEMENS S7 INDUSTRIAL SISTEMAS 25 25 2-003 H INSTRUMENTISTA 1A INSTRUMENTISTA 1A ESPECIALISTA PRUEBAS EN CAMPO 5 5 Código Uds. Designación Uds. Long Alto Ancho Subtotal Total CAPÍTULO 3: TEST Y PUESTA EN MARCHA 1-002 H DISEÑADOR CONTROL SISTEMA INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 10 10 1-003 H PROGRAMADOR DE CONTROL SISTEMA INGENIERO TÉCNICO PROGRAMADOR DE SIEMENS S7 INDUSTRIAL SISTEMAS 15 15 1-004 H INSTRUMENTISTA 1A INSTRUMENTISTA 1A ESPECIALISTA PRUEBAS EN CAMPO 15 15 52 4.2 Cuadro de precios Código Uds. Designación Precio Precio en letra CAPÍTULO 1: DISEÑO SISTEMA DE CONTROL FUZZY 1-001 € SISTEMA DE CONTROL FUZZYCONTROL++ V6 2.112,00 DOS MIL CIENTO DOCE SOFTWARE DE DISEÑO Y PROGRMACIÓN SISTEMAS DE CONTROL FUZZY EN SISTEMAS DE CONTROL SIEMENS 1-002 €/h DISEÑADOR CONTROL SISTEMA 64,5 SESENTA Y CUATRO CENTIMOS 35,3 TREINTA Y CENTMOS CON CINCUENTA INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 1-003 €/h PROGRAMADOR SISTEMA DE CONTROL CINCO CON TREINTA INGENIERO TÉCNICO INDUSTRIAL PROGRAMADOR DE SISTEMAS SIEMENS S7 Código Uds. Designación Precio Precio en letra CAPÍTULO 2: IMPLEMENTACIÓN SISTEMA DE CONTROL FUZZY 2-001 €/h DISEÑADOR CONTROL SISTEMA 64,5 SESENTA Y CUATRO CENTIMOS CON CINCUENTA 35,3 TREINTA Y CENTMOS 25,6 VEINTICINCO CON SESENTA CENTIMOS INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 2-002 €/h PROGRAMADOR SISTEMA DE CONTROL CINCO CON TREINTA INGENIERO TÉCNICO INDUSTRIAL PROGRAMADOR DE SISTEMAS SIEMENS S7 2-003 €/h INSTRUMENTISTA 1A INSTRUMENTISTA ESPECIALISTA PRUEBAS CAMPO 1A EN 53 Código Uds. Designación Precio Precio en letra CAPÍTULO 3: TEST Y PUESTA EN MARCHA 3-001 €/h DISEÑADOR CONTROL SISTEMA 64,5 SESENTA Y CUATRO CENTIMOS CON CINCUENTA 35,3 TREINTA Y CENTMOS 25,6 VEINTICINCO CON SESENTA CENTIMOS INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 3-002 €/h PROGRAMADOR SISTEMA DE CONTROL CINCO CON TREINTA INGENIERO TÉCNICO INDUSTRIAL PROGRAMADOR DE SISTEMAS SIEMENS S7 3-003 €/h INSTRUMENTISTA 1A INSTRUMENTISTA ESPECIALISTA PRUEBAS CAMPO 4.3 1A EN Aplicación de precios Código Uds. Designación Mediciones Precio/Ud. Total CAPÍTULO 1: DISEÑO SISTEMA DE CONTROL FUZZY 1-001 € SISTEMA DE CONTROL FUZZYCONTROL++ V6 1 2.112,00 2.112,00 50 64,5 3.225,00 5 35,3 176,50 SOFTWARE DE DISEÑO Y PROGRMACIÓN SISTEMAS DE CONTROL FUZZY EN SISTEMAS DE CONTROL SIEMENS 1-002 € DISEÑADOR CONTROL SISTEMA INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 1-003 € PROGRAMADOR SISTEMA DE CONTROL INGENIERO TÉCNICO INDUSTRIAL PROGRAMADOR DE SISTEMAS 54 SIEMENS S7 TOTAL CAPITULO 1 Código Uds. Designación Mediciones Precio/Ud. 5.513,50 Total CAPÍTULO 2: IMPLEMENTACIÓN SISTEMA DE CONTROL FUZZY 2-001 € DISEÑADOR CONTROL SISTEMA 20 64,5 1.290,00 25 35,3 882,50 5 25,6 128,00 INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 2-002 € PROGRAMADOR SISTEMA DE CONTROL INGENIERO TÉCNICO INDUSTRIAL PROGRAMADOR DE SISTEMAS SIEMENS S7 2-003 € INSTRUMENTISTA 1A INSTRUMENTISTA ESPECIALISTA PRUEBAS CAMPO 1A EN TOTAL CAPITULO 2 Código Uds. Designación Mediciones Precio/Ud. 2.300,50 Total CAPÍTULO 3: TEST Y PUESTA EN MARCHA 3-001 € DISEÑADOR CONTROL SISTEMA 10 64,5 645,00 15 35,3 529,50 15 25,6 384,00 INGENIERO AUTOMÁTICA Y ELECTRÓNICA INDUSTRIAL DISEÑADOR DE SISTEMAS DE CONTROL 3-002 € PROGRAMADOR SISTEMA DE CONTROL INGENIERO TÉCNICO INDUSTRIAL PROGRAMADOR DE SISTEMAS SIEMENS S7 3-003 € INSTRUMENTISTA 1A INSTRUMENTISTA ESPECIALISTA PRUEBAS CAMPO 1A EN 55 TOTAL CAPITULO 3 4.4 1.585,50 Resumen del presupuesto CAPITULO 1.- DISEÑO SISTEMA DE CONTROL. 5.513,50 € CAPITULO 2.- IMPLEMENTACIÓN SISTEMA DE CONTROL. 2.300,50 € CAPITULO 3.- TEST Y PUESTA EN MARCHA. 1.558,50 € Presupuesto Ejecución Material 9.372,50 € Beneficio industrial (6%) 562,35 € Gastos generales (13%) 1.218,42 € Presupuesto Ejecución Contrato 11.153,28 € I.V.A. (21%) 2.342,18 € PRESUPUESTO DE LICITACION 13.495,46 € Tarragona, a 7 de Abril de 2014 Firmado: José Luis Pelegrí Ingeniero en Automática y Electrónica Industrial Nº colegiado: 47757649 56 5 ANEXOS 5.1 Código programa de inferencia del controlador Fuzzy en matlab function fuzzy = fcn(e, de, du, pH) %#codegen %%%%Primero definimos la geometrÌa de las funciones de pertenencia y el %%%%valor de pertenencia a estas en funciÛn del valor de pH n_a=0; n_n=0; n_b=0; n_mb=0; CoG=0; %%%ENTRADA pH %%A (Acido) a_a=0; b_a=0; c_a=3; d_a=4; if (pH>=b_a)&&(pH<=c_a) n_a=1; elseif (pH>c_a)&&(pH<=d_a) n_a=(d_a-pH)/(d_a-c_a); elseif (pH>d_a) n_a=0; end %%N (Neutro) a_n=3; b_n=4; c_n=6; d_n=7; if (pH<=a_n) n_n=0; elseif (pH>a_n)&&(pH<=b_n) n_n=(pH-a_n)/(b_n-a_n); elseif (pH>b_n)&&(pH<=c_n) n_n=1; elseif (pH>c_n)&&(pH<=d_n) n_n=(d_n-pH)/(d_n-c_n); elseif (pH>d_n) n_n=0; end %%B (Basico) a_b=6; b_b=7; c_b=9; d_b=10; if (pH<=a_b) n_b=0; elseif (pH>a_b)&&(pH<=b_b) n_b=(pH-a_b)/(b_b-a_b); elseif (pH>b_b)&&(pH<=c_b) n_b=1; elseif (pH>c_b)&&(pH<=d_b) n_b=(d_b-pH)/(d_b-c_b); elseif (pH>d_b) n_b=0; end %%MB (Muy Basico) a_mb=9; b_mb=10; c_mb=14; d_mb=14; if (pH<=a_mb) n_mb=0; elseif (pH>a_mb)&&(pH<=b_mb) n_mb=(pH-a_mb)/(b_mb-a_mb); elseif (pH>b_mb)&&(pH<=c_mb) n_mb=1; end 57 %%%%Vemos en funciÛn del valor de pH que regla tenemos que aplicar %%PQ (Poco Caudal) PQ=5; %%NQ (Normal Caudal) NQ=-0.3*e+0.297*de+du; %%BQ (Bastante Caudal) BQ=7; %%MQ (Mucho Caudal) MQ=8; %%%Si el pH es ·cido entonces Poco Caudal %% 0<pH<=3 -> SÛlo A if (pH<=3) CoG=PQ*n_a;end %% 3<pH<=4 -> CoG A y N if (pH>3)&&(pH<=4) CoG= (PQ*n_a+NQ*n_n);end %%%Si el pH es neutro entonces Normal Caudal %% 4<pH<=6 -> SÛlo N if (pH>4)&&(pH<=6) CoG=NQ*n_n;end %% 6<pH<=7 -> CoG N y B if (pH>6)&&(pH<=7) CoG=(NQ*n_n+BQ*n_b); end %%%Si el pH es Basico entonces Bastante Caudal %% 7<pH<=9 -> SÛlo B if (pH>7)&&(pH<=9) CoG=BQ*n_b;end %% 9<pH<=10 -> CoG B y MB if (pH>9)&&(pH<=10) CoG=(BQ*n_b+MQ*n_mb); end %%%Si el pH es Muy Basico entonces Mucho Caudal %% 10<pH -> SÛlo MB if (pH>10) CoG=MQ*n_mb;end %%%% La salida ser· el resultado del Centro de Gravedad para ese valor de %%%% pH concreto fuzzy = CoG; 58 5.2 Juego de pruebas del código resultado de la acción de control del regulador Para realizar el juego de pruebas se simula el valor de pH con una Fuente y se grafica tanto el pH como la salida del regulador. Figura 60. Modelo para juego de pruebas A continuación están representadas las respuestas del regulador a diferentes valores de entrada de pH: a) pH=1 (salida=5) Figura 61. Respuesta regulador a entrada de pH=1 59 b) pH=3 (salida=5) Figura 62. Respuesta regulador a entrada de pH=3 c) pH=7 (salida=7) Figura 63. Respuesta regulador a entrada de pH=7 d) pH=9 (salida=7) Figura 64. Respuesta regulador a entrada de pH=9 60 e) pH=9,3 (salida=7,3 según cálculo apartado 2.5) Figura 65. Respuesta regulador a entrada de pH=9,3 f) pH=10 (salida=8) Figura 66. Respuesta regulador a entrada de pH=10 g) pH=12 (salida=8) Figura 67. Respuesta regulador a entrada de pH=12 61 5.3 Desfuzzyficación válvulas de dosificación HCl A continuación se describe el proceso para obtener la función de inferencia para la desfuzzyficación del modelo fuzzy de las válvulas de dosificación de HCl. Figura 68. Función de pertenencia trapezoidal El primer paso es convertir las funciones de pertenencia en conjuntos, calcular la salida para cada función de pertenencia y calcular la salida en los puntos donde confluyen dos funciones de pertenencia que será el resultado del centro de masas ponderado (Sugeno). 0, , 1, 1 , 0, Figura 69. Función de pertenencia trapezoidal Las ecuaciones que se deben programar en la función fuzzy son las siguiente: Si Caudal<= entonces =0; Si Caudal> y Caudal<= entonces =(Caudal- )/( Si Caudal> y Caudal<= entonces =1; Si Caudal> y Caudal<= entonces =( Si Caudal> entonces - ); -Caudal)/( - ); =0; Las funciones de pertenencia son “poco” y “mucho” tal y como se definen en la Figura 56. 62 Para la función de pertenencia “poco” tenemos la siguiente inferencia: PARAMETRO VALOR 0 0 159 160 Con estos parámetros tenemos las siguientes ecuaciones: Si Caudal> 0 y Caudal<= 159 entonces =1; Si Caudal> 159 y Caudal<= 160 entonces =( 160-pH); Si Caudal> 160 entonces =0; Para la función de pertenencia “mucho” tenemos la siguiente inferencia: PARAMETRO VALOR 159 160 400 400 Con estos parámetros tenemos las siguientes ecuaciones: Si Caudal<= 159 entonces =0; Si Caudal> 159 y pH<= 160 entonces Si Caudal> 160 y pH<= 400 entonces =(Caudal- 159); =1; Las reglas de inferencia son las siguientes, donde u(k) es la salida de los modelos de válvula pequeña y grande en cada caso: QHCl SI mucho ENTONCES poco u(k) Descripción 0.9946 1 0,0001324 1 Caudal 160 0.9956 1 0,0002284 1 Caudal 160 63 El esquema en simulink resultante es el siguiente: Figura 70. Modelo del sistema con funciones desfuzzificadas Con estos parámetros se implementa la siguiente función: function valv = fcn(Q, dq, dv) %%%%Primero definimos la gemoetrÌa de las funciones de pertenencia y el %%%%valor de pertenencia a estas en funciÛn del valor de caudal n_p=0; n_m=0; CoGv=0; %%%ENTRADA Caudal %%poco a_p=0; b_p=0; c_p=159; d_p=160; if (Q>=b_p)&&(Q<=c_p) n_p=1; elseif (Q>c_p)&&(Q<=d_p) n_p=(d_p-Q)/(d_p-c_p); elseif (Q>d_p) n_p=0; end %%mucho a_m=159; b_m=160; c_m=400; d_m=400; if (Q<=a_m) n_m=0; elseif (Q>a_m)&&(Q<=b_m) n_m=(Q-a_m)/(b_m-a_m); elseif (Q>b_m)&&(Q<=c_m) n_m=1; end %%%%Vemos en funciÛn del valor de Caudal que regla tenemos que aplicar %%Valvula grande grande=-0.0001324*dq+0.9946*dv; %%Valvula pequena pequena=-0.0002284*dq+0.9956*dv; %%%Si el Caudal es pequeÒo entonces valvula pequeÒa es ·cido entonces Poco Caudal if (Q<159) CoGv=pequena*n_p;end %%Si caudal entre medio, se busca centro de gravedad de las valvulas if (Q>=159)&&(Q<160) CoGv= (pequena*n_p+grande*n_m);end %%%Si el Caudal es mucho entonces valvula grande if (Q>=160) CoGv=grande*n_m;end %%%% La salida ser· el resultado del Centro de Gravedad para ese valor de %%%% caudal concreto valv = CoGv; 64 El resultado es idéntico al obtenido con el módulo fuzzy: Figura 71. Salida de la función de control que reproduce el comportamiento de las válvulas A continuación se puede ver la respuesta del sistema. Figura 72. Resultado de la simulación con la función que reproduce el comportamiento de las válvulas 65 5.4 Código acción de control del regulador en PLC 66 67 5.5 Código modelo neutralización pH en PLC 68 5.6 Diagrama de bloques del sistema de control en PLC 69 70 6 REFERENCIAS [1] Apuntes assignatura “Control lògica difusa” de la URV [2] Fuzzy Identificaction of Systems and its Applications to Modeling and Control”, Sugeno, Michio y Tomohiro Takagi [3] “Ingeniería de Control Moderno” Katsuhito Ogata [4] “FuzzyControl++ User manual” Siemens [5] http://www.fuzzytech.com/ [6] “Control Adaptativo Predictivo Experto” Juan M. Martín y José Rodellar [7] “Identificación de sistemas de segundo orden” Roberto Angel Rivero [8] “Fuzzy Logic Toolbox user’s manual” Mathworks [9] “Simatic S7 Fuzzy Control” Siemens 71