UNIVERSIDAD CATÓLICA DE SANTA MARÍA ESCUELA PROFECIONAL DE INGENIERIA MECÁNICA, MECÁNICA ELECTRICA Y MECATRÓNICA PROCESOS INTELIGENTES LAB 04: APROXIMACION DE FUNCIONES NO LINEALES CON MODELO TSK PROFESOR: ING. SERGIO MESTAS RAMOS HECHO POR: Ángelo Ynofuente Alexis Sergio AREQUIPA – PERÚ 2023 UNIVERSIDAD CATOLICA DE SANTA MARIA ESCUELA PROFESIONAL DE INGENIERIA MECANICA, MECANICA ELECTRICA Y MECATRONICA CÓDIGO: 4E10204 ASIGNATURA: PROCESOS INTELIGENTES SEGUNDA FASE: CONTROLADORES DIFUSOS APROXIMACION DE FUNCIONES NO LINEALES CON MODELO TSK GUIA DE LABORATORIO N° 05 Docente(s) Ing. Sergio Mestas Ramos Fecha: I. II. OBJETIVO GENERAL • Aprender a utilizar la interfaz gráfica de usuario que proporciona el toolbox de lógica difusa de Matlab. • Interpretar las reglas de inferencia que intervienen en los sistemas a implementar, y utilizar operaciones con conjuntos difusos. • Aproximar funciones no lineales a partir de sistemas difusos tipo TSK. MATERIALES Y EQUIPOS ➢ Computador. ➢ Matlab. ➢ Toolbox de lógica difusa. III. PROCEDIMIENTO Basándose en el sistema difuso TSK, se pide aproximar las funciones no lineales requeridas: FUNCIÓN VALOR ABSOLUTO. Figura 1: Función y=|x| ENTRADAS 1. Implemente tres funciones de membresía triangulares como podemos apreciar en la figura. Figura 2: Funciones de Membresía de entrada. Variable 1: valor_1 Tipo: trimf Valores: [-18.33 -10 -0.1] Variable 2: valor_2 Tipo: trimf Valores: [-0.1 0 0.1] Variable 3: valor_3 Tipo: trimf Valores: [0.1 10 18.33] SALIDAS 2. Como funciones de Membresía de salida usaremos dos funciones lineales y una constante. Figura 3: Funciones de Membresía de salida. Las funciones deben representar las siguientes ecuaciones de salida: ➢ y1=-x ➢ y2=0 ➢ y3=x Variable 1: a Tipo: linear Valores: [-1 0] Variable 2: b Tipo: constant Valores: 0 Variable 3: c Tipo: linear Valores: [1 0] Figura 4: Introducción de las reglas que vamos a tener. GRAFICA DE LA FUNCION APROXIMADA 3. Muestre el resultado obtenido. Figura 5: Visualización de las reglas impuestas anteriormente. 4. Muestre gráficamente las reglas producidas. Figura 6: Grafica de las funciones que determinamos para que tenga la siguiente grafica. APROXIMAR LA SIGUIENTE FUNCIÓN. La salida de un sistema de control esta aproximada por las siguientes funciones lineales. Aproxime la salida del sistema de control a partir de un modelo difuso de tipo TSK. Figura 7: curva de control ENTRADAS 5. Implemente cinco funciones de membresía como se puede apreciar en la figura. Figura 8: Entradas para nuestra curva de control. Variable 1: mf1 Tipo: sigmf Valores: [-0.5 -10] Variable 2: mf2 Tipo: gbellmf Valores: [2.5 1 -7.5] Variable 3: mf3 Tipo: gbellmf Valores: [5 1 0] Variable 4: mf4 Tipo: gbellmf Valores: [2.5 1 7.5] Variable 5: mf5 Tipo: sigmf Valores: [0.5 10] Figura 9: Desarrollo de las entradas para nuestra curva de control. SALIDAS 6. Encuentre las funciones para f1, f2, f3, f4 y f5. REGLAS DE INFERENCIA 7. Implemente las siguientes reglas de inferencia. 𝑆𝑖 𝑒 𝑒𝑠 𝑁𝐺, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓1(𝑒) = -12 𝑆𝑖 𝑒 𝑒𝑠 𝑁𝑃, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓2(𝑒) = 2(e) + 8 𝑆𝑖 𝑒 𝑒𝑠 𝐶, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓3(𝑒) = 0.4(e) 𝑆𝑖 𝑒 𝑒𝑠 𝑃𝑃, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓4(𝑒) = 2(e) - 8 𝑆𝑖 𝑒 𝑒𝑠 𝑃𝐺, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓5(𝑒) = 12 8. Muestre gráficamente el sistema implementado. Figura 10: Aproximación de nuestra curva de control. 9. Proporcione tres valores de entrada de control (e) y muestre gráficamente el valor de salida obtenido. a) e= -10.1 f(e)=-11.1 Figura 11: Comprobación de valores en alguna parte de nuestra curva de control. b) e= 4.27 f(e)=2.42 Figura 12: Comprobación de valores en alguna parte de nuestra curva de control. c) e= 12.8 f(e)=12.4 Figura 13: Comprobación de valores en alguna parte de nuestra curva de control. 10. Cambie el tipo de funciones de membresía de la entrada del sistema difuso planteado por unas de tipo lineal (triangular o trapezoidal). 11. Repita los valores de entrada de control, muestre gráficamente el valor de salida obtenido. ENTRADAS Figura 14: Nuevas entradas para nuestra curva de control. Implemente cinco funciones de membresía como se puede apreciar en la figura. Variable 1: mf1 Tipo: trapmf Valores: [-29 -21 -13 -5] Variable 2: mf2 Tipo: trapmf Valores: [-12 -8 -6 -2] Variable 3: mf3 Tipo: trapmf Valores: [-10 -1.5 1.5 10] Variable 4: mf4 Tipo: trapmf Valores: [2 6 8 12] Variable 5: mf5 Tipo: trapmf Valores: [5 13 21 29] Figura 15: Desarrollo de las entradas para nuestra curva de control. SALIDAS Encuentre las funciones para f1, f2, f3, f4 y f5. REGLAS DE INFERENCIA Implemente las siguientes reglas de inferencia. 𝑆𝑖 𝑒 𝑒𝑠 𝑁𝐺, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓1(𝑒) = -12 𝑆𝑖 𝑒 𝑒𝑠 𝑁𝑃, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓2(𝑒) = 2(e) + 8 𝑆𝑖 𝑒 𝑒𝑠 𝐶, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓3(𝑒) = 0.4(e) 𝑆𝑖 𝑒 𝑒𝑠 𝑃𝑃, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓4(𝑒) = 2(e) - 8 𝑆𝑖 𝑒 𝑒𝑠 𝑃𝐺, 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑣 = 𝑓5(𝑒) = 12 Muestre gráficamente el sistema implementado. Figura 16: Aproximación de nuestra curva de control. Proporcione tres valores de entrada de control (e) y muestre gráficamente el valor de salida obtenido. a) e= -10.1 f(e)=-12.1 Figura 17: Desarrollo de las entradas para nuestra curva de control. b) e= 4.27 f(e)=2.42 Figura 18: Desarrollo de las entradas para nuestra curva de control. c) e= 12.8 f(e)=12.4 Figura 19: Desarrollo de las entradas para nuestra curva de control. 12. Compare los resultados obtenidos e indique cuales son las ventajas de uno y otro sistema. Los resultados son parecidos, pero difieren un poco, ya que nuestras funciones que usamos cambian, y la aproximación a nuestra curva de control, es un tanto diferente. Como se puede visualizar al leer los datos de entrada en ambos casos de la curva de control se uso las mismas entradas, por lo que se puede visualizar el cambio en ambas respuestas. FUNCIÓN EXPONENCIAL. Figura 20: Función 𝑦 = 𝑒−1/𝑋 ENTRADAS 1. Implemente las funciones de membresía necesarias para aproximar la función indicada. Variable 1: valor_1 Tipo: gaussmf Valores: [1 0] Variable 2: valor_2 Tipo: gaussmf Valores: [2 5] Variable 3: valor_3 Tipo: gaussmf Valores: [3.5 10] Variable 4: valor_4 Tipo: gaussmf Valores: [2 15] Variable 5: valor_5 Tipo: gaussmf Valores: [1 20] 2. Muestre gráficamente las funciones de membresía implementadas. Figura 21: Funciones de membresía usadas para nuestra función exponencial. SALIDAS 3. Implemente las funciones de membresía necesarias para aproximar la función indicada. Variable 1: salida_1 Tipo: linear Valores: [0.3033 0] Variable 2: salida _2 Tipo: linear Valores: [0.0862 0.4342] Variable 3: salida _3 Tipo: linear Valores: [0.0338 0.6434] Variable 4: salida _4 Tipo: linear Valores: [0.0123 0.773] Variable 5: salida _5 Tipo: constant Valores: 0.98 4. Muestre gráficamente las funciones de membresía implementadas. Figura 22: Uso de las salidas con configuración linear. GRAFICA DE LA FUNCION APROXIMADA Figura 23: Visualización de como trozamos a nuestra función, para poder aproximarnos a la curva. 5. Muestre el resultado obtenido. Figura 24: Resultado que obtuvimos con 5 funciones de membresía. 6. Muestre gráficamente las reglas producidas. Figura 25: Muestra de las reglas producidas. 7. Compruebe numéricamente el resultado obtenido. 𝑒 = 5.671 → 𝑓(𝑒) = 0.0338 𝑒 + 0.6434 𝑒 = 5.671 → 𝑓(𝑒) = 0.0338 (5.671) + 0.6434 𝑒 = 5.671 → 𝑓(𝑒) = 0.84 8. Como puede mejorar la aproximación. Para mejorar la aproximación en nuestro sistema de control difuso, una estrategia efectiva es incorporar más variables relevantes. Al aumentar el número de variables de entrada en nuestro modelo de control difuso, podemos capturar una gama más amplia de información y matices en el sistema que estamos tratando de controlar. Esto tiende a disminuir la imprecisión y aumentar la precisión en la aproximación de la función no lineal. Al incluir más variables, también podemos diseñar conjuntos de reglas más complejos y detallados en nuestro sistema de control, lo que permite una toma de decisiones más precisa y adaptable en tiempo real. Sin embargo, es importante tener en cuenta que agregar más variables también puede aumentar la complejidad del sistema, por lo que debemos equilibrar la mejora en la precisión con la complejidad computacional y la capacidad de interpretación de las reglas difusas. 9. Implemente las mejoras. Si "e" es valor_1 entonces f(e) = 0.3679(e) + 0.0000 Si "e" es valor_2 entonces f(e) = 0.2386(e) + 0.1293 Si "e" es valor_3 entonces f(e) = 0.1100(e) + 0.3865 Si "e" es valor_4 entonces f(e) = 0.0623(e) + 0.5296 Si "e" es valor_5 entonces f(e) = 0.0338(e) + 0.6434 Si "e" es valor_6 entonces f(e) = 0.0180(e) + 0.7385 Si "e" es valor_7 entonces f(e) = 0.0094(e) + 0.8075 Si "e" es valor_8 entonces f(e) = 0.0025(e) + 0.8900 Si "e" es valor_9 entonces f(e) = 0.0053(e) + 0.8452 Figura 26: Funciones de membresía usadas y las salidas implementadas. Figura 27: Visualización de como trozamos a nuestra función, para poder aproximarnos a la curva. Figura 28: Resultado que obtuvimos con 5 funciones de membresía. 10. Registre el desarrollo y compruebe numéricamente una vez más. Figura 29: Registro de las reglas impuestas en nuestra función exponencial. 𝑒 = 5.061 → 𝑓(𝑒) = 0.0338(e) + 0.6434 𝑒 = 5.061 → 𝑓(𝑒) = 0.0338 (5.061) + 0.6434 𝑒 = 5.671 → 𝑓(𝑒) = 0.8144 IV. CUESTIONARIO FINAL 1. Que ventajas y desventajas tiene el modelo TSK frente al modelo Mamdani. El modelo TSK (Takagi-Sugeno-Kang) tiene varias ventajas sobre el modelo Mamdani. Una ventaja principal es su capacidad para generar resultados numéricos directamente, lo que lo hace adecuado para problemas de aproximación de funciones y control. Además, el modelo TSK puede ser más eficiente computacionalmente en comparación con el modelo Mamdani, especialmente para sistemas grandes. Sin embargo, el modelo Mamdani es más interpretativo y puede ser más adecuado cuando se necesita una lógica difusa clara y comprensible. También es importante destacar que el modelo TSK tiende a ser más sensible a los valores extremos en los datos de entrada, lo que puede afectar su rendimiento en ciertos casos. 2. Cuando emplear un sistema difuso de tipo TSK. El sistema difuso de tipo TSK es especialmente útil cuando se necesita aproximar funciones no lineales o cuando se busca un controlador difuso que pueda generar respuestas numéricas precisas. Se utiliza en situaciones donde se requiere una modelización precisa y una respuesta controlada, como en sistemas de control difuso, sistemas de predicción y sistemas de inferencia basados en datos. En resumen, se emplea un sistema difuso de tipo TSK cuando se necesita una relación directa entre las entradas y las salidas en forma numérica y se desea una aproximación precisa de funciones no lineales. 3. Tiene alguna limitación su uso para la implementación de controladores difusos. Aunque el controlador TSK tiene muchas ventajas, también tiene limitaciones. Una de las limitaciones principales es que el modelo TSK puede requerir una cantidad significativa de datos de entrenamiento para lograr un rendimiento óptimo. Además, puede ser más complejo de diseñar y ajustar en comparación con otros controladores difusos más simples. Otra limitación es su sensibilidad a los valores extremos en los datos de entrada, lo que puede afectar su robustez en ciertas situaciones. Por lo tanto, es importante considerar estas limitaciones al utilizar un controlador TSK y elegir cuidadosamente los parámetros y el enfoque de diseño. 4. Que cambios puede proponer al controlador TSK para mejorar su desempeño. Para mejorar el desempeño del controlador TSK, se pueden considerar varias modificaciones y enfoques. Primero, se puede explorar la posibilidad de ajustar los conjuntos difusos y las reglas de inferencia para adaptarse mejor a los datos de entrada y a la dinámica del sistema. Además, se pueden utilizar técnicas de optimización para ajustar los parámetros del controlador de manera más precisa. También es importante recopilar una cantidad adecuada de datos de entrenamiento para mejorar la precisión del modelo. Además, es útil considerar estrategias de control adaptativo que permitan al controlador TSK ajustarse en tiempo real a las condiciones cambiantes del sistema. En última instancia, la mejora del desempeño del controlador TSK implica una combinación de diseño cuidadoso, ajuste de parámetros y recopilación de datos de alta calidad. V. CONCLUSIONES • En este laboratorio, aprendimos a usar el control difuso tipo Sugeno. Descubrimos que es especialmente útil cuando necesitamos una relación precisa entre las entradas y las salidas, lo que lo convierte en una herramienta valiosa para sistemas de control y aproximación de funciones no lineales. • Entendimos que la interfaz gráfica de usuario proporcionada por MATLAB facilita enormemente la creación y configuración de sistemas difusos. Esto nos permitió diseñar conjuntos difusos, definir reglas de inferencia y ajustar parámetros de manera interactiva. • Experimentamos con la importancia de la recopilación de datos y la selección adecuada de funciones de membresía. Comprendimos que estos aspectos son cruciales para el rendimiento de nuestros sistemas difusos. • Nos dimos cuenta de que la lógica difusa es especialmente útil en situaciones donde las relaciones son complejas y no lineales. Pudimos aplicar este conocimiento para aproximar funciones no lineales de manera eficiente. • Aunque enfrentamos desafíos, como la sensibilidad a los valores extremos y la necesidad de datos de entrenamiento de alta calidad, también encontramos oportunidades para mejorar nuestros sistemas difusos mediante ajustes cuidadosos. • En general, este laboratorio nos brindó una valiosa introducción a la lógica difusa y sus aplicaciones prácticas en MATLAB. Ahora tenemos una comprensión más sólida de cómo utilizar esta tecnología en la resolución de problemas del mundo real y estamos emocionados por explorar más en este campo en el futuro.