Você está na página 1de 7

Diseo, simulacin e implementacin de un controlador Fuzzy para el Control de Nivel para el tanque nmero uno del sistema Multi

Tank
Henry Cueva H, Janneth Lucio A, Carolina Meja H. ESCUELA DE LAS FUERZAS ARMADAS (ESPE)

1. Resumen
Se realiz el diseo, simulacin y posterior implementacin de un controlador utilizando la teora del control difuso con el fin de controlar el nivel de lquido en el primer tanque del sistema Multi Tank presente en uno de los laboratorios de la universidad. Para realizar diseo se utiliz la teora de conjuntos y control difuso, el programa computacional MatLab y los modelos matemticos simulados del tanque en cuestin. Obteniendo de esta manera un controlador que como se pudo comprobar en la simulacin realiza su funcin apropiadamente.

3. Desarrollo

Figura 1. Bloque del tanque superior

Modelo de la Planta Al presionar en el bloque del tanque superior se nos despliega la ventana en donde se encuentra el modelo del tanque en el cual tenemos.

2. Introduccin
EL presente proyecto tiene como finalidad demostrar que la teora de control difuso es perfectamente aplicable a problemticas del mundo real, dando de esta manera una solucin rpida y fcil al control de un sistema. Para realizar un controlador difuso es necesario primero conocer el modelo matemtico de la planta que se desea controlar, segundo se debe plantear los conjuntos difusos de las variables que se van a utilizar para controlar el sistema y ltimo punto se debe generar las reglas de control en base a los conjuntos anteriores. Si se realizan estos pasos correctamente se espera obtener un controlador que sea capaz de regular el nivel del primer tanque del sistema Multi Tank.

Figura 2. Modelo del tanque superior Alfa1=0.29; % Una constante a = 25e-2; % Largo del Tanque w = 3.5e-2; % Profundidad del Tanque H0(1)=18e-2; % Valor inicial de altura del liquido C1=5.66e-5; % Caudal de Salida A= 25*3.5e-4; % rea del Tanque

Teora del control Difuso El control difuso se introdujo a comienzos de los aos 70 como un intento para disear controladores para sistemas que son estructuralmente difciles de modelar, debido a su naturaleza no lineal y otras complejidades en la obtencin del modelo. Durante los ltimos aos los sistemas de control con lgica difusa (FLC) se han venido consolidando como una herramienta til para tratar y modelar sistemas complejos y no lineales, as los FLC han sido incorporados en un gran nmero de productos y procesos. Las principales razones para tal proliferacin de aplicaciones, quizs sean la sencillez conceptual de los Sistemas basados en Lgica Difusa, su facilidad para adaptarse a casos particulares con pocas variaciones de parmetros, s u habilidad para combinar en forma unificada expresiones lingsticas con datos numricos, y el no requerir de algoritmos muy sofisticados para su implementacin. Lgica Difusa Una de las disciplinas matemticas con mayor aplicacin en la actualidad es la Lgica Difusa. Desde su aparicin en la dcada de los 60's hasta nuestros das, las aplicaciones de la Lgica Difusa se han ido consolidando, paulatinamente al comienzo, y con un desbordado crecimiento en los ltimos aos. Las principales razones para tal proliferacin quizs sean la sencillez conceptual de los Sistemas basados en Lgica Difusa, su facilidad para adaptarse a casos particulares con pocas variaciones de parmetros, su habilidad para combinar en forma unificada expresiones lingsticas con datos numricos, y el no requerir de algoritmos muy sofisticados para su implementacin. Fundamentos de Lgica Difusa La lgica difusa se basa en lo relativo de lo observado. Este tipo de lgica toma dos valores aleatorios, pero contextualizados y referidos entre s. Es una metodologa que proporciona una manera simple y elegante de obtener una conclusin a partir de una informacin de

