Methodology
DEMOGRAPHIC FACTORS
D.1.1 Dinámica del proceso
La dinámica del proceso descrita por el experto es la siguiente:
“Cuando el nivel del tanque actual se encuentre muy por debajo del nivel deseado, la válvula tendrá que abrirse mucho para dejar entrar mucha agua. Conforme vaya subiendo el nivel y se vaya acercando al valor deseado, esa abertura de válvula tendrá que ir disminuyendo hasta llegar a una manipulación actual y mantenerla cuando el valor deseado haya sido alcanzado.
En el caso contrario, cuando el nivel actual se encuentre por arriba del nivel deseado, la válvula tendrá que cerrarse mucho al principio pero cada vez abriéndose poco a poco hasta llegar al nivel deseado y mantener la manipulación”.
D.1.2 Diseño del controlador
Como entradas al controlador se tomaron el error actual y su razón de cambio. El error se calculó restando el valor actual del nivel del valor de referencia (referencia). El derivativo del error, permite saber si el nivel en el tanque crece o decrece y en su proporción. De esta manera, con las dos entradas, se puede saber que tanto se desvía el nivel actual del nivel deseado y si se aproxima o se aleja.
La salida del controlador es la manipulación de la válvula de alimentación del sistema. Al tomar en cuenta diferentes condiciones y reglas, se toma una decisión sobre como manipular la válvula.
La tabla de reglas se define en la tabla D.1.
Tabla D.1 Tabla de reglas del controlador difuso
CONDICIONES ACCIONES
1 Error Grande y Positivo Abrir Mucho 2 Error Positivo y Derivativo No Positivo Abrir Poco 3 Error Positivo y Derivativo Positivo No Manipular 4 Error Pequeño y Derivativo Negativo Abrir Poco 5 Error Pequeño y Derivativo Pequeño No Manipular 6 Error Pequeño y Derivativo Positivo Cerrar Poco 7 Error Negativo y Derivativo Negativo No Manipular
8 Error Negativo y Derivativo No Negativo Cerrar Poco 9 Error Grande y Negativo Cerrar Mucho
Posteriormente se calcularon los rangos para determinar la magnitud de cada una de las acciones y poder programar las funciones de membresía. Estas se muestran a continuación.
El error puede caer en un valor como máximo de -10 a 10. Indicando este la diferencia entre el nivel deseado y el nivel actual. Para programar la función de membresía se dividió entre 10 para poder hacer ajustes más finos en los rangos.
Figura D.1 Función de Membresía del Error.
Esta función de membresía permitirá hacer ajustes en la abertura de la válvula dependiendo del nivel en el tanque.
El termino derivativo o razón de cambio se normalizó y se puso en un rango de -1 a 1. Los valores pequeños, obtenidos del derivativo, son considerados como todos aquellos que están muy cerca de cero.
Figura D.2 Función de Membresía del Derivativo del Error.
Esta función de membresía ayudara a tomar decisiones del hecho de conocer la tendencia del error. La manipulación de salida tiene 5 posibilidades, las cuales se muestran en la Tabla D.1. El rango incluye valores de -1 a 1. Equivalentes a incrementos relativos a la manipulación actual existente en la válvula.
Figura D.3 Función de Membresía de la Manipulación.
Una vez que se conoce el error en el tanque y su tendencia esta función de membresía nos ayuda a decidir que porcentaje se abre la válvula.
Adicionalmente, para poder tener un ajuste más fino, se definió una segunda función de membresía de salida que controla la ganancia a la salida de la manipulación. De esta manera, entre más pequeño sea el error, la ganancia disminuye, haciendo los incrementos más pequeños logrando un mejor control.
Como entradas se utilizó la magnitud del Error. Se agrego otro rango llamado CP (Casi Pequeño) debido a que se necesitaba que la ganancia disminuyera antes que el rango definido como P (Pequeño).
Para esto se agregaron las reglas de la Tabla D.2 y la función de membresía de la figura D.4.
Tabla D.2 Reglas de salida de la variable Ganancia
10 Error Grande y Positivo Ganancia Grande
11 Error Grande y Negativo Ganancia Grande
12 Error Positivo Ganancia Mediana
13 Error Negativo Ganancia Mediana
14 Error Casi Pequeño Ganancia Pequeña
La función de membresía de la ganancia se programó con tres rangos: Ganancia Grande (8), Mediana (5) y Pequeña (2). De esta manera, dependiendo del tamaño del error, la manipulación se multiplica por una ganancia diferente.
Figura D.4 Función de membresía de la salida Ganancia.
Esta función de membresía provee al controlador la posibilidad de escoger una ganancia de acuerdo a la magnitud del error.
D.1.2 Defusificación
El proceso de defusificación es convertir los conjuntos difusos de valores obtenidos a partir de las operaciones de lógica difusa en un valor conciso que pueda usarse para manipular la planta en cuestión. Los procesos de defusificación calculan un valor en base a las áreas de las funciones de membresía de las salidas.
Para este caso se utilizó el método de centro de gravedad que consiste en determinar el centro del área bajo las funciones de membresía combinadas.
D.1.3 Definición de rangos
Los rangos para las funciones de membresía fueron definidos en base a experimentación con la estación de monitoreo y control de nivel. Para lograr que la manipulación de la válvula fuera “frenándose” se definió como rangos de error pequeño lo que se considero que fuera necesario para que el nivel no tuviera un sobretiro, es decir, que el controlador se diera cuenta, con suficiente anticipación, que el nivel se acercaba a la referencia deseada. En cuanto a los rangos de la abertura de la válvula, también se hicieron por medio de la experimentación, manipulándolos para que cuando el nivel se aproximara a la referencia, la válvula se cerrara o abriera lo suficiente como para que no hubiera sobretiros.
D.1.4 Normalización
La normalización se hizo para hacer que el derivativo del nivel, cayera siempre dentro de un rango de -1 a 1. Se hicieron pruebas extremas de cambio de nivel para observar la razón de cambio máxima a la que el tanque se comportaba. De esta manera, dividiendo entre este valor máximo, los valores de las derivadas menores siempre cayeran dentro del rango y se distribuyeran entre todos los valores dentro del rango.
D.1.5 Implementación del controlador en Simulink™.
El controlador toma los valores de la lectura del nivel del tanque con la finalidad de determinar su tamaño y su razón de cambio. Con estos datos se obtienen las dos
entradas para las funciones de membresía y establecer una salida adecuada según las reglas de la Tabla D.1. Esta salida es multiplicada por una ganancia que disminuye o aumenta según el tamaño del error. La manipulación de salida se le suma a la manipulación anterior para obtener una nueva salida aumentada o disminuida.
La implementación y descripción en Matlab se puede observar en la figura D.5.
Figura D.5 Diagrama de Bloques del controlador Difuso.
Una vez entendida la dinámica del proceso solo hizo falta arrastrar los bloques, al ambiente de trabajo de Simulink.
1. Escritura de valor de manipulación.
2. Lectura de los valores de nivel, flujo de entrada y salida. 3. Referencia del controlador
4. División del error entre 10 para ajustarlos en un rango de -10 a 10. 5. Normalización del derivativo.
6. Obtención del nivel actual para ser comparado con la referencia. 7. Controlador difuso
8. Obtención del derivativo para deducir la razón del cambio del nivel. 9. Multiplicación de las dos salidas del controlador difuso: Manipulación y
Ganancia.
10. Memoria que almacena el valor anterior de la salida que es relativa a la manipulación anterior.