Logica Difusa Simulink Casos

22
Escuela Politécnica Superior de Elche CONTROL AVANZADO DE SISTEMAS CONTROL INTELIGENTE Ingeniería Industrial PRÁCTICA 1: Diseño de reguladores difusos CURSO 01/02 Departamento de Ingeniería Área de Ingeniería de Sistemas y Automática ISA-UMH © R-00-CAS001v1.0

Transcript of Logica Difusa Simulink Casos

Page 1: Logica Difusa Simulink Casos

E s c u e l a P o l i t é c n i c a S u p e r i o r d e E l c h e

CONTROL AVANZADO DE SISTEMAS CONTROL INTELIGENTE

4º Ingeniería Industrial

PRÁCTICA 1: Diseño de reguladores difusos

CURSO 01/02

Departamento de Ingeniería

Área de Ingeniería de Sistemas y Automática

ISA-UMH © R-00-CAS001v1.0

Page 2: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 2 de 22

CONTROL AVANZADO DE SISTEMAS curso 2001-2002

PRÁCTICA 1: Diseño de reguladores difusos 1. Objetivos

Los objetivos de esta práctica son:

1. Aprender a manejar una herramienta de diseño de reguladores difusos. 2. Comparar el comportamiento de un sistema difuso ante distintos valores de

sus parámetros. 3. Utilizar un regulador difuso para controlar un sistema continuo sencillo.

2. Introducción

Un sistema difuso puede simularse e implementarse directamente usando un lenguaje de programación como el que incorpora Matlab. En esta práctica no vamos a implementar el sistema difuso completo, sino que se va a utilizar un toolbox ya construido que permite definir e implementar distintos sistemas difusos. Por este motivo es necesario comenzar introduciendo el manejo de esta herramienta que nos va a permitir analizar el comportamiento de un sistema difuso y su utilización como regulador en un bucle de control. 3. El toolbox de lógica difusa

En Matlab existe un toolbox dedicado a los sistemas difusos. Este toolbox permite definir un sistema difuso por medio de diálogos y ventanas que facilitan la introducción de los datos. Además, dispone de un conjunto de funciones para analizar el comportamiento de dichos sistemas. A lo largo de este apartado se estudiarán las etapas que se deben seguir en la edición o modificación de un sistema difuso. 3.1 Estructura de datos

Matlab almacena toda la información relevante de un sistema difuso (funciones de pertenencia, reglas, métodos de implicación y desdifusificación) en una matriz siguiendo un determinado formato. Dicha matriz puede almacenarse en la memoria de trabajo y referenciarse mediante una variable de Matlab, o bien almacenarse en un fichero que puede ser cargado directamente en memoria, cargado en el editor de sistemas difusos o utilizado en una simulación de Simulink.

Por ejemplo, si queremos crear el sistema difuso estudiado en teoría, podemos

ejecutar los siguientes comandos :

Page 3: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 3 de 22

El comando newfis crea un sistema difuso nuevo (fis es la abreviatura de fuzzy inference system). El comando addvar añade una variable de entrada o salida al sistema. Tiene 4 parámetros:

• El nombre de la variable de matlab en la que está almacenado el sistema difuso. • Una cadena que indica si la variable que queremos introducir es de entrada

(‘input’) o de salida (‘output’). • El nombre de la variable que queremos añadir. • Un vector que indica el rango de valores que puede tomar la variable.

El comando addmf añade una función de pertenencia a un sistema difuso (mf es la

abreviatura de membership function). Esta función tiene 6 parámetros: • El nombre de la variable de matlab en la que está almacenado el sistema difuso. • Una cadena que indica si la variable que queremos introducir es de entrada

(‘input’) o de salida (‘output’). • El índice de la variable a la que se quiere añadir la función de pertenencia. • Una cadena que representa el nombre de la nueva función de pertenencia. • Una cadena que representa el tipo de la nueva función de pertenencia. • El vector de parámetros que define la función de pertenencia.

En nuestro ejemplo se han añadido las tres funciones de pertenencia correspondientes a la variable de entrada x. Estas tres funciones son trapezoidales (trapmf), y para definir una función de este tipo es necesario especificar un vector con 4 parámetros: los 4 puntos que definen sobre el eje X el trapecio.

