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