SlideShare a Scribd company logo
1 of 22
Download to read offline
Escuela Politécnica Superior de Elche

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
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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 :

Control avanzado de sistemas. Práctica 1

Página 2 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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)

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 :

Control avanzado de sistemas. Práctica 1

Página 3 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

Función
Gaussiana
forma π
Sigmoide
forma S
Trapezoidal
Triangular
forma Z

Expresión
gaussmf(dominio, [σ, centro])
pimf(dominio, [a, b, c, d])
sigmf(dominio, [amplitud, centro])
smf(dominio, [a, b])
trapmf(dominio,[a, b, c, d])
trimf(dominio, [a, b, c])
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:

Control avanzado de sistemas. Práctica 1

Página 4 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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 :

Control avanzado de sistemas. Práctica 1

Página 5 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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]
Control avanzado de sistemas. Práctica 1

Página 6 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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:

Control avanzado de sistemas. Práctica 1

Página 7 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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.

Control avanzado de sistemas. Práctica 1

Página 8 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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.
Control avanzado de sistemas. Práctica 1

Página 9 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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 :
Control avanzado de sistemas. Práctica 1

Página 10 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

•

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.

Control avanzado de sistemas. Práctica 1

Página 11 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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:

Q s = k s 2 gh
( A0 + kh)
Qe = k e u

∂h
= Qe − Q s
∂t

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),

•

k e y k s 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.

Control avanzado de sistemas. Práctica 1

Página 12 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

u
ke

Qe

h
ks
k

Qs

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 (Sfunction) de Simulink. La S-function para el modelo de este sistema es:

% 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;

Control avanzado de sistemas. Práctica 1

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

Página 13 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

Como entradas al regulador se utilizarán 2 variables:
•
•

La diferencia entre la referencia y el nivel de líquido en el depósito ( l
e
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.

Control avanzado de sistemas. Práctica 1

Página 14 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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
modificacio nes 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.

Control avanzado de sistemas. Práctica 1

Página 15 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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:
f T = f F + fC

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:
T=

f F * TF + f C * TC
fF + fC

donde f F y f C 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 = 23o C. 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 o C, 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.

Control avanzado de sistemas. Práctica 1

Página 16 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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))
Control avanzado de sistemas. Práctica 1

Página 17 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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.

Control avanzado de sistemas. Práctica 1

Página 18 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

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].
Control avanzado de sistemas. Práctica 1

Página 19 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

