Control Fuzzy - FCEIA - Universidad Nacional de Rosario

Anuncio
DEPARTAMENTO DE ELECTRONICA
FACULTAD DE CIENCIAS EXACTAS, INGENIERIA Y AGRIMENSURA
UNIVERSIDAD NACIONAL DE ROSARIO
CONTROL AVANZADO II
TRABAJO PRACTICO 3:
CONTROL FUZZY
Octubre de 2011
CONTROL AVANZADO II
2011
1. LA LIBRERÍA FUZZY DE MATLAB
1.1. El editor FIS (Fuzzy Inference System)
MATLAB posee un editor de sistemas basados en motores de inferencia denominado editor FIS;
con el mismo es posible crear, modificar y ajustar controladores fuzzy que pueden ser utilizados en
simulaciones posteriores.
Para ejecutar el editor FIS basta con tipear
>> fuzzy
en el ambiente de trabajo de MATLAB, a continuación aparecerá en pantalla una nueva ventana que es
el inicio de la configuración.
El primer paso consiste en elegir el tipo de controlador a crear, las posibilidades ofrecidas son:
- Controlador Mamdani,
- Controlador Sugeno.
Una vez establecido el tipo de controlador es posible ajustar la definición de los diferentes métodos
algebraicos que el controlador utilizará para calcular sus salidas. Los ajustes posibles son los siguientes:
Tipo de
Controlador
Método AND
Método OR
Método de
Implicación
Método de
Agregación
Método de
Defuzzificación
Mamdani
-
Mínimo
Producto
Máximo
OR probabilístico
Mínimo
Producto
Máximo
Suma
OR probabilístico
Centroide
Bisector
Menor máximo
Mayor máximo
Suma de máximos
Sugeno
- Mínimo
- Máximo
- Promedio ponderado
- Suma ponderada
El diseño de la estructura del controlador debe hacerse con este editor, el comando presente en el
menú
Edit -> Add Variable...
permite crear las entradas y salidas que conforman el mismo.
1.2. El editor de funciones de pertenencia
Una vez que el sistema ha sido creado es necesario definir los conjuntos fuzzy con los que se
describen los valores lingüísticos de cada entrada y cada salida. Esto se realiza con la función
>> mfedit
o simplemente haciendo doble-click sobre una entrada o salida del sistema. En ambos casos se abre
una nueva ventana con el editor de funciones de pertenencia.
Trabajo Práctico 3
Control Fuzzy
Pág. 2 de 7
CONTROL AVANZADO II
2011
El editor permite ajustar para cada una de las funciones de pertenencia su nombre, tipo y
parámetros asociados, rango de validez y rango de visualización. El agregado de funciones de
pertenencia puede realizarse con el comando presente en el menú
Edit -> Add MFs...
el cual permite indicar cantidad y tipo de funciones a agregar.
Los tipos de funciones de pertenencia que este editor permite son los siguientes:
Tipo de
Controlador y
variables
Entradas / Salidas Mamdani
Entradas Sugeno
-
Tipo de funciones
de pertenencia
Salidas Sugeno
Triangular
Trapezoidal
Campana generalizada
Campana de Gauss
Doble campana de Gauss
Sigmoide
Diferencia de sigmoides
Producto de sigmoides
Curva S
Curva Z
Curva π
- Constante
- Función lineal de las entradas
1.3. El editor de reglas
El paso siguiente en la definición de un FIS es la creación de la base de reglas. Una vez que se han
definido los diferentes valores lingüísticos de las variables de entrada y salida a través de los conjuntos
fuzzy que los representan, es necesario escribir las reglas del tipo if-then que vinculan de forma lógica
dichos valores. Esto se realiza con la función
>> ruleedit
o simplemente haciendo doble-click sobre el bloque blanco central del FIS. En ambos casos se abre una
nueva ventana con el editor de reglas.
Las posibles estructuras de una regla son las siguientes:
Composición AND
Si
es
input1
valorj i1
y
no es
...
y
inputn
es
input2
valork i2
y
...
no es
es
valorl in
output
entonces
no es
es
valorm u.
no es
Composición OR
Si
input1
es
valorj i1
o
no es
...
o
inputn
valork i2
o
...
no es
es
valorl in
entonces
no es
Trabajo Práctico 3
es
input2
output
es
valorm u.
no es
Control Fuzzy
Pág. 3 de 7
CONTROL AVANZADO II
2011
donde
input1, input2, ..., inputn
entradas del sistema
valorj in, valork in, … , valorl in
valores lingüísticos posibles para cada entrada
output
salida del sistema
valorm u
valores lingüísticos posibles para la salida
Cada regla tiene asociado un valor de peso, el cual indica en qué medida cada regla aporta valor a
la salida. Este valor de peso puede variar entre 0 y 1 (desde aporte nulo hasta aporte máximo), por
defecto este valor se encuentra seteado en 1 haciendo que el aporte de cada regla sea el mismo y sea
el máximo.
1.4. Funciones adicionales
Si bien con los tres editores presentados es suficiente para crear en forma completa un FIS, existen
en MATLAB otras funciones que complementan la librería y que ayudan para el análisis de los mismos.
Algunas de estas funciones son las siguientes:
>> surfview
Permite examinar la superficie de salida de un FIS para una determinada entrada o par de entradas
del mismo. Es posible observar la superficie generada desde varios ángulos. Es un editor de sólo
lectura.
>> ruleview
Muestra en una pantalla todas las partes del proceso de inferencia fuzzy desde las entradas y hasta
la salida. Cada una de las filas mostradas se corresponde con una regla, y cada columna se
corresponde ya sea con una entrada o con la salida del FIS. Al asignar u valor a cada entrada se
muestra como cada regla hace su aporte a la salida y la adición de las mismas para conseguir el valor
final de salida.
>> evalfis
Realiza cálculos de inferencia fuzzy. Calcula la salida de un FIS dado un determinado conjunto de
valores en sus entradas.
>> plotfis
Grafica el diagrama de entradas y salidas de un FIS.
>> plotmf
Grafica todas las funciones de pertenencia de una determinada variable de un FIS.
Trabajo Práctico 3
Control Fuzzy
Pág. 4 de 7
CONTROL AVANZADO II
2011
2. DESARROLLO DEL TRABAJO PRACTICO
2.1. Ensayo de un controlador PI fuzzy e influencia de los parámetros de diseño
En este punto del TP se utilizará el modelo continuo de 2do orden de un motor de CC controlado con
un PI fuzzy. En el apéndice ubicado al final de esta guía se encuentra el modelo en cuestión.
2.1.1) Cargar en MATLAB las variables del archivo datos.mat. Este archivo contiene todas las
variables a utilizar durante las simulaciones.
2.1.2) Abrir el modelo Mccm25.mdl, observar en detalle cada uno de los bloques que lo
conforman (Diferenciador discreto, Integrador discreto, MotorCC).
2.1.3) Describir el controlador fuzzy aplicado:
a - Mostrar las funciones de pertenencia de entradas y salida,
b - Escribir la base de reglas en forma matricial,
c - Mostrar la superficie matemática que describe la salida en función de las entradas.
[ INSERTAR AQUÍ LOS DATOS PEDIDOS ]
2.1.4) Realizar una simulación del sistema, mostrar los resultados graficando las variables Ia,
error y derror.
ω, u,
NO MEZCLAR DISTINTAS VARIABLES EN LA MISMA GRAFICA.
[ INSERTAR AQUÍ LAS GRAFICAS PEDIDAS ]
2.1.5) Realizar una simulación del sistema cambiando el control fuzzy M25 por el control M25a,
mostrar los resultados graficando las variables Ia,
ω, u, error y derror.
NO MEZCLAR DISTINTAS VARIABLES EN LA MISMA GRAFICA.
[ INSERTAR AQUÍ LAS GRAFICAS PEDIDAS ]
2.1.6) Comparar las respuestas obtenidas con las logradas con el controlador M25. Explicar el
origen de las diferencias en estas respuestas.
[ INSERTAR AQUÍ LAS CONCLUSIONES PEDIDAS ]
2.1.7) Realizar una simulación del sistema retomando el control fuzzy M25 pero ajustando las
constantes siguientes en los valores indicados:
eNorm = 0.01
deNorm = 1/3000
uNorm = 5000
Mostrar los resultados graficando las variables Ia, ω, u, error y derror.
Justificar los cambios obtenidos respecto a las respuestas obtenidas en el punto 2.1.4.
[ INSERTAR AQUÍ LAS GRAFICAS PEDIDAS ]
[ INSERTAR AQUÍ LAS CONCLUSIONES PEDIDAS ]
Trabajo Práctico 3
Control Fuzzy
Pág. 5 de 7
CONTROL AVANZADO II
2011
2.2. Diseño y simulación de un controlador fuzzy PD+I
2.2.1) Abrir el modelo PID.mdl y simular el mismo.
Este modelo contiene una planta de 3er orden con un retardo, controlada por un PID
ajustado de acuerdo a reglas de sintonía estándar (Ziegier-Nichols).
Previo a la simulación se debe ajustar la variable ret=3 (retardo del sistema).
[ INSERTAR AQUÍ LA GRAFICA DE LA SALIDA y(t) DEL SISTEMA ]
2.2.2) Abrir el modelo FPID.mdl. Construir el controlador fuzzy fpd que responda de acuerdo a
un control PD y calcular las constantes GE, GCE y GU del controlador para mejorar la
respuesta conseguida con el controlador estándar del punto anterior.
El controlador fuzzy fpd debe ser del tipo Sugeno con 25 reglas.
Ajustar el intervalo de muestreo T=0.01 seg.
[ INSERTAR AQUÍ LOS CALCULOS Y SIMULACIONES OBTENIDAS ]
Trabajo Práctico 3
Control Fuzzy
Pág. 6 de 7
CONTROL AVANZADO II
2011
3. APENDICE
3.1. Modelo matemático Motor CC
El modelo del mismo ya es conocido, las ecuaciones matriciales y los parámetros que describen la
dinámica del sistema son las siguientes:
 R
 Iɺa   −
 = L
 ωɺ   K m
 
 J
Km 
 0 
I   1 
L . a  +  L .u + 
1 .τ
f  ω   


−
−    0
 J
J 
−
(3.1.1)
o de forma similar
Xɺ = A. X + Bu .u + Bt .τ
I a = C I .X
(3.1.2)
ω = Cω . X
donde
I a 
X = 
 ω 
 R
−
A= L
K
 m
 J
Km 
L 
f 
− 
J 
−
1
Bu =  L 
 
0
 0 
Bt =  1 
− 
 J
C I = [1 0]
Cω = [0 1]
Reemplazando los parámetros por los valores correspondientes se obtienen las siguientes matrices:
− 65
A=

 25
Trabajo Práctico 3
− 25


− 2 
50
Bu =  
 
 0 
 0 

Bt = 


− 50
Control Fuzzy
(3.1.3)
Pág. 7 de 7
Descargar