diseño controlador fuzzy-multi-tank
TRANSCRIPT
-
7/23/2019 Diseo Controlador Fuzzy-Multi-tank
1/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. ResumenSe 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.
2. IntroduccinEL 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.
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.
Figura 2. Modelo del tanque superior
Alfa1=0.29; % Una constantea = 25e-2; % Largo del Tanquew = 3.5e-2; % Profundidad delTanqueH0(1)=18e-2; % Valor inicial de
altura del liquidoC1=5.66e-5; % Caudal de SalidaA= 25*3.5e-4; % rea del Tanque
-
7/23/2019 Diseo Controlador Fuzzy-Multi-tank
2/7
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 FLChan 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 hastanuestros 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 paracombinar 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
-
7/23/2019 Diseo Controlador Fuzzy-Multi-tank
3/7
4. Conjuntos Difusos y Regla decontrol
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, PNPequeo Negativo, ZAccin 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 comoresultado los conjuntos difusos de la figura 4.
1
0
GN PN PP GPZ
0.04-0.04 -0.02 0.02Error[m]
0 0.02-0.02 -0.01 0.01d(Error)[m/s]
dt
1GN PN PP GPZ
1
0
GN PN PP GPZ
0.667-0.667 -0.333 0.333 1-1
Seal de
Control
Figura 4. Conjuntos difusos
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.
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
Tabla 1. Regla de Control
5. Diseo del ControladorPara el diseo del controlador se utiliz el
comandofuzzyde 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:
Figura 5. Ventana de comandofuzzy
Error
Ca
m
bi
o
de
-
7/23/2019 Diseo Controlador Fuzzy-Multi-tank
4/7
1. Teclear el comandofuzzyen laventana principal de MatLab.
Figura 6. Ventana de comandofuzzy
2. Agregar una entrada.
Figura 7. Pasos para agregar Variables
3. Se procede a cambiar el nombre decada entrada y salida dando un click
sobre cada una y modificando el
parmetro que dice Name.
4. Ingresar a una de las variables dandodoble click sobre ella y se desplegar
la ventada de la figura 8.
Figura 8. Ventana de Modificacin de Variables
5. Se borra el conjunto difuso inicial y seagrega el nmero de conjuntos
propuesto por nuestro diseo. Los
pasos para realizar esto se observan
en la figura 9.
Figura 9. Pasos para generar un conjunto difuso
-
7/23/2019 Diseo Controlador Fuzzy-Multi-tank
5/7
6. Se cambian los nombres para quecoincidan 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 a0.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.
Figura 10. Modificacin de los nombres y Rango
de los Conjuntos Difusos
7. En la ventana principal de trabajo seda 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
PARA CERROR y uno para CONTROL y
se da un click en el botnAdd rule.
Figura 11. Ventana para agregar las reglas
de Control
8. Ahora simplemente hay que exportarel 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. SimulacinAntes 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 13y figura 14.
-
7/23/2019 Diseo Controlador Fuzzy-Multi-tank
6/7
Figura 13. Comando para cargar el Controlador
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
entrada. Dicho modelo se puede observar en la
figura 15.
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.
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 16. Resultado de la Simulacin
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 almomento de trabajar con cualquiera de los dos
bloques.
7. ResultadosAunque 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
-
7/23/2019 Diseo Controlador Fuzzy-Multi-tank
7/7
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