(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.
Control avanzado de sistemas. Práctica 1

Página 20 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

Figura 7: Conjuntos difusos para las variables de control

Las reglas del regulador aparecen en la tabla siguiente.

ENTRADAS
Temperatura
cold
cold
cold
good
good
good
hot
hot
hot

Flujo
soft
good
hard
soft
good
hard
soft
good
hard

SALIDAS
Control fría
Control caliente
openSlow
openFast
closeSlow
openSlow
closeFast
closeSlow
openSlow
openSlow
steady
steady
closeSlow
closeSlow
openFast
openSlow
openSlow
closeSlow
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?

Control avanzado de sistemas. Práctica 1

Página 21 de 22
Escuela Politécnica Superior de Elche
Ingeniería Industrial

(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?

Control avanzado de sistemas. Práctica 1

Página 22 de 22

More Related Content

What's hot

6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clasesRamiro Estigarribia Canese
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional CristobalFicaV
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareRoberth Loaiza
 
Taxonomia de los sistemas
Taxonomia de los sistemasTaxonomia de los sistemas
Taxonomia de los sistemascheo_popis_28
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientosaaronastorga4
 
241923779 ejemplos-de-control-adaptativo-pdf
241923779 ejemplos-de-control-adaptativo-pdf241923779 ejemplos-de-control-adaptativo-pdf
241923779 ejemplos-de-control-adaptativo-pdfAldair Gonzales
 
Mapa mental uml
Mapa mental umlMapa mental uml
Mapa mental umlrigo berto
 
Procedimientos especiales
Procedimientos especialesProcedimientos especiales
Procedimientos especialesAnel Sosa
 
Simulación - Unidad 3 generacion de variables aleatorias
Simulación - Unidad 3 generacion de variables aleatoriasSimulación - Unidad 3 generacion de variables aleatorias
Simulación - Unidad 3 generacion de variables aleatoriasJosé Antonio Sandoval Acosta
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitosKleo Jorgee
 
Organizacion de un sistema operativo
Organizacion de un sistema operativoOrganizacion de un sistema operativo
Organizacion de un sistema operativofulgn
 
Unidad I simulacion de sistemas nuevo
Unidad I simulacion de sistemas nuevoUnidad I simulacion de sistemas nuevo
Unidad I simulacion de sistemas nuevoUGMA
 
Herramientas de programación para desarrolladores
Herramientas de programación para desarrolladoresHerramientas de programación para desarrolladores
Herramientas de programación para desarrolladoresBBVA API Market
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidoslozanolc
 

What's hot (20)

6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clases
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 
Taxonomia de los sistemas
Taxonomia de los sistemasTaxonomia de los sistemas
Taxonomia de los sistemas
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientos
 
241923779 ejemplos-de-control-adaptativo-pdf
241923779 ejemplos-de-control-adaptativo-pdf241923779 ejemplos-de-control-adaptativo-pdf
241923779 ejemplos-de-control-adaptativo-pdf
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Guia Gpss
Guia GpssGuia Gpss
Guia Gpss
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 
Requerimientos del software
Requerimientos del software Requerimientos del software
Requerimientos del software
 
Mapa mental uml
Mapa mental umlMapa mental uml
Mapa mental uml
 
Procedimientos especiales
Procedimientos especialesProcedimientos especiales
Procedimientos especiales
 
Memoria tecnica
Memoria tecnicaMemoria tecnica
Memoria tecnica
 
Simulación - Unidad 3 generacion de variables aleatorias
Simulación - Unidad 3 generacion de variables aleatoriasSimulación - Unidad 3 generacion de variables aleatorias
Simulación - Unidad 3 generacion de variables aleatorias
 
SISTEMAS DUROS Y BLANDOS
SISTEMAS DUROS Y BLANDOSSISTEMAS DUROS Y BLANDOS
SISTEMAS DUROS Y BLANDOS
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitos
 
Organizacion de un sistema operativo
Organizacion de un sistema operativoOrganizacion de un sistema operativo
Organizacion de un sistema operativo
 
Unidad I simulacion de sistemas nuevo
Unidad I simulacion de sistemas nuevoUnidad I simulacion de sistemas nuevo
Unidad I simulacion de sistemas nuevo
 
Herramientas de programación para desarrolladores
Herramientas de programación para desarrolladoresHerramientas de programación para desarrolladores
Herramientas de programación para desarrolladores
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 

Viewers also liked

Campo electrico v1
Campo electrico v1Campo electrico v1
Campo electrico v1isabelita27
 
Class 01Modelos en Simulacion
Class 01Modelos en SimulacionClass 01Modelos en Simulacion
Class 01Modelos en SimulacionJose Sosa
 
APRENDIENDO FISICA CON WALTER PEREZ TERREL
APRENDIENDO FISICA CON WALTER PEREZ TERRELAPRENDIENDO FISICA CON WALTER PEREZ TERREL
APRENDIENDO FISICA CON WALTER PEREZ TERRELWalter Perez Terrel
 
(Semana 16 dinámica del cuerpo rígido)
(Semana 16 dinámica del cuerpo rígido)(Semana 16 dinámica del cuerpo rígido)
(Semana 16 dinámica del cuerpo rígido)Walter Perez Terrel
 
Introducción a la Simulación de Eventos Discretos
Introducción a la Simulación de Eventos DiscretosIntroducción a la Simulación de Eventos Discretos
Introducción a la Simulación de Eventos DiscretosJuan Manuel Carrión Delgado
 
Semana 02 analisis vectorial unac 2010 a plus
Semana 02  analisis vectorial unac 2010 a plusSemana 02  analisis vectorial unac 2010 a plus
Semana 02 analisis vectorial unac 2010 a plusWalter Perez Terrel
 
(Semana 01 analisis dimensiones primera edición)
(Semana 01 analisis dimensiones primera edición)(Semana 01 analisis dimensiones primera edición)
(Semana 01 analisis dimensiones primera edición)Walter Perez Terrel
 
Unidad Didáctica 01 - Área Matemática - Sexto Grado de Primaria 2015: Organi...
Unidad Didáctica 01 - Área Matemática - Sexto Grado de Primaria 2015:  Organi...Unidad Didáctica 01 - Área Matemática - Sexto Grado de Primaria 2015:  Organi...
Unidad Didáctica 01 - Área Matemática - Sexto Grado de Primaria 2015: Organi...Teresa Clotilde Ojeda Sánchez
 
Modelos de Simulacion
Modelos de SimulacionModelos de Simulacion
Modelos de SimulacionJammil Ramos
 
PRIMERA UNIDAD DIDÁCTICA DE SEXTO GRADO-PRIMARIA.
PRIMERA UNIDAD DIDÁCTICA DE SEXTO GRADO-PRIMARIA.PRIMERA UNIDAD DIDÁCTICA DE SEXTO GRADO-PRIMARIA.
PRIMERA UNIDAD DIDÁCTICA DE SEXTO GRADO-PRIMARIA.Marly Rodriguez
 

Viewers also liked (13)

Campo electrico v1
Campo electrico v1Campo electrico v1
Campo electrico v1
 
Class 01Modelos en Simulacion
Class 01Modelos en SimulacionClass 01Modelos en Simulacion
Class 01Modelos en Simulacion
 
Electricidad
ElectricidadElectricidad
Electricidad
 
APRENDIENDO FISICA CON WALTER PEREZ TERREL
APRENDIENDO FISICA CON WALTER PEREZ TERRELAPRENDIENDO FISICA CON WALTER PEREZ TERREL
APRENDIENDO FISICA CON WALTER PEREZ TERREL
 
Fis semi4 int2012
Fis semi4 int2012Fis semi4 int2012
Fis semi4 int2012
 
Folleto vectores
Folleto vectoresFolleto vectores
Folleto vectores
 
(Semana 16 dinámica del cuerpo rígido)
(Semana 16 dinámica del cuerpo rígido)(Semana 16 dinámica del cuerpo rígido)
(Semana 16 dinámica del cuerpo rígido)
 
Introducción a la Simulación de Eventos Discretos
Introducción a la Simulación de Eventos DiscretosIntroducción a la Simulación de Eventos Discretos
Introducción a la Simulación de Eventos Discretos
 
Semana 02 analisis vectorial unac 2010 a plus
Semana 02  analisis vectorial unac 2010 a plusSemana 02  analisis vectorial unac 2010 a plus
Semana 02 analisis vectorial unac 2010 a plus
 
(Semana 01 analisis dimensiones primera edición)
(Semana 01 analisis dimensiones primera edición)(Semana 01 analisis dimensiones primera edición)
(Semana 01 analisis dimensiones primera edición)
 
Unidad Didáctica 01 - Área Matemática - Sexto Grado de Primaria 2015: Organi...
Unidad Didáctica 01 - Área Matemática - Sexto Grado de Primaria 2015:  Organi...Unidad Didáctica 01 - Área Matemática - Sexto Grado de Primaria 2015:  Organi...
Unidad Didáctica 01 - Área Matemática - Sexto Grado de Primaria 2015: Organi...
 
Modelos de Simulacion
Modelos de SimulacionModelos de Simulacion
Modelos de Simulacion
 
PRIMERA UNIDAD DIDÁCTICA DE SEXTO GRADO-PRIMARIA.
PRIMERA UNIDAD DIDÁCTICA DE SEXTO GRADO-PRIMARIA.PRIMERA UNIDAD DIDÁCTICA DE SEXTO GRADO-PRIMARIA.
PRIMERA UNIDAD DIDÁCTICA DE SEXTO GRADO-PRIMARIA.
 

Similar to Logica-difusa-simulink-casos

Similar to Logica-difusa-simulink-casos (20)

15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink
 
38555282 manual-simulink
38555282 manual-simulink38555282 manual-simulink
38555282 manual-simulink
 
Utp i_ay_se_sistemas difusos i 2013-3
 Utp i_ay_se_sistemas difusos i 2013-3 Utp i_ay_se_sistemas difusos i 2013-3
Utp i_ay_se_sistemas difusos i 2013-3
 
Utp sirn_sl8 sistemas difusos i 2013-3
 Utp sirn_sl8 sistemas difusos i 2013-3 Utp sirn_sl8 sistemas difusos i 2013-3
Utp sirn_sl8 sistemas difusos i 2013-3
 
Uiii tema10-equipo cam
Uiii tema10-equipo camUiii tema10-equipo cam
Uiii tema10-equipo cam
 
Practica1
Practica1Practica1
Practica1
 
Ingenieria de control mr
Ingenieria de control mrIngenieria de control mr
Ingenieria de control mr
 
Ingenieria de control mr
Ingenieria de control mrIngenieria de control mr
Ingenieria de control mr
 
Minimanual r commander
Minimanual r commanderMinimanual r commander
Minimanual r commander
 
Apuntes matlab
Apuntes matlabApuntes matlab
Apuntes matlab
 
Macros en Excel
Macros en ExcelMacros en Excel
Macros en Excel
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
Algoritmos y programas 1 arena
Algoritmos y programas 1   arenaAlgoritmos y programas 1   arena
Algoritmos y programas 1 arena
 
Ingenieria de control mr
Ingenieria de control mrIngenieria de control mr
Ingenieria de control mr
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Minimanual de r
Minimanual de rMinimanual de r
Minimanual de r
 
Microsoft excel parte 2
Microsoft excel parte 2Microsoft excel parte 2
Microsoft excel parte 2
 
Sophia leonzio tarea4
Sophia leonzio tarea4Sophia leonzio tarea4
Sophia leonzio tarea4
 
Analisis de algoritmo ii
Analisis de algoritmo iiAnalisis de algoritmo ii
Analisis de algoritmo ii
 
Aplicaciones informaticas
Aplicaciones  informaticasAplicaciones  informaticas
Aplicaciones informaticas
 

Logica-difusa-simulink-casos

  • 1. Escuela Politécnica Superior de Elche 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
  • 2. Escuela Politécnica Superior de Elche Ingeniería Industrial 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 : Control avanzado de sistemas. Práctica 1 Página 2 de 22
  • 3. Escuela Politécnica Superior de Elche Ingeniería Industrial 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) 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 : Control avanzado de sistemas. Práctica 1 Página 3 de 22
  • 4. Escuela Politécnica Superior de Elche Ingeniería Industrial Función Gaussiana forma π Sigmoide forma S Trapezoidal Triangular forma Z Expresión gaussmf(dominio, [σ, centro]) pimf(dominio, [a, b, c, d]) sigmf(dominio, [amplitud, centro]) smf(dominio, [a, b]) trapmf(dominio,[a, b, c, d]) trimf(dominio, [a, b, c]) 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: Control avanzado de sistemas. Práctica 1 Página 4 de 22
  • 5. Escuela Politécnica Superior de Elche Ingeniería Industrial 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 : Control avanzado de sistemas. Práctica 1 Página 5 de 22
  • 6. Escuela Politécnica Superior de Elche Ingeniería Industrial 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] Control avanzado de sistemas. Práctica 1 Página 6 de 22
  • 7. Escuela Politécnica Superior de Elche Ingeniería Industrial 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: Control avanzado de sistemas. Práctica 1 Página 7 de 22
  • 8. Escuela Politécnica Superior de Elche Ingeniería Industrial 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. Control avanzado de sistemas. Práctica 1 Página 8 de 22
  • 9. Escuela Politécnica Superior de Elche Ingeniería Industrial 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. Control avanzado de sistemas. Práctica 1 Página 9 de 22
  • 10. Escuela Politécnica Superior de Elche Ingeniería Industrial 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 : Control avanzado de sistemas. Práctica 1 Página 10 de 22
  • 11. Escuela Politécnica Superior de Elche Ingeniería Industrial • 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. Control avanzado de sistemas. Práctica 1 Página 11 de 22
  • 12. Escuela Politécnica Superior de Elche Ingeniería Industrial 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: Q s = k s 2 gh ( A0 + kh) Qe = k e u ∂h = Qe − Q s ∂t 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), • k e y k s 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. Control avanzado de sistemas. Práctica 1 Página 12 de 22
  • 13. Escuela Politécnica Superior de Elche Ingeniería Industrial u ke Qe h ks k Qs 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 (Sfunction) de Simulink. La S-function para el modelo de este sistema es: % 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; Control avanzado de sistemas. Práctica 1 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 Página 13 de 22
  • 14. Escuela Politécnica Superior de Elche Ingeniería Industrial Como entradas al regulador se utilizarán 2 variables: • • La diferencia entre la referencia y el nivel de líquido en el depósito ( l e 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. Control avanzado de sistemas. Práctica 1 Página 14 de 22
  • 15. Escuela Politécnica Superior de Elche Ingeniería Industrial 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 modificacio nes 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. Control avanzado de sistemas. Práctica 1 Página 15 de 22
  • 16. Escuela Politécnica Superior de Elche Ingeniería Industrial 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: f T = f F + fC 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: T= f F * TF + f C * TC fF + fC donde f F y f C 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 = 23o C. 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 o C, 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. Control avanzado de sistemas. Práctica 1 Página 16 de 22
  • 17. Escuela Politécnica Superior de Elche Ingeniería Industrial 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)) Control avanzado de sistemas. Práctica 1 Página 17 de 22
  • 18. Escuela Politécnica Superior de Elche Ingeniería Industrial 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. Control avanzado de sistemas. Práctica 1 Página 18 de 22
  • 19. Escuela Politécnica Superior de Elche Ingeniería Industrial 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]. Control avanzado de sistemas. Práctica 1 Página 19 de 22
  • 20. Escuela Politécnica Superior de Elche Ingeniería Industrial (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. Control avanzado de sistemas. Práctica 1 Página 20 de 22
  • 21. Escuela Politécnica Superior de Elche Ingeniería Industrial Figura 7: Conjuntos difusos para las variables de control Las reglas del regulador aparecen en la tabla siguiente. ENTRADAS Temperatura cold cold cold good good good hot hot hot Flujo soft good hard soft good hard soft good hard SALIDAS Control fría Control caliente openSlow openFast closeSlow openSlow closeFast closeSlow openSlow openSlow steady steady closeSlow closeSlow openFast openSlow openSlow closeSlow 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? Control avanzado de sistemas. Práctica 1 Página 21 de 22
  • 22. Escuela Politécnica Superior de Elche Ingeniería Industrial (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? Control avanzado de sistemas. Práctica 1 Página 22 de 22