entrada ambigua, imprecisa o incompleta, en general la lgica difusa modela como una persona toma decisiones basada en informacin con las caractersticas mencionadas, en esto se diferencia de la lgica convencional que trabaja con informacin bien definida y precisa. La lgica difusa utiliza expresiones que no son ni totalmente ciertas ni completamente falsas, es decir lgica aplicada a conceptos que pueden tomar un valor cualesquiera de veracidad dentro de un conjunto de valores que oscilan entre dos extremos, la verdad absoluta y la falsedad total. Recalcando la idea de que las cosas no son blancas o negras, sino que existen infinitos matices de grises. Conviene recalcar que lo que es difuso, impreciso o vago, no es la lgica en si, sino el objeto que estudia. La lgica difusa se adapta mejor al mundo real en el que vivimos, e incluso puede comprender y funcionar con nuestras expresiones, del tipo "hace mucho calor", "no es muy alto", "el ritmo del corazn est un poco acelerado", etc. La clave de esta adaptacin al lenguaje, se basa en comprender los cuantificadores de nuestro lenguaje ("mucho", "muy" y "un poco") en los ejemplos mencionados. Esta lgica permite tratar informacin imprecisa, como estatura alta, media o baja de una persona, tal como se observa en la Figura 3. As, por ejemplo, se puede considerar a una persona que mida 2 metros, claramente como una persona alta, si previamente se ha tomado el valor de una persona de estatura baja y se ha establecido en 1 metro.

Figura 3. Visin de la lgica difusa

4. Conjuntos Difusos y Regla de control


Antes de determinar los conjuntos difusos hay que seleccionar las variables que utilizaremos como entradas a nuestro controlador. En este caso en especfico se utiliz al error y al cambio de error como variables de entrada, esto debe a que el error posee informacin indirecta tanto del setpoint como de la altura del sistema, y se utiliz el cambio de error ya que este nos indica la velocidad en la que el error est cambiando y nos permite determinar si se debe realizar un control fuerte o dbil sobre el sistema y la salida que en este caso sera la seal de control que acta sobre la bomba. Una vez definido las variables es necesario determinar los conjuntos difusos y el grado de pertenencia de cada uno de ellas. Para las variables de entrada y de salida se utilizar cinco conjuntos difusos denotados como GN Gran negativo, PN Pequeo Negativo, Z Accin Cero, PP Pequeo positivo y GP Gran positivo y se diferenciaran en relacin al grado de perteneca y los lmites en los que opera cada uno dando como resultado los conjuntos difusos de la figura 4.
GN PN Z 1 PP GP

Una vez definidos los conjuntos difusos, se debe determinar la regla de control que generar la variable de salida del controlador. Es necesario entender que esta regla de control es puramente intuitiva y que depende nicamente del conocimiento del sistema y del entendimiento de las acciones de control que se deberan realizar para cada accin de entrada. Por ejemplo si la seal de error es GP y el cambio de error de igual manera es GP implica que el nivel del tanque est por debajo del nivel de setpoint y que est disminuyendo rpidamente por lo que la accin de control debera ser GP para que accione completamente la bomba y recupere el nivel de agua. Es as que se consigui la regla de control presente en la tabla 1. Error GN PN Z PP GP GN GN GN GN PN Z PN GN GN PN Z PP Z GN PN Z PP GP PP PN Z PP GP GP GP Z PP GP GP GP

-0.04 -0.02

0.02

0.04

Error[m]

GN

PN

Z 1

PP

GP

Ca m bi o de Tabla 1. Regla de Control Er ro 5. Diseo del Controlador r Para el diseo del controlador se utiliz el comando fuzzy de MatLab, el que nos despliega la ventana de la figura 5, donde podemos agregar los conjuntos difusos de las variables de entrada y salida as mismo como la regla de control que hemos seleccionado. Para ello debemos seguir los siguientes pasos:

-0.02 -0.01

0.01

0.02

d(Error)[m/s] dt

GN

PN

Z 1

PP

GP

-1

-0.667 -0.333

0 0.333 0.667

Seal de Control

Figura 4. Conjuntos difusos Figura 5. Ventana de comando fuzzy

1. Teclear el comando fuzzy en la ventana principal de MatLab.

Figura 8. Ventana de Modificacin de Variables

5. Se borra el conjunto difuso inicial y se agrega el nmero de conjuntos propuesto por nuestro diseo. Los pasos para realizar esto se observan en la figura 9.
Figura 6. Ventana de comando fuzzy

2. Agregar una entrada.

Figura 7. Pasos para agregar Variables

3. Se procede a cambiar el nombre de cada entrada y salida dando un click sobre cada una y modificando el parmetro que dice Name. 4. Ingresar a una de las variables dando doble click sobre ella y se desplegar la ventada de la figura 8.
Figura 9. Pasos para generar un conjunto difuso