La estructura del sistema difuso se guarda en una matriz, en nuestro ejemplo en la matriz del entorno ‘a’. El comando showfis nos muestra el contenido de la matriz ya interpretado.

Este toolbox dispone de un conjunto de funciones para la creación de conjuntos

difusos como los que se han estudiado en teoría. Los nombres de las funciones más significativas son :

a = newfis('ejemplo'); a = addvar(a,'input','x',[0 8]); a = addmf(a,'input',1,'pequeño','trapmf',[0 0 1 3]); a = addmf(a,'input',1,'medio','trapmf',[1 3 3 7]); a = addmf(a,'input',1,'grande','trapmf',[3 7 8 8]); showfis(a)

Page 4: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 4 de 22

Función Expresión Gaussiana gaussmf(dominio, [σ, centro]) forma π pimf(dominio, [a, b, c, d]) Sigmoide sigmf(dominio, [amplitud, centro]) forma S smf(dominio, [a, b]) Trapezoidal trapmf(dominio,[a, b, c, d]) Triangular trimf(dominio, [a, b, c]) forma Z zmf(dominio, [a, b])

Como la edición de los parámetros de un sistema difuso es muy costosa si se utilizan directamente funciones de matlab como las descritas, existe un interfaz de ventanas que permite la edición de las funciones de pertenencia, de la base de reglas y de las características de dicho sistema. 3.2 El editor del sistema difuso

Para abrir la ventana de edición del sistema difuso, puede ejecutarse el comando fuzzy, si se quiere crear un sistema nuevo, o fuzzy(nombre_fis) si se quiere editar el sistema difuso definido en la matriz almacenada en la variable nombre_fis, o fuzzy(‘nombre_fichero’) si se quiere editar el sistema almacenado en el fichero nombre_fichero. Aparece entonces la siguiente ventana:

Page 5: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 5 de 22

La primera acción a realizar es definir el número de entradas y salidas que debe tener el sistema difuso utilizando la opción Edit->Add input o Edit->Add output.

En nuestro primer ejemplo se va a trabajar con el sistema más sencillo, con una sola entrada y salida (sistema SISO), por lo que el número de variables que aparecen por defecto es el correcto.

Se pueden cambiar los nombres de las variables de entrada y salida seleccionando el icono que representa la variable correspondiente y modificando el valor que aparece en el campo Name. Modificarlos para que los nombres de las variables sean x e y.

En esta ventana se declaran las características globales que se asumen para todo el sistema a través de las listas desplegables correspondientes :

• t-norma utilizada en antecedentes: And method • s-norma: Or method • Método de implicación : Implication • Método de composición o agregación : Aggregation • Método de desfucificación : Defuzzification

Debe tenerse en cuenta que siempre se supone que el motor de inferencia opera en el modo de reglas individuales, y que el difusificador no puede ser seleccionado, siendo siempre de tipo unitario o singleton, aplicado a la entrada del sistema. En nuestro ejemplo, vamos a dejar todos los parámetros con sus valores por defecto. 3.3 El editor de funciones de pertenencia

A continuación se deben definir las funciones de pertenencia de cada variable. Para ello se realiza una doble pulsación sobre uno de los iconos de las variables o se activa la opción View->Edit membership functions, con lo que se abre la siguiente ventana :

Page 6: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 6 de 22

Lo primero que se debe hacer es declarar el dominio de cada variable, que en este caso es un intervalo que se introduce en el campo Range. El campo Display Range indica el rango que se utilizará en el subpanel que muestra las funciones de pertenencia. Siguiendo el ejemplo visto en clase, introduciremos un rango comprendido entre 0 y 8, tanto para la variable de entrada como para la de salida.

Para añadir funciones de pertenencia seleccionar la opción Edit->Add MFs. A través del cuadro de diálogo que aparece se define el tipo de función elegido y el número de funciones que se van a utilizar para esa variable. Al aceptar los datos se creará una distribución uniforme de funciones de pertenencia con un solapamiento del 100% sobre el dominio definido. En nuestro ejemplo introduciremos 3 funciones trapezoidales para las variables x e y, y posteriormente ajustaremos sus parámetros.

Para modificar el nombre o los parámetros de alguna función, se debe

