Tema 4. Ejemplo Control Difuso IA – Inteligencia Artificial 5o informática http://ccia.ei.uvigo.es/docencia/IA enero 2011 – FJRP 2011 ccia IA – Tareas tı́picas en el diseño de sistemas basados en lógica difusa 1. Identificar las variables del dominio Variables ”de estado”: describen las entradas del sistema Variables ”de control”: describen las salidas del sistema 2. Identificar los términos lingüı́sticos vinculados a cada variable y sus respectiva definición Definir las ”particiones difusas” de cada variable (etiquetas lingüı́sticas). Definir las funciones grado de verdad asociadas a cada etiquetas lingüı́sticas. Habitualmente se pretenderá que las particiones definidas ”cubran” la totalidad del espacio de valores de las distintas variables Es recomendable que exista solapamiento. 3. Construir las reglas difusas que correspondan. (crear la representación simbólica) Habitualmente se hace uso de las FAM (Fuzzy Association Matrix). Se crea una FAM para cada variable ”de control”, vinculando las posibles combinaciones de las variables ”de estado” (antecedente) con una de sus etiquetas lingüı́sticas (consecuente). 4. Seleccionar la implementación y los parámetros de los operadores difusos a utilizar. (parametrizar el ”funcionamiento numérico”) mı́nimo + máximo producto + suma acotada b) Implementación implicación difusa (→): Mindani, Kleene, Larsen, etc c) Implementación del modus ponens difuso: max-min a) Implementación conectivas difusas (∧, ∨ , ¬): Activación de reglas: normalmente se considerará que una regla difusa se activa si el grado de verdad de su antecedente es ¿0. d) Agregación de las salidas de las reglas difusas (OR): máximo, suma acotada, ... e) Operadores de fuzzyficación (singleton, triangular, ...) y desfuzzyficacion (centro de masas, media máximos, ...) – FJRP 2011 ccia IA – 1 Ejemplo: control difuso de una calefacción Descripción: Se pretende controlar la calefacción de un invernadero/edificio/etc a partir de los parámetros de temperatura y humedad del mismo. La finalidad es mantener controlada la temperatura e, implicitamente, la humedad. Se cuenta con un sensor de temperatura con un rango de funcionamiento desde 0o C a 40o C y una precición de centésimas. Se cuenta con un sensor de humedad con un rango de funcionamiento entre 0 % y 100 % de humedad relativa, con una precición de centésimas. La caldera se puede controlar mediante incrementos/decrementos de temperatura, desde -15 o C a +15 o C. (a) Variables de estado Temperatura Se asumen 5 etiquetas lingüı́sticas: muy baja (MB), baja(B), normal (N), alta(A), muy alta(MA) Humedad Se asumen 5 etiquetas lingüı́sticas: muy baja (MB), baja(B), normal (N), alta(A), muy alta(MA) – FJRP 2011 ccia IA – 2 (b) Variables de control Variación de temperatura Se asumen 7 etiquetas lingüı́sticas: bajada grande (BG), bajada normal (BN), bajada pequeña (BP), mantener (M), subida pequeña (SP), subida normal (SN), subida grande (SG) (b) Reglas difusas Se considera la siguiente FAM (Fuzzy Association Matrix) para la variable de control Variación de temperatura. Temp. MB B N A MA – FJRP 2011 ccia IA – Humedad MB B N A MA SN SN SG SG SG M M SP SP SN M M M M BP M M BP BP BN BP BN BN BG BG 3 (c) Parámetros de la inferencia difusa Se usarán los siguientes operadores: Conectiva AND (∧): mı́nimo. Conectiva OR (vee): máximo Implicación difusa (→): Mamdani Modus ponens difuso: min-max (composición de conj. difuso con relación difusa) Agregación de las salidas difusas de las reglas activadas: OR (máximo) Operador de fuzzyficación: singleton Operador de desfuzzificación: centro de masas Nota: El uso del implicador de Mamdani (fP →Q (x, y) = min{fP (x), fQ (y)}) junto con la fuzzyficación usando conjuntos singleton simplifica la aplicación del modus ponens difuso. Para aplicar una regla sobre conjuntos singleton bastará con ”seleccionar” un α-corte del conjunto difuso vinculado al ”consecuente”. Para reglas AND: ese α-corte tomará como valor α el menor valor de verdad de la intersección de los singleton de entrada con los conjuntos difusos vinculados a los ”antecedentes”. – FJRP 2011 ccia IA – 4 (d) Ejemplo de funcionamiento Se suponen las siguientes entradas en los sensores del sistema: Temperatura actual: 19,5 oC Humedad actual: 65 % Fuzzyficación (singleton) El valor singleton ”Temperatura=19,5 o C” se co- El valor singleton ”Humedad=65 %” se corresponde rresponde con un grado de verdad 0, 1 para el con un grado de verdad 0, 5 para el valor difuso valor difuso Temperatura Baja(B) y con un grado Humedad Alta(A) y con un grado de verdad 0, 33 de verdad 0, 75 para el valor difuso Temperatura para el valor difuso Humedad MuyAlta(MA) Normal(N) Reglas activadas Temp MB MB B N A MA SN M M M BP Humedad B N A SN M M M BN SG SP M BP BN – FJRP 2011 ccia IA – SG SP M BP BG MA SG SN BP BN BG - IF THEN - IF THEN - IF THEN - IF THEN (Temperatura Variación es (Temperatura Variación es (Temperatura Variación es (Temperatura Variación es es Baja AND Humedad es Alta) SubidaPeque~ na es Baja AND Humedad es MuyAlta) SubidaNormal es Nornal AND Humedad es Alta) Mantener es Nornal AND Humedad es MuyAlta) BajadaPeque~ na 5 Modus ponens difuso – FJRP 2011 ccia IA – 6 Agregación y desfuzzyficación Variable de control Salida: bajar la calefacción 2,125 oC – FJRP 2011 ccia IA – 7