6. Se cambian los nombres para que coincidan con los que les dimos a un inicio. Para ello se da click sobre el conjunto y se modifica en el campo que dice Name. De igual manera se cambia el rango de accin del grupo de conjuntos en el campo Range. Si todo se realiz correctamente se obtendra lo mismo que se observa en la figura 10 y no quedara ms que cerrar la ventana. Para este punto hay que tomar en cuenta los rangos de operacin de los equipos, por ejemplo para el rango de la salida de control hay que tomar en cuenta que la bomba trabaja entre el rango de [0.1 a 0.6]e-4, pero al tratarse de valores muy pequeos se utilizar un rango del conjunto fuzzy de [-1 a 1] que posteriormente ser compensado mediante un bloque de transformacin en la simulacin.

PARA CERROR y uno para CONTROL y se da un click en el botn Add rule.

Figura 11. Ventana para agregar las reglas de Control

8. Ahora simplemente hay que exportar el controlador a un archivo, como se muestra en la figura 12, para luego ser cargado al momento de realizar la simulacin o al momento de utilizarlo en el control del tanque real con el sistema Multi Tank.

Figura 12. Pasos para exportar el controlador

6. Simulacin
Figura 10. Modificacin de los nombres y Rango de los Conjuntos Difusos

7. En la ventana principal de trabajo se da doble click sobre el bloque de color blanco que corresponde a la regla de control que se va a utilizar. El cual nos despliega la ventana que se observa en la figura 11. En ella hay que introducir todas las reglas de control previamente establecidas. Para ello se seleccionar un valor para ERROR, uno

Antes de realizar la simulacin es necesario cargar el archivo generado previamente en el diseo del controlador a una variable con ayuda del comando readfis y dicha variable ser cargada en el mdulo de control fuzzy del MatLab, para ello basta con dar doble click sobre el bloque fuzzy e ingresar el nombre de la variable como se puede ver en la figura 13 y figura 14.

Figura 13. Comando para cargar el Controlador

Al final en la figura 16 observamos que el controlador realiza un correcto control aunque posee un pequeo error en estado estacionario, lo que puede ser solucionado agregando una parte integral al diseo o sintonizando de mejor manera el controlador mediante constantes en la entrada o salida.

Figura 14. Asignacin de Variable a bloque Fuzzy

Para la simulacin del controlador se utiliz para herramienta simulink de MatLab, Ah se carg el modelo de la planta y el controlador fuzzy y se gener el lazo de control utilizando al error y a la velocidad cambio de error como variables de
Figura 16. Resultado de la Simulacin

entrada. Dicho modelo se puede observar en la figura 15.

Hay que tomar en cuenta que se est utilizando un bloque derivativo discreto, esto se debe a que existieron problemas al momento de realizar la simulacin con el bloque derivativo en el tiempo, pero que al momento de implementar el modelo en el laboratorio no existi ningn problema al momento de trabajar con cualquiera de los dos bloques.

7. Resultados
Figura 15. Modelo simulado

Dentro del bloque Fcn es necesario colocar la siguiente ecuacin para obtener lo valores con los que trabaja la bomba del sistema Multi Tank como se explic anteriormente.

Aunque como se pudo observar en las simulaciones, el controlador posee un pequeo error debido a que no se encuentra correctamente sintonizado, pero realiza correctamente su trabajo. Esto se debe a que nuestro controlador no posee parte integral que compense el error en estado estacionario. Es por

ese motivo que el momento de la implementacin en el laboratorio fue necesario colocar un integrador al sistema con el fin de compensar de esta manera dicho error en el nivel observado. Aunque esto mejor el desempeo del controlador hubiese sido mejor el desarrollo de un nuevo controlador utilizando la parte integral con el fin de obtener un control fuzzy completo del sistema. Tambin como nos podemos dar cuenta en la grfica 16 en la grfica inferior la velocidad de cambio de error es ms pequea de por lo que se esper, hecho que se podra compensar utilizando una constante de multiplicacin a la salida del bloque derivativo o redisear el controlador con lmites ms pequeos para esta variable.

8. Bibliografa
http://dspace.epn.edu.ec/bitstream/15000/8831/ 6/T%2011060%20CAPITULO%202%20.pdf

Você também pode gostar