seleccionar primero dicha función con el ratón, apareciendo sus propiedades en el panel titulado Current Membership Function, donde pueden ser modificadas a través de los campos correspondientes. También pueden modificarse arrastrando la función con el ratón directamente sobre su gráfica.

En nuestro caso, los nombres y parámetros de las funciones de pertenencia para la variable de entrada x aparecen en la tabla siguiente:

nombre tipo parámetros Pequeño trapmf [0 0 1 3] Medio trapmf [1 3 3 7] Grande trapmf [3 7 8 8]

Page 7: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 7 de 22

Las gráficas obtenidas deben ser las que aparecen a continuación:

Los nombres y parámetros de las funciones para la variable de salida y aparecen en la tabla siguiente:

nombre tipo parámetros Pequeño trapmf [0 0 2 4] Medio trapmf [2 4 4 6] Grande trapmf [4 6 8 8]

Las gráficas obtenidas deben ser las que aparecen a continuación:

Page 8: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 8 de 22

3.4 El editor de reglas

Por último se editan las reglas utilizando el editor correspondiente que se abre mediante la opción View->Edit Rules o haciendo una doble pulsación sobre el icono que representa la base de reglas en la ventana principal. La ventana que se abre, es simplemente un panel de edición donde se editan las reglas siguiendo un formato prefijado. En nuestro ejemplo, introduciremos las tres reglas que aparecen en la figura siguiente.

Page 9: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 9 de 22

Si está seleccionado el formato de la regla verbose y el idioma inglés (en Options), el formato de la regla es : If (Nombre_Var is nombre_conjunto) {and/or (...)} then (Nom_Var is nom_conjunto) (Confianza_regla) donde Confianza_regla es un valor del intervalo [0,1] que refleja la confianza que se tiene sobre esa regla de control, que se refleja en un peso de la misma sobre el valor de salida del regulador.

Puede probarse cómo quedan las reglas con distintos formatos. En el formato Indexed, el número que aparece representa el conjunto difuso que está en el lugar i-ésimo numerando de izquierda a derecha los conjuntos que se han definido en cada variable. Obsérvese que es posible escribir reglas en forma no canónica, mediante la s-norma “or” como conexión. 3.5 Análisis entrada-salida del comportamiento del sistema

Para analizar el comportamiento del sistema difuso que se acaba de definir se dispone de dos ventanas. La primera permite ver gráficamente la transformación del espacio de entrada en el de salida. Ésta se abre mediante la opción View->view surface. En nuestro ejemplo el sistema sólo tiene una entrada y una salida, por lo que la superficie entrada-salida del sistema es una gráfica en dos dimensiones, como aparece en la figura siguiente.

Como ejercicio se propone intentar obtener una expresión explícita de esta función.

Page 10: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 10 de 22

La segunda forma de visualizar el comportamiento del sistema permite analizar

cómo se obtiene la conclusión de una forma interactiva para distintos valores de entrada utilizando la opción View->View rules. Los cambios realizados en los editores correspondientes se reflejarán de forma automática en estas dos ventanas.

3.6 Gestión de los sistemas difusos

La información editada en estas ventanas se puede almacenar en un fichero mediante la opción File->save to disk o File->save to disk as... La extensión de los ficheros es ‘.fis’. También se puede almacenar la información en una variable de matlab mediante las opciones File->save to workspace. En este último caso hay que recordar que si se sale de matlab se perderá la información editada, a no ser que se almacene en un fichero de alguna forma.

ATENCIÓN : La primera vez que se salva un sistema difuso nuevo hay que

salvarlo con la opción Save as, pues de lo contrario se creará un fichero con el nombre untitle.fis

Para abrir y modificar sistemas ya editados se dispone de las opciones File->Open from disk o File->open from workspace.

Finalmente, si se quiere comenzar a editar un nuevo sistema se dispone de dos opciones :

Page 11: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 11 de 22

• File->New Mamdani FIS que abre un sistema tipo Mamdani, donde se

definen funciones de pertenencia para las variables de salida. • File->New Sugeno FIS para editar un sistema difuso tipo Sugeno, que

estudiaremos en próximas sesiones de teoría, donde los consecuentes son funciones lineales de las variables de entrada.

4. Ejercicio 1: Análisis del comportamiento de un sistema difuso.

