Controlador difuso de Tsukamoto
Enviado por JESUS FERNANDO PEREZ DAVILA • 25 de Mayo de 2023 • Monografía • 866 Palabras (4 Páginas) • 128 Visitas
CONTROLADOR DIFUSO DE TSUKAMOTO
- DEFINICIÓN:
El controlador de Tsukamoto es un tipo de controlador basado en lógica difusa, desarrollado por Mamdani y Sugeno en la década de 1980. Se utiliza para controlar sistemas basados en reglas difusas y es ampliamente utilizado en aplicaciones de control difuso.
- ETAPAS
El controlador de Tsukamoto se compone de tres etapas principales: fuzzificación, inferencia y defuzzificación.
- Fuzzificación:
En esta etapa, las variables de entrada del sistema son mapeadas a términos lingüísticos utilizando funciones de membresía difusas. Las funciones de membresía describen cómo se distribuye la pertenencia a un término lingüístico a lo largo del rango de valores posibles de la variable. Esto permite expresar de manera difusa conceptos como "alto", "bajo", "medio", etc. Cada variable de entrada tiene asociada una función de membresía para cada término lingüístico.
- Inferencia:
En esta etapa, se evalúan las reglas difusas que representan el conocimiento experto del sistema. Las reglas difusas establecen relaciones entre los términos lingüísticos de las variables de entrada y los términos lingüísticos de la variable de salida. Cada regla difusa tiene una premisa (antecedente) y una conclusión (consecuente). Las reglas se aplican a los valores fuzzificados de las variables de entrada y generan una salida difusa.
- Defuzzificación
En esta etapa, se convierte la salida difusa en un valor concreto utilizando un método de defuzzificación. El método más comúnmente utilizado es el método del centroide, que calcula el centro de gravedad de la salida difusa ponderada por la pertenencia a cada término lingüístico. Otros métodos de defuzzificación incluyen el método del máximo y el método del promedio.
- APLICACIONES
El controlador de Tsukamoto se utiliza en diversas aplicaciones, como sistemas de control de temperatura, sistemas de control de tráfico, sistemas de control de nivel de agua, entre otros. Su ventaja principal radica en su capacidad para manejar la incertidumbre y el razonamiento aproximado, lo que lo hace especialmente adecuado para problemas complejos y no lineales.
- ALGORITMO EN MATLAB
El controlador de Tsukamoto consta de los siguientes pasos:
- Definir las variables de entrada y salida: En tu caso, la variable de entrada sería el error de tiempo (t) y la variable de salida sería la velocidad (v).
- Definir las funciones de membresía: Para cada variable, debes definir las funciones de membresía que representen los diferentes estados lingüísticos. Por ejemplo, para el error de tiempo, podrías tener funciones de membresía como "negativo", "cero" y "positivo". Para la velocidad, podrías tener funciones de membresía como "muy lenta", "media" y "muy rápida". Puedes utilizar funciones como trimf o sigmf en MATLAB para definir estas funciones de membresía.
- Definir las reglas difusas: Las reglas difusas describen la relación entre las variables de entrada y salida. Por ejemplo, una regla podría ser: "Si el error de tiempo es negativo, entonces la velocidad es muy lenta". Debes definir las reglas difusas de acuerdo con la lógica del sistema que estás modelando.
- Calcular la salida difusa: Utilizando las funciones de membresía y las reglas difusas, puedes calcular la salida difusa para cada combinación de valores de entrada.
- Desfusificar la salida difusa: Para obtener un valor concreto de salida, debes desfusificar la salida difusa. Puedes utilizar métodos como el centroide, el máximo o el promedio para desfusificar la salida difusa y obtener un valor numérico.
Implementar estos pasos en MATLAB requerirá la definición adecuada de las funciones de membresía, las reglas difusas y la aplicación de los métodos de cálculo y desfusificación adecuados.
- EJERCICIO APLICATIVO:
Se desarrolló como ejemplo aplicativo de un motor DC en base a datos de respuesta a la velocidad medidos con un encoder.
Tiempo | Velocidad |
0 | 0 |
1 | 27.197157 |
2 | 41.19372905 |
3 | 48.39683594 |
4 | 52.1037971 |
5 | 54.01152403 |
6 | 54.9933045 |
7 | 55.49856175 |
8 | 55.75858414 |
9 | 55.89240041 |
- SCRIPT EN MATLAB
%=========================================================
% CONTROL AVANZADO
% MONOGRAFIA CONTROLADOR DIFUSSO METODO DE TSUKAMOTO
%=========================================================
% VALORES DEL MOTOR DC
t = [0,1,2,3,4,5,6,7,8,9];
v = [0,27.197157,41.19372905,48.39683594,52.1037971,54.01152403,54.9933045,55.49856175,55.75858414,55.89240041];
...