En este ejercicio se pretende analizar las consecuencias que se producen al modificar distintos parámetros en los sistemas difusos.

Ø Se pide como ejercicio comparar cómo se modifica el comportamiento del sistema difuso editado al cambiar los siguientes parámetros :

1. Utilización de las funciones mínimo y producto como funciones de

implicación. 2. Utilización de las funciones máximo y suma como métodos de agregación.

3. Comparación de los resultados utilizando el centro de las áreas o la media

ponderada de los centros como mecanismo de desdifusificación.

4. Modificación de una o varias reglas.

5. Modificación de las funciones de pertenencia : trapezoidal o triangular (hay que mantener el grado de superposición entre funciones).

6. Modificación del solapamiento entre las funciones de entrada.

7. Modificación de la distribución de las funciones de entrada y salida.

8. Modificación de las áreas relativas entre los conjuntos difusos de la variable

de salida.

9. Incrementar el número de conjuntos.

Page 12: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 12 de 22

5. Ejercicio 2: Regulación de un sistema sencillo En este ejercicio se va a utilizar un sistema difuso para regular un depósito cuya

sección va creciendo con la altura. Las ecuaciones del modelo son:

ukQ

QQth

khA

ghkQ

ee

se

ss

=

−=∂∂

+

=

)(

2

0

donde:

• Qs y Qe son los caudales de salida y entrada respectivamente,

• h es la altura del depósito,

• A0 es el área de la base,

• k es la inclinación de la pared del depósito con respecto a la vertical,

• u es la señal de actuación (válvula),

• ke y ks son las constantes de carga y descarga de las válvulas de entrada y salida, respectivamente.

En la figura siguiente aparece un esquema del depósito.

Page 13: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 13 de 22

Debe simularse este sistema en Simulink para diseñar el regulador difuso. La simulación puede hacerse con bloques o usando las denominadas S-funciones (S-function) de Simulink. La S-function para el modelo de este sistema es:

k

Qe

ke

u

h

ks Qs

% SimuLink model. function [sys, x0] = depo(t, x, u, flag, p) if flag == 0 sys = [1; 0; 1; 1; 0; 0]; x0(1) = 0.0; end if (abs(flag) == 1) | (abs(flag) == 3) % Parámetros g = 9.8; A0 = 1; k = 1; ks = 0.25;

ke = 2; ue = u(1); h = x(1); % depo. Qs = ks*sqrt(2*g*h); Qe = ke*ue derh = (Qe - Qs)/(A0 + k*h); end if abs(flag) == 1 sys(1) = derh; elseif abs(flag) == 3 sys(1) = h; elseif flag ~= 0

sys = [ ]; end

Page 14: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 14 de 22

Como entradas al regulador se utilizarán 2 variables:

• La diferencia entre la referencia y el nivel de líquido en el depósito (el error).

• La propia referencia. Para evitar problemas en la simulación, es conveniente limitar las entradas del regulador a los valores que se hayan definido como dominio de las variables de entrada. Definiremos el dominio [-1, 1] para el error, y [0, 3] para la referencia. El dominio de la variable de control u será [0, 1]. Supondremos que la implementación real del regulador se realizará en un computador, por tanto es necesario introducir un retenedor con un periodo de, por ejemplo, 0.5 segundos. También será necesario introducir un multiplexor para combinar las dos variables de entrada al regulador. Con todos estos elementos, un esquema para la simulación del sistema de control en Simulink puede ser el siguiente:

Ø El ejercicio consiste en desarrollar e implementar un sistema difuso que permita controlar el nivel deseado del depósito. Pueden seguirse las siguientes sugerencias:

1. La idea básica en el diseño del regulador es la siguiente: la ganancia del

mismo debe ser mayor cuanto más alto sea el nivel de referencia, pues al tener el depósito un área mayor cuanto mayor es la altura, es necesario añadir más cantidad de líquido para incrementar el nivel.

2. Partiendo de la idea básica anterior, se debe comenzar el diseño del

regulador con un conjunto de reglas IF-THEN que se consideren razonables y una distribución uniforme de las funciones de pertenencia.

Page 15: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 15 de 22

3. Una vez diseñado un regulador inicial, debe probarse su comportamiento, obteniendo para ello la respuesta del sistema a partir de un nivel de referencia fijo, realizando pequeñas modificaciones (incrementos o decrementos), registrando el funcionamiento para diversos puntos de funcionamiento.

4. Si el sistema no tiene el funcionamiento deseado, deben realizarse pequeñas

modificaciones en el regulador difuso y volver a probar.

5. Para el regulador difuso podéis tomar inicialmente 2 conjuntos difusos para la variable de referencia y 5 para la variable de error.

6. Una vez obtenido el regulador adecuado, aplicar distintos tipos de señales de

entrada para la referencia.

IMPORTANTE

• Cada grupo de prácticas debe entregar un informe y un disco con el trabajo realizado.

• El contenido mínimo del informe es el siguiente:

o Para el ejercicio 1: comentarios sobre el comportamiento observado

del sistema para cada una de las 8 pruebas propuestas en el enunciado.

o Para el ejercicio 2: una descripción del regulador difuso definitivo diseñado, con comentarios sobre el proceso de prueba y error realizado para obtenerlo.

• El contenido del disco debe ser el siguiente:

o Para el ejercicio 2: el fichero .fis con el regulador difuso y todos los

ficheros necesarios para ejecutar la simulación en Simulink del sistema.

• Este material se entregará al finalizar la sesión de prácticas.

Page 16: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 16 de 22

6 Ejercicio complementario: regulación de temperatura y flujo de agua

En esta parte se va a describir un regulador de la temperatura y flujo de salida de agua de un grifo. A continuación se propondrán cambios en el regulador para estudiar su comportamiento. 6.1 Descripción del sistema

Existen dos variables que pueden controlarse en el sistema:

• La válvula de agua fría. • La válvula de agua caliente.

Las salidas medibles del sistema son dos:

• El flujo total de salida de agua (medida, por ejemplo, en litros/minuto). • La temperatura del agua de salida.

El flujo total de salida del agua se puede calcular como la suma del flujo de agua fría y el flujo de agua caliente:

La temperatura del agua de salida puede calcularse como la media ponderada de las temperaturas de agua fría y caliente, teniendo en cuenta los flujos:

donde fF y fC son los flujos de salida de agua fría y caliente, respectivamente, y TF y TC son las temperaturas del agua fría y caliente, respectivamente. La temperatura final del agua dependerá, por tanto, de las temperaturas originales del agua de las dos válvulas y de los respectivos flujos.

Supondremos que la temperatura deseada será fija, Td = 23oC. Sin embargo, puesto que la temperatura ambiente puede variar, este valor de temperatura deseada también puede variar ligeramente. La variación de la temperatura ambiente se modelará con una onda cuadrada o de cualquier otro tipo de amplitud 4, de tal forma que la temperatura deseada (referencia) será 23 ± 4 oC, dependiendo de la temperatura ambiente. El flujo deseado lo modelaremos de forma análoga: estableceremos un flujo deseado de 0.7, con una variación de ±0.2.

CFT fff +=

CF

CCFF

ffTfTf

T++

=**

Page 17: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 17 de 22

La temperatura de salida de cada válvula se supone que es constante. Sin embargo, debido a pequeños cambios en la presión real del agua suministrada por las válvulas, el flujo no permanece constante. Este hecho lo vamos a modelar introduciendo una variación máxima de flujo como una señal senoidal de amplitud pequeña. El flujo de salida de cada válvula se calcula como el mínimo entre el flujo máximo permitido y la integración de la variación de flujo de la válvula correspondiente.

6.2 Simulación del sistema La simulación de este sistema está disponible en la carpeta de instalación de Matlab. El esquema global aparece en la figura 1.

Figura 1: Esquema global del sistema de control de temperatura de agua.

Los bloques flow rate y temp son expresiones en Matlab para calcular el flujo total y la temperatura del agua, respectivamente. La expresión para el bloque flow rate es la siguiente:

u(1)+u(3)

donde u(1) es el flujo de agua caliente y u(3) es el flujo de agua fría. La expresión para el bloque temp es la siguiente:

(u(1)*u(2) + u(3)*u(4))/(u(1)+u(3))

Page 18: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 18 de 22

que es la media ponderada de las temperaturas de agua fría y caliente (u(2) es la temperatura de agua caliente y u(4) la temperatura de agua fría). Los bloques flow setpoint y temp setpoint establecen el flujo y la temperatura deseadas, con pequeñas variaciones modeladas con una señal cuadrada. En las figuras 2 y 3 aparecen los esquemas de estos bloques.

Figura 2: Bloque para el flujo deseado

Figura 3: Bloque para la temperatura deseada

Los esquemas para simular las válvulas de agua fría y caliente son análogos. En la figura 4 se muestra el bloque para la válvula de agua fría.

Page 19: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 19 de 22

Figura 4: Simulación de la válvula de agua fría

Puede observarse que para obtener el flujo de agua fría se ha incluido un integrador para la variación de la posición de la válvula. La expresión correspondiente al bloque flow rate obtiene el mínimo entre el flujo máximo que tiene la válvula y el flujo aplicado (que es la salida del integrador). La expresión en Matlab es la siguiente:

k*u(1)* ((k*u(1)) <= u(2)) + u(2)* ((k*u(1))>u(2))

que es equivalente a calcular el mínimo entre k*u(1) y u(2), donde k*u(1) es el flujo aplicado y u(2) es el flujo máximo admitido por la válvula en ese instante. 6.3 Descripción del regulador Se ha diseñado un regulador difuso para el sistema anterior. Las entradas al mismo son dos:

(1) El error en el flujo (real – deseado) (2) El error en la temperatura (real – deseada)

Supondremos que la acción de control sobre las válvulas se puede expresar como un número real en el intervalo [-1,1], de tal forma que si la acción es u=0, la posición de la válvula no cambia, si u>0, la válvula se abre aumentando el flujo de salida, y si u<0, la válvula se cierra disminuyendo el flujo de salida. La magnitud del cierre o apertura de la válvula depende del valor absoluto de la señal de control. El regulador tiene 2 salidas, correspondientes a cada válvula. Se han definido los siguientes conjuntos difusos:

(1) Para la temperatura: cold, good, hot, con las gráficas de la figura 5. El dominio es [-20,20].

Page 20: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 20 de 22

(2) Para el flujo: soft, good, hard, con las gráficas de la figura 6. El dominio es

[-1,1].

Figura 5: Conjuntos difusos para la temperatura

Figura 6: Conjuntos difusos para el flujo

Para las variables de control se han definido 5 conjuntos difusos en el dominio [-1,1], cada uno de los cuales representa la variación en la apertura de la válvula. Las etiquetas de estos conjuntos son closeFast (cerrar rápido), closeSlow (cerrar lento), steady (mantener estable), openSlow (abrir lento) y openFast (abrir rápido). Las funciones de pertenencia aparecen en la figura 7.

Page 21: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 21 de 22

Figura 7: Conjuntos difusos para las variables de control

Las reglas del regulador aparecen en la tabla siguiente.

ENTRADAS SALIDAS Temperatura Flujo Control fría Control caliente

cold soft openSlow openFast cold good closeSlow openSlow cold hard closeFast closeSlow good soft openSlow openSlow good good steady steady good hard closeSlow closeSlow hot soft openFast openSlow hot good openSlow closeSlow hot hard closeSlow closeFast

Ejercicio 3: Análisis del regulador de temperatura y flujo de agua

(1) Analizar las reglas del regulador, y escribir una justificación intuitiva de las mismas.

(2) A partir de la simulación del sistema con el regulador ¿puede concluirse que

tiene un comportamiento estable? ¿Cuánto tiempo tarda en alcanzar el régimen estable, si existe?

Page 22: Logica Difusa Simulink Casos

Escuela Politécnica Superior de Elche

Ingeniería Industrial

Control avanzado de sistemas. Práctica 1 Página 22 de 22

(3) Se ha utilizado un regulador de Mamdani por mínimo. Modificar los parámetros básicos del regulador (entre ellos el método de implicación) y observar si se producen cambios en el comportamiento del sistema.

(4) Modificar los conjuntos difusos de entrada y salida del regulador para conseguir

disminuir el tiempo de régimen transitorio (si es posible).

(5) Visualizar la función de transferencia E/S del regulador mediante la opción View Surface. ¿La función E/S obtenida es lineal? ¿Puede controlarse el sistema con una acción proporciona l?