UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE INGENIERIA CONTROL DE NIVEL DE LIQUIDO CON LOGICA DIFUSA TESIS QUE PARA OBTENER EL TITULO DE INGENIERO ELECTRICO ELECTRONICO (AREA: ELECTRONICA) P R E S E N T A JAVIER TELLEZ SANCHEZ DIRECTOR: ING. ROBERTO MACIAS PEREZ MEXICO, D.F. FEBRERO, 2006 UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. I N D I C E Capítulo l Introducción 1 Capítulo II Definición del problema 3 2.1 Motivaciones para realizar el proyecto 3 2.2 Problema 3 2.3 Objetivos 4 Capítulo III Nociones básicas de sistemas hidráulicos 5 3.1 Definiciones 5 3.2 Propiedades de los fluidos 6 3.3 Leyes básicas de los fluidos 6 3.4 Introducción a sensores de nivel de líquido, válvulas y motores de bombeo 8 Capítulo IV Lógica difusa 11 4.1 Introducción a la lógica difusa 11 4.2 Conjuntos difusos 12 4.2.1 Características de los conjuntos difusos 14 4.2.2 Operaciones con conjuntos difusos 16 4.2.3 Principio de extensión 17 4.2.4 Relaciones entre conjuntos difusos 18 4.2.5 Operaciones con relaciones difusas 19 4.2.6 Composición 19 4.3 Cálculo proposicional 20 4.4 Razonamiento aproximado 21 Capítulo V Introducción a la teoría de control difuso 22 5.1 Control difuso 22 5.1.1 Difusión 23 5.1.2 Evaluación de reglas 24 5.1.3 Desdifusión 24 5.2 Acciones básicas de control 28 5.3 Controlador difuso PD 28 5.4 Controlador difuso P+I 29 5.5 Controlador difuso PD+I 29 Capítulo VI Componentes del sistema de control 31 6.1 Características del PIC18F452 32 6.2 Sensor de nivel de líquido 33 6.3 Teclado 33 6.4 El módulo LCD 34 6.5 Válvulas de control 36 6.6 Etapa de potencia para activar la bomba de agua 38 Capítulo VII Diseño del controlador difuso PD+I 39 7.1 Desarrollo 39 7.2 Codificación del algoritmo de control difuso 44 7.2.1 Rutina de difusión 45 7.2.2 Rutina de evaluación de reglas 51 7.2.3 Rutina de desdifusión 53 Capítulo VIII Simulaciones en MATLAB 55 8.1 Simulación del controlador difuso en MATLAB 55 8.2 Función de transferencia de la planta 58 8.3 Simulación del sistema de control de nivel de líquido 62 en SIMULINK 8.4 El controlador difuso contra el controlador analógico 64 Capítulo IX Resultados y conclusiones 68 9.1 Resultados 68 9.2 Conclusiones 71 APENDICE A Datos experimentales 72 APENDICE B Ejemplo de sintonización 78 APENDICE C Programa de control difuso 81 APENDICE D Diagramas 86 APENDICE E Hojas de datos 91 BIBLIOGRAFIA 107 A mi amada Rosalba: Por ser como eres cada vez más y más te quiero. Agradecimientos Quiero agradecer a mis padres por su incondicional apoyo y comprensión. A mis hermanas y hermanos por la constante motivación que me inspiraron. Quiero agradecer muy sinceramente a mis profesores de la Facultad, especialmente a los ingenieros Alejandro Sosa Fuentes, Eduardo Ramírez Sánchez, Roberto Macías Pérez, a los maestros en ingeniería Antonio Salvá Calleja y Francisco Rodríguez Ramírez, quienes hicieron una lectura crítica de esta tesis y por ofrecer muchos comentarios valiosos, los cuales se incluyeron en este trabajo. Quiero agradecer a mis amigos Adrián, Blanca, Horacio, Viviana, Federico, Beatriz, Juan Carlos, Carla, Víctor, Clara, Jesús, Alma Rosa y Angélica por su invaluable apoyo y agradable compañía. Por último quiero agradecer a todas y a cada una de las personas que me apoyaron durante el proyecto, en particular al ingeniero Lauro Santiago Cruz e Israel Nava a quienes admiro y tengo en gran aprecio. Javier Téllez Sánchez Febrero, 2006 1 CAPITULO I INTRODUCCION En algunos procesos industriales a menudo se incluyen sistemas de nivel, los cuales constan de tanques, conectados por medio de tubos con orificios, válvulas y dispositivos que restringen el flujo. En los sistemas de nivel de líquido, la medición y el control del nivel son de gran importancia, ya que disminuyen costos y aumentan la seguridad. Por ejemplo, si en un tanque el nivel de líquido es muy alto puede alterar el equilibrio de la reacción o causar el derrame de material peligroso o de valor. En caso contrario un nivel de líquido demasiado bajo altera el equilibrio de la reacción, modificando la calidad y eficiencia del proceso. En algunos procesos, el nivel debe mantenerse con exactitud a una altura determinada, independientemente de las condiciones de carga del proceso. Por ejemplo, en un generador de vapor, como un boiler, es deseable mantener el nivel dentro de un valor determinado entre dos condiciones de operación presentes todo el tiempo, sin tener en cuenta la salida del generador. En evaporadores, el medio caliente puede estar dentro de un tubo y este debe estar sumergido a una profundidad óptima. Un nivel muy bajo puede descubrir la superficie caliente, lo cual disminuye la eficiencia del proceso y causa sobrecalentamiento. Un nivel de líquido muy alto necesita una mayor entrada de calor. La utilización del control de nivel puede ser ventajosa para mantener la capacidad del proceso entre limites prácticos. Al utilizar la medición y el control de nivel, el tamaño de los contenedores de mezclado o de reacción puede ser pequeño. Una vez que el controlador de nivel suministra el fluido necesario para mantener la altura del líquido en un nivel determinado, no es necesario utilizar grandes contenedores para manejar todo el líquido disponible para un proceso, Esto también significa que en algún instante una pequeña cantidad de material esta bajo reacción o en proceso reduciendo riesgos, pérdidas potenciales y putrefacción. También, para proteger una bomba centrifuga, el nivel de líquido en el tanque de almacenamiento debe mantenerse en un valor óptimo. Si el nivel es demasiado bajo puede ocurrir cavilación en la succión de la bomba. Si el nivel es muy alto entonces puede haber pérdidas en el volumen del acumulador, afectando al proceso desde el punto de vista de operación. Por esta razón se pueden justificar la medición y el control de nivel en términos de economía y seguridad. Para medir el nivel de líquido se pueden utilizar instrumentos de medida directa, instrumentos basados en el desplazamiento, instrumentos basados en la presión hidrostática o en las características eléctricas del líquido. 2 Para controlar un sistema de nivel de líquido, se utiliza una o más de las técnicas mencionadas anteriormente para la medición del nivel y sistemas de control automático (analógicos o digitales), con el fin de abrir o cerrar válvulas y encender o apagar motores de bombeo. Los sistemas de nivel de líquido forman parte de los sistemas hidráulicos. El modelo matemático de éstos es, en general, de naturaleza no lineal. Para el control de este tipo de sistemas, se puede aplicar la teoría de control analógico, digital o difuso. En general, para aplicar la teoría de control analógico o digital, se requiere el modelo matemático lineal del sistema. Al utilizar la lógica difusa para diseñar un controlador, no se requiere el modelo matemático del sistema, sino que se requiere del sentido común del diseñador o la experiencia del operador para automatizarlo. Cada vez se utiliza con mayor frecuencia el control difuso porque tiene algunas ventajas con respecto a los sistemas de control tradicionales: Pueden diseñarse con mayor rapidez. Su desarrollo es más económico. Algunas desventajas que presenta el control difuso son: Requiere mayor simulación, depuración y pruebas antes de ponerlos a operar. El número de reglas puede ser muy grande si se incrementa el número de entradas o el número de conjuntos por entrada. 3 CAPITULO II DEFINICION DEL PROBLEMA 2.1 Motivaciones para realizar este proyecto Los sistemas de control de nivel de líquido se utilizan para llenar o vaciar recipientes a un nivel definido. Estos recipientes pueden contener sustancias como: refresco, agua, leche, productos químicos, etc. Parte de las ganancias o perdidas monetarias de estas industrias dependen del manejo de sus materiales. Aplicar la teoría de control difuso para controlar un sistema de nivel de líquido dado. Con base en los resultados obtenidos, se puede analizar la posibilidad de mejorar la eficiencia y confiabilidad de este tipo de controles, con las ventajas intrínsecas que conllevan, entre ellas por un lado el ahorro de tiempo y dinero en la implantación de la tecnología y por otro el mayor aprovechamiento de los recursos de la empresa. Pienso que es importante despertar interés por la investigación, desarrollo y aplicación de prototipos con control difuso para las industrias del país y en usos domésticos. 2.2 Problema En la figura 2.1 se muestra un sistema de control de nivel de líquido. El sistema consta de un tanque cilíndrico de área A y altura H, un deposito, una bomba de agua y dos llaves VA y VB. Se requiere diseñar un controlador difuso que regule el llenado o vaciado del tanque a un nivel de referencia h especificado por el usuario. Figura 2.1 Sistema de nivel de líquido a controlar. 4 2.3 Objetivos: Diseñar un sistema de control difuso, que sea capaz de controlar el nivel de líquido, en un sistema formado por dos tanques, dos válvulas de control y una bomba de agua, como el que se muestra en la figura 2.1. Comparar, por medio de una simulación en MATLAB, la respuesta del sistema de nivel de líquido, utilizando el controlador difuso diseñado, con respecto a la respuesta obtenida mediante un controlador analógico. Construir físicamente el sistema de nivel de líquido y el controlador difuso diseñado para comprobar su funcionamiento. Mostrar una manera de programar el algoritmo de control difuso. 5 CAPITULO III NOCIONES BASICAS DE SISTEMAS HIDRAULICOS 3.1 Definiciones La presión se define como fuerza normal por unidad de área que actúa sobre las fronteras de un sistema. La presión absoluta se calcula como: manatmabs PPP += [ ]2/ mN donde atmP es la presión atmosférica manP es la presión manométrica [ ]Pa m N 11 2 =⎥⎦ ⎤ ⎢⎣ ⎡ Una presión manométrica es la diferencia entre la presión absoluta del fluido y la presión atmosférica. Se define el número de Reynolds como µ ρ vD R = donde: v es la velocidad promedio del fluido Es la densidad del fluido D es una longitud Es la viscosidad dinámica Si R < 200 entonces, el flujo es laminar. Si R > 400 entonces, no siempre el flujo es turbulento. El flujo de un fluido es estable cuando la presión, la velocidad, la densidad, la temperatura y factores similares no cambian con el tiempo. Una línea de corriente es una línea continua tendida a través del fluido de modo que tenga la dirección del vector de velocidad en cada punto. Un tubo de corriente es el tubo hecho con todas las líneas de corriente que pasan por una curva dada. El volumen de control se refiere a una región en el espacio definida para realizar el análisis de situaciones donde el flujo ocurre adentro y afuera del espacio. ρ µ 6 3.2 Propiedades de los fluidos La densidad ρ de una sustancia se define como masa por unidad de volumen. Las unidades comúnmente usadas son 3/ mKg . ⎥⎦ ⎤ ⎢⎣ ⎡= 3 m Kg V mρ El peso específico γ de una sustancia se define como su peso por unidad de volumen. ⎥⎦ ⎤ ⎢⎣ ⎡= 3 m N gργ La densidad especifica de una sustancia es la relación de su peso con respecto al peso de un volumen igual de agua a la presión atmosférica y temperatura estándar de 4ºC. La viscosidad, es una medida de la resistencia del fluido. Puede ser: Las fuerzas que afectan al flujo de los fluidos son principalmente la inercia y la viscosidad. 3.3 Leyes básicas de los fluidos Las ecuaciones de continuidad se obtienen aplicando el principio de conservación de la masa del flujo. Este principio establece que la masa dentro de un sistema permanece constante con el tiempo. Por ejemplo, al aplicar el principio de conservación de la masa a dos secciones transversales a lo largo del tubo de corriente, en flujo estable, mostrado en la figura 3.1 se obtiene 222111 21 21 0 dAvdAv lAVyVmComo dt dm dt dm Cmm ρρ ρ = == =− =− ⎥⎦ ⎤ ⎢⎣ ⎡ ⋅ 2 m sN ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = s m 2 ρ µν Dinámica Cinemática Viscosidad Figura 3.1 Tubo de corriente 7 Donde 21 mym representan la masa de entrada y salida respectivamente. 21 dAydA representan las diferenciales de área de entrada y salida. 21 vyv representan las velocidades del flujo de entrada y de salida. En una colección de tubos de corriente si la densidad promedio de entrada y salida son 1ρ y 2ρ sobre las secciones transversales 21 AyA respectivamente, y las velocidades promedio son sobre las secciones transversales de la entrada y la salida son 1V y 2V respectivamente, entonces 222111 AVAV ρρ = Si el flujo es estable e incompresible se tiene que 21 ρρ = . Por lo tanto, AVAV 211 = Las ecuaciones de continuidad para el volumen de control establecen que la razón del incremento con respecto al tiempo de la masa dentro de un volumen de control es igual a la razón de cambio neto de la masa que fluye hacia la masa de control. Por ejemplo, al aplicar el principio de conservación de la masa al tanque de la figura 3.2 se obtiene 54321 qqqqq dt dVC −−−+= La ecuación de Euler del movimiento en flujo estable se escribe como 0=++ gdz dp vdv ρ La ecuación de Bernoulli para flujo estable sin fricción e incompresible se obtiene al integrar la ecuación de Euler. Se escribe como ctez p g v =++ γ2 2 . Figura 3.2 Tanque con varias entradas y salidas de líquido. 8 3.4 Introducción a sensores de nivel de líquido, válvulas y motores de bombeo El sistema de nivel de líquido utilizado en este proyecto consta de los siguientes componentes: un tanque, un deposito, un sensor de nivel de líquido, dos válvulas de control y una bomba de agua. Para medir el nivel de líquido se utilizan diferentes instrumentos, los cuales se clasifican de la siguiente manera • Los instrumentos que miden directamente el nivel de liquido se dividen en: sonda, cinta y plomada, nivel de cristal y flotador. • Los aparatos que miden la el nivel aprovechando la presión hidrostática se dividen en: medidor monasterio, medidor de membrana, medidor de burbujeo y medidor de presión diferencial de diafragma. • El medidor de desplazamiento a barra de torsión aprovecha el empuje producido por el propio líquido. • Los instrumentos que utilizan las características eléctricas del líquido se clasifican en: medidor resistivo, conductivo, capacitivo, ultrasónico, de radiación y de láser. Una válvula es un dispositivo que varía el caudal del fluido de control para modificar el valor de la variable medida. Sus componentes básicos son el cuerpo y el servomotor. Internamente el cuerpo contiene el obturador y el asiento. Para conectarla con el servomotor se utiliza una tapa a través de la cual atraviesa el vástago del obturador. Para evitar fugas de liquido entre la tapa y el vástago se utilizan empaques. Para conectar la válvula con la tubería externa se utilizan bridas o una conexión roscada o soldada. Los servomotores que se utilizan en las válvulas pueden ser neumáticos, hidráulicos, digitales y electrónicos. Los servomotores neumáticos consisten en un diafragma con resorte que trabaja entre dos limites de presión, para las cuales se tiene las posiciones extremas de la válvula. Al aplicar una cierta presión sobre el diafragma, el resorte se comprime de tal modo que el mecanismo empieza a moverse y continua moviéndose hasta que el diafragma llega a un equilíbrio entre la fuerza ejercida por la presión del aire sobre el diafragma y la fuerza ejercida por el resorte. Los servomotores hidráulicos consisten en una bomba de accionamiento eléctrico que suministra fluido hidráulico a una servoválvula. La señal del controlador actúa sobre la servoválvula dirigiendo el flujo hidráulico a los lados del pistón actuador hasta conseguir, mediante retroalimentación, la posición exacta de la válvula. Las válvulas digitales disponen de compuertas neumáticas accionadas por electroválvulas, que a su vez son excitadas por la señal de salida binaria de un microprocesador. Los servomotores eléctricos consisten en un motor eléctrico que se acopla al vástago de la válvula por medio de un tren de engranes. El motor eléctrico tiene como características principales su par y su velocidad, las cuales se reflejan en la rapidez de apertura y cierre de 9 De desplazamiento no positivo la válvula. Los circuitos básicos de control para servomotores eléctricos son: todo-nada, proporcional y flotante. Con respecto al movimiento del obturador, las válvulas se clasifican como válvulas de movimiento lineal y válvulas de movimiento circular. Las válvulas de movimiento lineal se clasifican como: • Válvula de globo de simple asiento o de doble asiento. • Válvula de ángulo. • Válvula de tres vías. • Válvula de jaula. • Válvula de compuerta. • Válvula en Y. • Válvula de cuerpo partido. • Válvula Saunders. • Válvula de compresión. Las válvulas un movimiento circular se clasifican como: • Válvulas de obturador excéntrico rotativo. • Válvula de obturador cilíndrico excéntrico. • Válvula de mariposa. • Válvula de bola. • Válvulas de orificio ajustable. • Válvula de flujo axial. Una bomba es una maquina eléctrica que sirve para transportar fluidos por medio de tuberías. Se pueden clasificar de la siguiente manera Bombas hidráulicas Las bombas de desplazamiento positivo se clasifican como • Bombas de pistón axial. • Bombas de pistón radial. • Bombas de aspas. • Bomba de engranes. De desplazamiento positivo Son las mas usadas y tienen la ventaja de que el flujo de salida no se ve afectado por las variaciones de presión en el sistema a causa de un sello interno positivo contra fugas. El flujo de salida se ve afectado por las variaciones de presión en el sistema a causa de que no tienen un sello interno positivo contra fugas. 10 Las clasificaciones de las válvulas y de las bombas de agua realizadas anteriormente no son las únicas, pero sirven para dar una idea los tipos de válvulas y bombas que se pueden adquirir. Para elegir una válvula de control existen más características de las mencionadas anteriormente ya que se debe tener en cuenta el tipo de fluido que se va a utilizar, el caudal requerido, la temperatura de operación y la característica de flujo entre otras. 11 CAPITULO IV LOGICA DIFUSA La lógica difusa fue desarrollada por el Doctor Lotfi A. Zadeh en el año de 1965, en la Universidad de California, en Berkeley. Aunque en occidente se hicieron las primeras aplicaciones de control difuso en el ámbito industrial, su desarrollo tecnológico, en artículos de consumo, comenzó en Japón. En la actualidad, la lógica difusa ha permitido el desarrollo de la inteligencia artificial, las redes neuronales, los algoritmos genéticos y la programación evolutiva en el campo de los procesos biológicos. 4.1 Introducción a la lógica difusa La lógica difusa es un método de razonamiento aproximado que utiliza un conjunto de reglas de implicación de la forma SI < antecedente > ENTONCES, < consecuente >, las cuales se refieren a cantidades imprecisas, como ideas o palabras que se pueden trasladar a un lenguaje matemático formal que se puede programar. De esta forma las nociones como caliente, muy caliente, poco caliente, etc., pueden formularse matemáticamente y ser procesados por la computadora. La lógica difusa se aplica en: El control de procesos industriales. La electrónica de entretenimiento y hogar. Sistemas expertos. Sistemas de diagnóstico. Sistemas de deducción automática. Se puede aplicar en: Sistemas complejos donde es difícil o imposible obtener un modelo. Sistemas controlados por expertos. Sistemas que utilizan observaciones como reglas básicas. Cualquier sistema que no requiera gran exactitud para ser controlado. Ventajas: Usa variables lingüísticas para simular el conocimiento humano. Es un sistema basado en reglas que relacionan las salidas con las entradas, a diferencia de los sistemas tradicionales que se basan en ecuaciones. Es posible obtener prototipos rápidamente al ser sencillos de diseñar. El desarrollo de estos es mas barato que el de sistemas convencionales. Desventajas: Requieren mayor simulación y mayor cantidad de pruebas para ir eliminando errores antes de ponerlos a funcionar. 12 4.2 Conjuntos difusos Al conjunto de todos los elementos que definen el rango de la aplicación se le llama universo de discurso. Para representarlo se utiliza la letra X mayúscula y para representar sus elementos individuales se utiliza la letra x minúscula. Un conjunto clásico, también llamado tradicional, exacto o definido, es una colección de elementos del universo X. Los conjuntos se representan generalmente con las primeras letras del abecedario A, B, C, D, etc. Para establecer las relaciones entre elementos y conjuntos o entre conjuntos se utiliza la siguiente notación →∈ Xx x pertenece a X →∈ Ax x pertenece a A →∉ Xx x no pertenece a A Para los conjuntos A y B en X se tiene BA⊂ A es subconjunto de B BA⊆ A es subconjunto propio de B AByBABA ⊆⊆= φ Representa al conjunto que no tiene elementos X Representa al conjunto de todos los elementos En general, los conjuntos se pueden representar por medio de un plano cartesiano, un diagrama de Venn-Euler o una expresión matemática. En la figura 4.1 se muestran las diferentes representaciones de un conjunto tradicional. Figura 4.1. Representaciones de un conjunto tradicional o exacto. En el caso de los conjuntos tradicionales, los elementos que los forman se encuentran exactamente definidos en cuanto a su de pertenencia al conjunto. Algunos ejemplos de conjuntos clásicos son: 1. El conjunto de planetas que forman el sistema solar. Este es un conjunto finito de 9 elementos, el cual puede representarse de la siguiente manera }/{ solarsistemadelplanetaunesxxA = 13 2. El conjunto de números mayores que cero y menores que 5. Este es un conjunto infinito el cual se puede representar como }50/{ <<= xxA Cada uno de estos conjuntos tiene un límite bien definido, es decir, no existe ninguna duda de la pertenencia o no-pertenencia de un elemento a su conjunto. Formalmente, la pertenencia de cada elemento de un universo a un conjunto se define mediante una función característica, la cual se define de la siguiente manera: Sea x un elemento definido en el conjunto universal X y A un subconjunto de X, entonces la pertenencia del elemento x al conjunto A estará dada por la función característica ( ) ⎩ ⎨ ⎧ ∉ ∈ = Axsisóloysi Axsisóloysi xA 0 1 µ donde ( )xAµ representa una función de mapeo del universo X al universo Y de elementos {1,0}. Con esta definición no se pueden asignar grados de membresia intermedios, que representen conceptos que no estén bien definidos. Se puede representar matemáticamente a los conjuntos temperatura, presión, humedad, nivel, etc. Pero, qué pasa si se requiere representar, matemáticamente al conjunto de nivel líquido pequeño, mediano o grande de un tanque con agua. ¿Cómo se representarían matemáticamente los conceptos pequeño, mediano o grande?. Evidentemente existe un grado de inexactitud o ambigüedad en este tipo de conjuntos. Con la teoría clásica de conjuntos no es posible hacer una representación matemática de fenómenos con niveles de incertidumbre. En la lógica difusa, al igual que en los conjuntos clásicos, el universo de discurso, que representa todos los conjuntos difusos, se representa con la letra X y los elementos individuales del universo se representan con la letra x. Se define a un conjunto difuso en X, como una colección de elementos que no tienen limite exacto o definido, mientras que en los conjuntos clásicos la transición, entre la pertenencia y no-pertenencia a un conjunto de un elemento del universo es abrupta y definida. Un conjunto difuso se representa por el símbolo del conjunto y una tilde subescrita. Por ejemplo, ~ A representa al conjunto difuso A. Los elementos de un conjunto difuso se mapean a un conjunto de valores reales en el intervalo [0, 1]. Si un elemento x del universo de discurso es miembro del conjunto ~ A , entonces, la función de mapeo para un conjunto difuso esta dada como [ ]1,0)( ~ ∈xAµ , donde { }XxxxA A ∈= /)(, ~ µ 14 La forma de representar a los elementos de un conjunto difuso es por medio de pares ordenados, formados por el elemento del conjunto y su grado de pertenencia a este, es decir (x , )(xAµ ) representa un elemento x del conjunto difuso ~ A . En la figura 4.2 se muestran las diferentes representaciones de un conjunto difuso. Figura 4.2. Representación de un conjunto difuso. Para facilitar la representación de los conjuntos difusos, cuando el universo de discurso X es discreto y finito, se utiliza la siguiente notación: ~ A = ( ) 1 1 ~ x xAµ + ( ) 2 2 ~ x xAµ +, ... , + ( ) n nA x x ~ µ En la notación anterior el símbolo barra horizontal “/” no significa división aritmética, sino que es un símbolo delimitador que relaciona a cada elemento del conjunto con su grado de pertenencia. El símbolo “+” significa unión difusa para conjuntos discretos. 4.2.1 Características de los conjuntos difusos Toda la información contenida en un conjunto difuso se describe por su función de pertenencia. Sus características básicas son el soporte, el núcleo y los límites. Soporte “Supp ~ A ”. Comprende todos los elementos x del universo para los cuales la función de membresia del conjunto ~ A es mayor que cero. { }0)(/ ~ >∈= xXxASupp Aµ Límite. Comprende todos los elementos x del universo para los cuales la función de membresia tiene un valor de pertenencia entre cero y uno al conjunto ~ A , es decir, 1)(0 ~ << xAµ Núcleo. El núcleo de un conjunto difuso ~ A es la región del universo que tiene pertenencia total al conjunto, es decir, 1)( ~ =xAµ . 15 )()( ~~ xx BA µµ ≤ En la figura 4.3 se muestra las características básicas de un conjunto difuso. Un conjunto difuso se dice que es normal si por lo menos uno de sus elementos presenta un grado de pertenencia de valor igual a 1. Se dice que ~ A es subconjunto de ~ B si y solo si el grado de pertenencia de ~ A es menor o igual que el de ~ B . Un conjunto difuso ~ A es igual al conjunto difuso ~ B si sus funciones de pertenencia son iguales para todos los elementos de los conjuntos. )()( ~~ xx BA µµ = Un conjunto difuso es vacío si tiene un soporte vacío, es decir, la función de pertenencia asigna cero a todos los elementos del conjunto. Un conjunto difuso convexo se describe por una función de membresia cuyos valores de pertenencia se incrementan o decrementan estrictamente de forma monotónica. Es decir, si para todos los elementos del conjunto ~ A donde zyx << se cumple que )](),([)( ~~~ zxminy AAA µµµ ≥ entonces se dice que ~ A es un conjunto difuso convexo. Figura 4.3 Características básicas de un conjunto difuso 16 4.2.2 Operaciones con conjuntos difusos Las operaciones con conjuntos difusos se definen en términos de la función de pertenencia, ya que esta define completamente al conjunto difuso. Con dos conjuntos difusos ~~ ByA , definidos en el mismo universo de discurso X, se pueden realizar las siguientes operaciones difusas: Unión. )](,)([)( ~~~~ xxmaxx BABA µµµ =U Intersección. )](,)([)( ~~~~ xxminx BABA µµµ =I Complemento. )(1)(_ ~ xx A A µµ −= Leyes de DeMorgan. ~~~~ BABA UI = ~~~~ BABA IU = 17 No cumplen con la ley del medio excluido: ∅≠ __ ~~ AA I No cumplen con la ley de la contradicción: XAA ≠ __ ~~ U 4.2.3 Principio de extensión Este principio nos permite extender el dominio de una función en conjuntos difusos. Supongamos que hay una función de mapeo entre los elementos u, del universo U, sobre los elementos v, de otro universo V. Este mapeo se describe por: f: U V. Sea ~ A un conjunto difuso del universo U esto es, UA ⊆ ~ y sea f una función que mapea al conjunto ~ A en el universo U a un conjunto ~ B en el universo V, donde ~ A = ( ) 1 1 ~ u uAµ + ( ) 2 2 ~ u uAµ +, ... , + ( ) n nA u u ~ µ Al aplicar el principio de extensión obtenemos la siguiente expresión ( ) ( ) ( ) ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ +++= ... )( ~~~ 2 2 1 1 ~ n nAAA u u u u u u fAf µµµ ( ) ( ) ( ) )( ... )()( ~~~ 2 2 1 1 n nAAA uf u uf u uf u µµµ +++= ( ) ( ) ( ) n nAAA v u v u v u Af ~~~ ...)( 2 2 1 1 ~ µµµ +++= Se puede observar que los grados de pertenencia de los elementos de U al conjunto ~ A son iguales a los grados de pertenencia de los elementos del universo V al conjunto ~ B . 18 4.2.4 Relaciones entre conjuntos difusos El producto cartesiano de los universos de discurso X x Y se obtiene con la expresión { }YyXxyxXxY ∈∈= ,/),( La cual puede representarse en forma gráfica con un diagrama sagital o en un plano cartesiano y en forma analítica con una expresión matricial. Por ejemplo, en la figura 4.4 se muestra el producto cartesiano entre X={0, 1, 2, 3} y Y={a, b, c, d}. Se puede observar que el producto cartesiano es un conjunto que relaciona a todos los elementos del universo X con cada elemento del universo Y. Con dos conjuntos difusos ~~ ByA definidos en los universos de discurso X y Y respectivamente, se puede obtener el producto cartesiano de ambos conjuntos difusos. La fuerza de la relación se mide con la función de membresia ),( ~ yxRµ , la cual representa una función de mapeo del producto cartesiano XxY con el intervalo [0,1], donde: )](),([),(),( ~~~~~ xxminyxyx BABxAR µµµµ == Este producto cartesiano da la relación ~ R que hay entre los universos X y Y. Figura 4.4 Representación del producto cartesiano de X y Y en forma sagital, en un plano cartesiano y en una expresión matricial. 19 4.2.5 Operaciones con relaciones difusas Como una relación difusa es también un conjunto difuso, se pueden aplicar todas las operaciones referidas a conjuntos difusos, es decir, con dos relaciones difusas ~~ SyR definidas en el espacio cartesiano X x Y, se pueden realizar las siguientes operaciones: Unión )],(,),([),( ~~~~ yxyxmaxyx SRSR µµµ =U Intersección )],(,),([),( ~~~~ yxyxminyx SRSR µµµ =I Complemento ),(1),( ~~ yxyx RR µµ −= Las operaciones de conmutatividad, asociatividad, involución e indempotencia se cumplen en relaciones difusas y también se cumplen las leyes de DeMorgan.La relación vacía 0 y la relación completa E son análogas al conjunto vacío y al conjunto total. Las operaciones que no se cumplen en relaciones difusas y en conjuntos difusos son las leyes del medio excluido 0 __ ~~ ≠RR I ERR ≠ __ ~~ U 4.2.6 Composición Si tenemos tres universos de discurso diferentes X, Y y Z y tenemos una relación difusa ~ R que mapea los elementos de X con cada elemento de Y, y una relación difusa ~ S que mapea los elementos de Y con cada elemento de Z, entonces es posible utilizar la composición de relaciones difusas, la cual permite obtener una relación ~ T que mapea directamente los elementos del universo X con cada elemento del universo Z. De esta manera se trabaja con una relación en vez de dos relaciones. La composición difusa se define como: Composición max-min ~~~ SRT o= )],(),([),( ~~~ yxyxzx SRT µµµ ∧∨= Composición max-prod ~~~ SRT •= )],(),([),( ~~~ yxyxzx SRT µµµ •∨= La composición de relaciones no es una operación conmutativa, es decir ~~~~ RSSR oo ≠ 20 4.3 Cálculo proposicional Una proposición difusa es un concepto o pensamiento impreciso, al que se le asigna un grado de verdad en el intervalo de [0,1]. Las proposiciones difusas se asignan a conjuntos difusos. El grado de verdad de la proposición ~ P , que está asignada al conjunto ~ A , se determina con la expresión: 1)(0)()( ~~~~ ≤≤= xdondexPT AA µµ es decir, el grado de verdad de la proposición ~~ : AxP ∈ es igual al grado de pertenencia de x en ~ A . Los conectivos lógicos de negación, disyunción, conjunción e implicación están también definidos para la lógica difusa. Estos conectivos se muestran a continuación para dos proposiciones simples, donde ~ P está definida en el conjunto difuso ~ A y ~ Q está definida en el conjunto difuso ~ B : El grado de verdad de la negación de la proposición ~ P se calcula como )(1)( ~~ _ ~~ PTPT −= La disyunción ~~ QP ∨ , representa al conjunto difuso de los elementos x del universo de discurso, que están en el conjunto ~ A o en el conjunto ~ B , donde el grado de pertenencia se calcula como ⎟ ⎠ ⎞ ⎜ ⎝ ⎛=∨ )(,)()( ~~~~ QTPTmaxQPT La conjunción ~~ QP ∧ , representa al conjunto difuso de los elementos x del universo de discurso, que están en el conjunto ~ A y en el conjunto ~ B , donde el grado de pertenencia se calcula como ⎟ ⎠ ⎞ ⎜ ⎝ ⎛=∧ )(,)()( ~~~~ QTPTminQPT La implicación ~~ QP → establece que si el elemento x del universo de discurso X está en el conjunto ~ A , entonces, el elemento y del universo de discurso Y esta en el conjunto ~ B . El grado de pertenencia de la implicación se calcula como ⎟ ⎠ ⎞ ⎜ ⎝ ⎛=∨=→ )(,)()()( ~ _ ~~ _ ~~~ QTPTmaxQPTQPT 21 4.4 Razonamiento aproximado El razonamiento aproximado es un método de razonamiento impreciso que permite utilizar conceptos vagos o imprecisos y consiste en representar por medio de símbolos las proposiciones iniciales y sus términos de enlace. A las formas lógicas obtenidas se les aplican reglas de inferencia para obtener una conclusión. Los términos de enlace de proposiciones son las palabras «y», «o», «no», «si..,, entonces» y «si y solo si». En forma de símbolos se representan como «∨ », «∧ », «¬ », «→» y «↔» respectivamente. El término de enlace dominante en la proposición determina la forma lógica de esta. Las formas lógicas son la conjunción, la disjunción, la negación, la forma condicional y la forma bicondicional. Después de representar por medio de símbolos las proposiciones y de obtener la forma lógica de estas, se aplican las reglas de inferencia para obtener una conclusión, inferencia o deducción. Una tautología es una proposición que es cierta, independientemente de las combinaciones de certeza de las proposiciones que la componen. Las reglas de inferencia se pueden convertir en implicaciones tautológicas para obtener conclusiones verdaderas, independientemente del valor de verdad de las premisas. A las reglas de inferencia convertidas en implicaciones lógicas se les llaman reglas de implicación. Algunas reglas de implicación son: Modus Ponendo Ponens (PP): ~~~~ )(( QQPP →⎥⎦ ⎤ ⎢⎣ ⎡ →∧ Modus Tollendo Tollens (TT): ~~~~ )(( PQPQ ¬→ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ →∧¬ Silogismo hipotético (SH): )()()( ~~~~~~ RPRQQP →→⎥⎦ ⎤ ⎢⎣ ⎡ →∧→ Por ejemplo, para la proposición si (El café está muy frío & (Si el café esta muy frío entonces calentar mucho el café)). Al aplicar la regla de implicación (PP) se concluye que se debe calentar mucho el café. Para la proposición si (No calentar mucho el café & (Si el café esta muy frío entonces calentar mucho el café)). Al aplicar la regla de implicación (TT) se concluye que el café no está muy frío. En cada ejemplo se requiere definir una función de pertenencia para describir los conceptos imprecisos frío, muy frío y calentar mucho, para poder realizar el cálculo proposicional correspondiente, el cual consiste en obtener el grado de verdad de cada una de las conclusiones. 22 Figura 5.1 Esquema básico de control difuso de lazo cerrado. CAPITULO V INTRODUCCION A LA TEORIA DE CONTROL DIFUSO 5.1 Control difuso El control difuso es el resultado de aplicar los conceptos de la lógica difusa a la teoría del control. A diferencia del control tradicional que requiere de un modelo matemático para describir el proceso y poder gobernarlo, el control difuso requiere de un conjunto de reglas. Estas reglas se basan en el conocimiento y experiencia en un proceso dado. De esta manera se obtiene la descripción lingüística del sistema que sustituye al modelo matemático. El diagrama de bloques de un sistema de control difuso de lazo abierto y de lazo cerrado difieren de los tradicionales únicamente por el tipo de controlador que utilizan para comandar la planta o proceso. En la figura 5.1 se muestra un sistema de control difuso de lazo cerrado. El controlador difuso está formado básicamente por la base de conocimiento y la máquina de inferencia. La base de conocimiento contiene a los conjuntos difusos de entrada, las reglas y a los conjuntos difusos de salida. Básicamente contiene la información cualitativa del proceso, es decir contiene el modelo lingüístico del proceso. En la maquina de inferencia se infieren las decisiones del controlador difuso para cada conjunto de entradas. Debido a que este tipo de controlador realiza un proceso de inferencia, se le llama control inteligente. Consta de los siguientes procesos: difusión, evaluación de reglas y desdifusión. En la figura 5.2 se muestra el diagrama de bloques de la estructura de un controlador difuso. 23 Figura 5.2 Estructura de un controlador difuso. Figura 5.3 Algunas formas de funciones de pertenencia. 5.1.1 Difusión La difusión es un proceso matemático, mediante el cual se calcula el valor de pertenencia de un valor definido a un conjunto difuso, es decir, un valor definido es transformado en un valor difuso. Para definir los conjuntos difusos de entrada al controlador, se utilizan los siguientes métodos: intuición, inferencia, ordenación por rango, redes neuronales, algoritmos genéticos, etc. Para este proyecto se eligió el método de intuición, el cual consiste en definir el número y la forma de los conjuntos difusos de entrada con base al conocimiento que se tiene sobre la planta o proceso a controlar. Posteriormente se simula el sistema de control y se modifican los conjuntos de entrada hasta que se obtenga la respuesta desea de la planta. La función de pertenencia de un conjunto difuso puede tener varias formas, algunas de estas se muestran en la figura 5.3. 24 Como el sistema se va a implementar en un microcontrolador, se eligieron las funciones de pertenencia, mostradas en la figura 5.3, para representar los conjuntos difusos de entrada. Para los conjuntos difusos de salida, se eligieron funciones de pertenencia llamadas singletons. La ventaja de esto es que se requiere de un mínino de memoria para representar a los conjuntos de entrada y salida, y porque la ejecución de esta etapa del programa se realiza más rápido. 5.1.2 Evaluación de reglas La evaluación de reglas es un proceso que consiste en mapear los valores difusos de entrada con valores difusos de salida, utilizando proposiciones condicionales tales como: SI [antecedente], ENTONCES [consecuente] Estas proposiciones condicionales se utilizan para establecer el conjunto de reglas que debe cumplir el controlador, las cuales representan el modelo lingüístico del sistema. Al enunciado que está después de la palabra SI, se le llama antecedente y al que está después de la palabra ENTONCES, se le llama consecuente. Para un controlador de dos entradas y una salida, las reglas son de la forma IF x1 es j A1 AND x2 es k A2 THEN r B donde x1 representa un valor definido de la entrada 1 x2 representa un valor definido de la entrada 2 j A1 es el conjunto difuso j de la entrada 1 k A2 es el conjunto difuso k de la entrada 2 r B es el conjunto difuso de salida r Para evaluar las reglas se utiliza un método de implicación, en éste caso se utilizó el método de implicación mínimo o Mandani. 5.1.3 Desdifusión La desdifusión es un proceso que consiste en determinar un valor definido * z , que represente a los conjuntos difusos de salida. Para hacer la desdifusión, existen los siguientes métodos: El método del centroide consiste en determinar el punto de equilibrio, de la figura formada por los conjuntos difusos de salida, con la expresión ∫ ∫= dxx dxxx z )( )( * µ µ . El punto de equilibrio obtenido se utiliza para representar a los conjuntos difusos de salida. 25 El método de centro de gravedad (COG) se utiliza cuando los conjuntos difusos de salida se representan con singletons. El punto representativo de los conjuntos de salida se determina con la expresión ∑ ∑= )( )( * i ii z zz z µ µ . El método de altura máxima consiste en realizar un barrido de todos los elementos de los conjuntos difusos de salida, para localizar el elemento con mayor grado de pertenencia. El elemento obtenido se utiliza para representar los conjuntos difusos de salida. Por ejemplo, al realizar un barrido de todos los elementos de los conjuntos difusos de la figura 5.4, se determinó que el elemento con mayor grado de pertenencia es * z . El método de primero de los máximos se aplica a conjuntos difusos de salida con forma triangular. Consiste en realizar un barrido, de izquierda a derecha, de los elementos de los conjuntos difusos hasta obtener el primer elemento con valor de pertenencia máximo, el cual se utiliza para representar a los conjuntos difusos de salida. Por ejemplo, al realizar un barrido, de izquierda a derecha, de los elementos de los conjuntos difusos de salida de la figura 5.5, se determinó que el primer valor de pertenencia máximo se encuentra en el elemento * z . El método de último de los máximos se aplica también cuando los conjuntos difusos de salida tienen forma de figuras triangulares. Consiste en realizar un barrido, de izquierda a derecha, de los elementos de los conjuntos difusos hasta obtener el último valor de pertenencia máximo, el cual se utiliza para representar a los conjuntos difusos de salida. Por ejemplo, al realizar un barrido, de izquierda a derecha, de los elementos de los conjuntos difusos de salida de la figura 5.6, se determinó que el último valor de pertenencia máximo se encuentra en el elemento * z . Figura 5.6 Proceso de desdifusión con el método de último de los máximos. Figura 5.5 Proceso de desdifusión con el método de primero de los máximos. Figura 5.4 Proceso de desdifusión con el método de altura máxima. 26 El método de promedio pesado se aplica cuando los conjuntos difusos de salida están formados por figuras simétricas. Para aplicarlo se sigue los siguientes pasos: 1. Se identifican las figuras simétricas. 2. Se obtiene el punto ( 1z , ( )zµ ), localizado sobre el eje de simetría de cada figura 3. Se aplica la expresión ∑ ∑= )( )( * i ii z zz z µ µ Por ejemplo, en los conjuntos difusos de salida de la figura 5.7 se tienen dos figuras simétricas, las cuales se representan con los puntos ( 1z , ( )1zµ ) y ( 2z , ( )2zµ ) ubicados en los ejes de simetría de cada una. El valor representativo de los conjuntos difusos se calcula como ( ) ( ) ( ) ( )21 2211* zz zzzz z µµ µµ + + = Para aplicar el método de centro de sumas se sigue los siguientes pasos: 1. Se determina un punto representativo iz para cada conjunto difuso. 2. Se calcula el área iA de cada conjunto difuso. 3. Se obtiene un punto representativo de todos los conjuntos difusos con la expresión ∑ ∑ = == n i i n i ii A Az z 0 1 Por ejemplo, en la figura 5.8 se tiene que 1z y 2z representan los puntos representativos de los conjuntos difusos, donde 1A y 2A representan las áreas de cada conjunto, al aplicar el método de centro de sumas se obtiene que 21 2211* AA AzAz z + + = Figura 5.7 Proceso de desdifusión con el método de promedio pesado. Figura 5.8 Proceso de desdifusión con el método de centro de sumas. 27 El método de promedio de máximo consiste en realizar un barrido de todos los elementos de los conjuntos difusos para localizar el primero y el último elemento con mayor grado de pertenencia, representados como 1z y 2z respectivamente. El valor representativo * z de los conjuntos difusos se calcula con la expresión 2 21* zz z + = . Por ejemplo, para realizar un barrido de todos los elementos del conjunto difuso de la figura 5.9, se encontró el primer valor máximo de pertenencia en el elemento 1z y el último valor máximo de pertenencia en el elemento 2z . El valor representativo de los conjuntos se calcula como el valor promedio de estos dos elementos. Para aplicar el método de centro de área mayor, se siguen los siguientes pasos: 1. Se identifican los conjuntos convexos que forma la figura. 2. Se calcula el área de cada conjunto convexo. 3. Se comparan las áreas. 4. Se obtiene el centroide del área mayor. Por ejemplo, en la figura 5.10 se tienen los conjuntos convexos A y B cuyas áreas son 1A y 2A respectivamente. Si al comparar las áreas se obtiene que 1A > 2A , entonces el punto representativo de los conjuntos difusos se obtiene con el centroide del conjunto convexo de área mayor con la expresión: ∫ ∫= dzz dzzz z A AA 1 11* )( )( µ µ Figura 5.9 Proceso de desdifusión con el método de promedio de máximos. Figura 5.10 Proceso de desdifusión con el método de centro de área mayor. 28 5.2 Acciones básicas de control En un controlador difuso se pueden implementar directamente las acciones de control proporcional P y de proporcional derivativo PD. Las acciones de control P+I y PD+I se obtienen de manera indirecta agregando una etapa de integración externa al controlador. La acción de control proporcional modifica la rapidez de respuesta del sistema, ya que la salida del controlador es directamente proporcional a la señal de error. La acción de control integral elimina el error en estado estacionario. La acción de control derivativo tiene un efecto anticipativo, en el sentido de que modifica la señal de control de manera proporcional a la variación de la señal de error, de esta manera la acción de control derivativa se anticipa al error. 5.3 Controlador difuso PD En la figura 5.11 se muestra un controlador difuso PD, el cual consta de dos entradas (el error y la derivada del error) y n salidas. Figura 5.11 Controlador difuso PD. Para el caso particular de este proyecto se diseñó un controlador difuso PD de una salida como el que se muestra en la figura 5.12 Figura 5.12 Controlador difuso PD de una salida. La salida del controlador difuso PD de la figura 5.12 es de la forma , eDePAu ++= ... (1) donde u es la salida del controlador difuso PD A, P y D son valores constantes e es la señal de error , e es la derivada del error 29 5.4 Controlador difuso P+I Al conectar una etapa integradora a la salida del controlador difuso PD de la figura 5.12, se obtiene una acción de control proporcional más integral. En la figura 5.13 se muestra un controlador difuso P+I. Figura 5.13 Controlador difuso P+I. Con base en la figura 5.13 se tiene que ∫= dtuu tβ ... (2) Sustituyendo (1) en (2) ∫ ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ ++= dteDPeAu , β ∫++= edtPKeDKAtu 12 βββ ... (3) donde 1K es el factor de escala de la entrada error 2K es el factor de escala de la entrada rapidez de cambio del error La ecuación (3) muestra que es posible obtener una acción de control proporcional más integral, a partir de una acción de control proporcional derivativa difusa. 5.5 Controlador difuso PD+I La estructura propuesta para realizar un controlador difuso PD+I tiene conectados en paralelo los controladores difusos PD y P+I, como se muestra en la figura 5.14. Figura 5.14 Controlador difuso PD+I. 30 De la figura 5.15 se tiene que ∫+= dtuuu tt βα ... (4) Sustituyendo (1) en (4) ( ) ( )∫ +++++= dteDPeAeDPeAu && βα ( ) ∫+++++= edtPeDeDPAtAu βαβαβα , ... (5) A esta nueva estructura se le conoce como controlador difuso PD+I, donde βα y representan los pesos del control derivativo e integral respectivamente. Si el cociente β α es grande, implica que la acción de control es más derivativa que integral y si el cociente es pequeño, implica que la acción de control es más integral que derivativa. Si 00 => βα y se tiene una respuesta PD. Si 00 >= βα y se tiene una respuesta P+I. Si 00 >> βα y se tiene una respuesta PD+I. 31 CAPITULO VI COMPONENTES DEL SISTEMA DE CONTROL El sistema de control de nivel de líquido propuesto consta básicamente de un tanque, una bomba de agua, dos válvulas de control y un controlador difuso. El tanque es un cilindro de acrílico transparente de 55 cm de altura y 7 cm de radio y la bomba de agua, de 25 W, es de una lavadora. Las válvulas de control son dos llaves de agua de compuerta, iguales y de media pulgada, activadas electrónicamente. El controlador difuso se implementó en un microcontrolador, el cual se conecta a los siguientes módulos: sensor de nivel de líquido, teclado, etapa de potencia de la bomba de agua, un visualizador LCD y dos válvulas de control. En la figura 6.1 se muestran los componentes del sistema de controlador difuso. Figura 6.1 Componentes del sistema de control difuso. El microcontrolador utilizado para implementar el control es un PIC18F452 de Microchip. Para comunicarse con el microcontrolador se utiliza un teclado de cuatro botones, los cuales permiten introducir datos y reiniciar el controlador. El sensor de nivel de líquido está basado en un potenciómetro (PRESET) multivueltas. Para poder visualizar el nivel de referencia, el nivel medido y el error se utiliza un módulo LCD. La etapa de potencia está formada por un interruptor de estado sólido (TRIAC) que enciende o apaga la bomba de agua. Teclado Módulo LCD Válvulas Bomba de agua Sensor capacitivo de nivel de líquido Controlador difuso 32 6.1 Características del PIC18F452 Existe una gran variedad de microcontroladores en el mercado, los cuales difieren principalmente en tamaño, tipo de memoria, número de puertos E/S y módulos de control de periféricos. Actualmente la mayoría utiliza la arquitectura Harvard, la cual permite mayor velocidad de operación que la arquitectura tradicional de Von Neumann. El programa de control desarrollado contiene como máximo 1500 instrucciones y utiliza menos de 30 variables. Requiere de un módulo convertidor analógico a digital (CAD) para adquirir el nivel de líquido, la posición de la llave de llenado y la posición de la llave de vaciado. Se necesitan tres puertos de E/S para conectar el teclado, el display y las salidas de control de las llaves. Para implementar el control, se utilizó un PIC de la familia 18FXXX de Microchip, porque es un microcontrolador actual disponible y porque cumple con los requisitos necesarios para almacenar el programa. Características generales: • Memoria de programa lineal, direccionamiento de 32Kbytes. • Memoria de datos lineal, direccionamiento de 1.5Kbytes. • 32K de memoria Flash de programa (memoria ROM). • 1536 bytes de memoria RAM, 256 bytes de memoria de datos EEPROM. • Número de instrucciones16384, prioridad de niveles de interrupción. • Multiplicador de 8x8 bits. Características externas: • Puede suministrar o conectar a tierra 25mA. • Tres pines de interrupción externa y cuatro temporizadores. • Opción de reloj oscilador secundario, 2 módulos de captura/comparación, PWM. • Puerto Serial Síncrono Maestro(MSSP). • Modulo USART direccionable y puerto paralelo Esclavo, módulo(PSP). Características analógicas: • Un módulo CAD de 10 bit con 8 canales, detección de bajo voltaje programable(PLVD). Tecnología CMOS: • Voltaje de operación de 2V a 5.5V y bajo consumo de potencia. Otras características: • Cuatro puertos E/S llamados A, B, C y D, frecuencia máxima es de 40MHz. • Conjunto de 75 instrucciones. Se utilizó un cristal de 20MHz, con el cual se obtiene una frecuencia de trabajo de 5MHz (200ns por instrucción) y un tiempo de ejecución del programa de 5ms. Se ajustó el programa para que adquiriera 2 muestras de nivel de líquido por segundo. 33 6.2 Sensor de nivel de líquido El sensor de nivel de líquido es capacitivo. Está integrado por un circuito monoastable, un circuito astable y dos alambres de cobre. En la figura 6.2 se muestra el diagrama de bloques del sensor. Para construirlo, primero se midió la capacitancia mínima con el tanque vacío y después se midió la capacitancia máxima con el tanque lleno. Con estos datos se calcula la frecuencia de oscilación del circuito astable. Figura 6.2 Diagrama de bloques del sensor de nivel de líquido. El capacitor de prueba, formado por el tanque de agua y los alambres de cobre, se conecta a la segunda etapa del sensor de nivel, la cual esta formada por un circuito monoastable. De esta manera, el capacitor de prueba se carga a 1/3 de la tensión de alimentación cuando la señal de operación generada en la primera etapa del sensor está en estado alto y se descarga cuando está en estado bajo o cero. La señal generada en la segunda etapa del sensor, es una onda cuadrada periódica con ancho de pulso proporcional a la capacitancia del tanque. Esta señal es filtrada mediante un filtro pasobajas para obtener la componente de DC. Posteriormente se hace pasar la señal filtrada por un amplificador, el cual cumple la función de acondicionador de señal. 6.3 Teclado Para introducir el nivel de referencia, ajustar la posición de las llaves y reiniciar el microcontrolador se utiliza un teclado de cuatro botones, como el que se muestra en la figura 6.3. Figura 6.3 Teclado. La tecla (INC) y (DEC) se utilizan para el incremento y decremento del valor de referencia respectivamente. La tecla (SELEC) sirve para aceptar una opción, para aceptar un dato o para introducir un nuevo nivel de referencia. La tecla (CLR) se utiliza para reiniciar el control. INC DEC SELEC CLR 34 6.4 El módulo LCD Para poder ver las opciones y los datos se utiliza un módulo LCD, en vez de usar varios visualizadores de 7 segmentos. Los visualizadores requieren para su utilización de varios componentes externos, como registros de corrimiento y decodificadores, aumentando el consumo de energía, el número de conexiones externas y el tiempo para realizarlas. Los módulos LCD están compuestos básicamente por una pantalla de cristal líquido y un microcontrolador especializado. Este microcontrolador contiene los circuitos de control y memorias para desplegar el conjunto de carácteres ASCII, un conjunto de carácteres japoneses, griegos y algunos símbolos matemáticos, por medio de un circuito llama generador de caracteres. La pantalla de cristal líquido está conformada por una o dos líneas de 8, 16, 20, 24 ó 40 carácteres de 5 por 7 pixeles cada uno. Los módulos tienen una interfase paralela para ser manejada por un microcontrolador o por una PC. El display que se utiliza es un módulo Dot Matrix LCD, fabricado por Tianma Microelectronics. Es un módulo de visualización de dos líneas de 16 carácteres cada una. Aunque la disposición de las terminales en el LCD aún no está normalizada, los tipos de señal manejados por ellos son casi estándar, por lo que no hay gran diferencia entre cada uno de ellos. Puede variar uno que otro comando, pero no el cableado del módulo en lo que a señales se refiere. En la siguiente tabla se muestra la función de las patitas del módulo. Pin Símbolo E/S Función 1 Vss - 0V 2 Vdd - +5V ± 0.25V (Tensión positiva de alimentación) 3 Vo - Tensión negativa para el contraste de la pantalla 4 RS E Selector de Dato/Instrucción 5 R/W E Selector de Lectura/Escritura 6 E E Habilitación del módulo 7 DB0 E/S 8 DB1 E/S 9 DB2 E/S 10 DB3 E/S 11 DB4 E/S 12 DB5 E/S 13 DB6 E/S 14 DB7 E/S BUS DE DATOS Cada vez que se conecta el módulo a la alimentación, este debe configurarse y para esto se envían cuatro instrucciones: operación de 8 ó 4 líneas, activar el display, borrar la pantalla y desplazamiento del cursor a la izquierda o a la derecha. Para configurar el módulo LCD, se usó la siguiente secuencia de instrucciones: 38 interfase de 8 bits. 35 0C enciende al lcd y oculta el cursor. 01 limpia el dysplay y manda el cursor al inicio. 06 mover el cursor de izquierda a derecha sin desplazar el mensaje. En la figura 6.4 se muestra el módulo LCD conectado al microcontrolador. El puerto C se utiliza como bus de datos y tres patitas de E/S del puerto D se utilizan como bus de comandos. Figura 6.4 Conexión del modulo LCD al microcontrolador. Para configurar el display se utilizó el diagrama de flujo de la figura 6.5. Figura 6.5 Diagrama de flujo para configurar el módulo LCD. RS = 0 RW =0 E = 0 ESPERA 16ms MANDAR COMANDOS 0X38 0X0C 0X01 0X06 CONFIG_LCD REGRESA Rutina de tiempo de 16ms. Poner en cero las entradas de control. 4 RS 5 R/W 6 E 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 1 V ss 2 V c c 3 V e e PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 PC0 PC1 PC2 PC3 PC4 PC6 PC7 PC5 L C D P IC 1 8 F 4 5 2 Secuencia de instrucciones para configurar el módulo LCD. 36 6.5 Válvulas de control Para las válvulas de control se utilizaron dos llaves de compuerta de ½ pulgada, se consiguieron dos mecanismos reductores de velocidad iguales accionados, cada uno, por un motor de CD de imán permanente. Para acoplar los mecanismos con las llaves, se construyeron dos bases de soporte. El par de los motores se transmite a las llaves por medio de engranes. Para controlar la dirección de giro de los motores se diseñaron dos circuitos puente H. La posición de las llaves se obtuvo mediante dos sensores potenciométricos, los cuales se acoplaron a estas. En la Figura 6.6 se muestra una de las llaves de control construidas. Figura 6.6 Llave de control Cada llave de control tiene tres entradas y una salida. Las entradas son: la alimentación del motor de DC, la alimentación del sensor potenciométricos y la señal de control para el sentido de giro. La salida es la posición de la llave. Para controlar las llaves, se diseñó un programa que requiere como entrada el valor deseado de abertura y el valor de posición, medido con un convertidor analógico digital. El programa de control de posición recibe el valor de abertura deseado, el cual es un número entero entre 0 y 8. Cero corresponde a la llave cerrada y ocho corresponde a la llave completamente abierta. Este valor es comparado con el valor de abertura, obtenido mediante un convertidor analógico digital. Si el valor deseado es mayor que el valor medido, entonces el programa manda abrir la llave. Si el valor deseado es menor que el valor de posición medido, entonces el programa manda cerrar la llave. Si los valores son iguales, entonces se apagan los motores y las llaves quedan en el valor de abertura deseado. Estas rutinas se encargan de abrir o cerrar las llaves. UA representa el valor deseado para la llave de llenado y UB representa el valor deseado para la llave de descarga. En otras palabras, UA y UB representan la posición de las llaves que pide el controlador. La llave de carga se controla con la rutina Válv_A y la llave de descarga se controla con la rutina Válv_B. En los siguientes diagramas de flujo se muestran estas rutinas de control. 37 Diagrama de flujo para el control de la llave de carga. Diagrama de flujo para el control de la llave de descarga. Valv_A UA < A ABRIR LLAVE CERRAR LLAVE UA > A SI SI NO NO SIN CAMBIO REGRESA Valv_B UB < B ABRIR LLAVE CERRAR LLAVE UB > B SI SI NO NO SIN CAMBIO REGRESA AL CERRAR LA LLAVE AUMENTA EL VALOR DE A. AL ABRIR LA LLAVE DISMINUYE EL VALOR DE A. ¿EL VALOR PEDIDO UA ES MAYOR QUE EL VALOR LEIDO A? ¿EL VALOR PEDIDO UA ES MENOR QUE EL VALOR LEIDO A? ¿EL VALOR PEDIDO UB ES MAYOR QUE EL VALOR LEIDO B? AL CERRAR LA LLAVE AUMENTA EL VALOR DE A AL ABRIR LA LLAVE DISMINUYE EL VALOR DE A ¿EL VALOR PEDIDO UB ES MENOR QUE EL VALOR LEIDO B ? 38 donde A= Valor adquirido por el CAD de la posición de la llave Vaciar. B= Valor adquirido por el CAD de la posición de la llave Llenar. 6.5 Etapa de potencia para activar la bomba de agua Para activar la bomba de agua, se construyó un control de encendido/apagado basado en un TRIAC. Para manejar el TRIAC se utilizó un optotriac, el cual permite acoplar la etapa de control con la etapa de potencia. De esta manera se puede conmutar el TRIAC con una señal de 5V de CD. En el apéndice A se muestra el diagrama del circuito de encendido/apagado. 39 CAPITULO VII DISEÑO DEL CONTROLADOR DIFUSO PD+I Para construir el controlador difuso tipo PD+I, se diseñó primero un controlador difuso PD, el cual consta de dos variables de entrada y una de salida. En el diseño se utilizaron funciones de pertenencia triangulares, trapezoidales y singletons. Se definieron 5 conjuntos difusos para la entrada error, 3 conjuntos difusos para la entrada rapidez de cambio del error y 5 conjuntos difusos para la salida del control. También se definieron 15 reglas para relacionar a los conjuntos de entrada con los de salida. Para realizar la evaluación de reglas se utilizó el método de implicación max-min. La desdifusión se realizó con el método de centro de gravedad, llamado COG. Como se mencionó anteriormente, para obtener la acción de control PD+I, la salida del controlador difuso PD diseñado se conectó en paralelo con una etapa de integración, la cual se implementó en un programa. En este capitulo se muestra también una manera de codificar el algoritmo de control difuso en un microcontrolador PIC mediante el uso de tablas de datos. 7.1 Desarrollo En la figura 7.1 se muestra el diagrama del controlador difuso PD diseñado. Consta de dos entradas y una salida, las cuales son el error e, la rapidez de cambio del error . e y la acción de control tu respectivamente. Figura 7.1 Controlador difuso PD de dos entradas y una salidas. El error e se define y se calcula como MEDREF NvlNvle −= ... (5) donde REFNvl es el nivel de referencia MEDNvl es el nivel medido La rapidez de cambio del error se define y se calcula como ut ee e ANTACT − = . ...(6) 40 donde ACTe es el error actual ANTe es el error anterior ut indica unidad de tiempo Después de definir el número de variables de entrada y salida, se determinaron los rangos de variación o de operación de cada una. Para determinar el rango de operación de las variables de entrada, se analizaron dos casos: 1. El tanque está inicialmente vacío y se requiere llenarlo al máximo. 2. El tanque está inicialmente lleno y se requiere vaciarlo. Para el primer caso, las condiciones iniciales son: [ ] [ ]cmNvlycmNvl REFMED 400 == Sustituyendo las condiciones iniciales en la ecuación (5) se obtiene el valor máximo de la variable error. Debido a que inicialmente el tanque esta vacío, el error actual y el error anterior serán: [ ] [ ]cmeycme ANTACT 040 == Sustituyendo estos valores en la ecuación (6) se obtiene el valor máximo de la variable rapidez del error. ⎥⎦ ⎤ ⎢⎣ ⎡=−= ut cm eee minANTmaxACTmax 40)()( . Para el segundo caso, las condiciones iniciales son: [ ] [ ] ⎥⎦ ⎤ ⎢⎣ ⎡=== ut cm eycmNvlycmNvl ANTREFMED 0040 Sustituyendo estos valores en las ecuaciones (5) y (6) se obtiene ⎥⎦ ⎤ ⎢⎣ ⎡−=−= ut cm eee ANTACT 40 . Los resultados del análisis anterior son: [ ]cmNvlNvle MEDREF 40=−= [ ]cmNvlNvle MEDREF 40−=−= 41 El rango de variación del error e es de –40 a 40 [ ]cm . El rango de variación de la rapidez del error e’ es de -40 a 40 ⎥⎦ ⎤ ⎢⎣ ⎡ ut cm . Las llaves de control son iguales. Para que funcionen requieren un valor de posición entre 0 y 8. Cuando una llave tiene el valor de posición 0, esta se encuentra completamente cerrada y cuando tiene el valor de posición 8, esta se encuentra completamente abierta. Estas dos llaves, para descarga y llenado del tanque, son controladas por la salida del controlador, la cual tiene un rango de operación de –8 a 8. El conjunto de números [-8,0] corresponde a la llave de descarga. El conjunto de números [0,8] corresponde a la llave de llenado. Después de haber sido definidos los rangos de operación de las entradas y de la salida, se divide al universo de discurso de cada variable con funciones de membresia. La figura 7.2 muestra un diagrama de bloques del controlador difuso, en donde las variables de entrada y salida son divididas en conjuntos difusos. Figura 7.2 Diagrama de bloques del controlador difuso PD de una salida. No existe una regla que diga cuantos conjuntos difusos se deben poner por cada variable ni la forma que deben tener. En la práctica, el número de conjuntos difusos y la forma de estos, quedan definidos cuando se obtiene la respuesta deseada del sistema de control. Se utilizaron cinco conjuntos difusos para la entrada ERROR y cinco conjuntos difusos para la entrada RAPIDEZ. En la figura 7.3 se muestran las entradas con sus respectivos conjuntos y etiquetas. Se eligió la forma triangular y trapezoidal para los conjuntos de entrada ya que requieren poca memoria para ser programados en un microcontrolador. Para el universo de discurso de salida, se utilizaron cinco funciones de membresia, llamadas singletons. Esta forma de función de membresia, al igual que las anteriores, también utiliza poca memoria para su codificación y además permite que el algoritmo de control difuso se ejecute más rápido. 42 En la figura 7.4 se muestran la salida del controlador con sus conjuntos difusos y etiquetas. FIGURA 7.3 Conjuntos difusos de la entrada ERROR y RAPIDEZ de cambio del error. Figura 7.4. Conjuntos difusos de salida 43 Donde EGN Error Grande Negativo EMN Error Mediano Negativo EZ Error Cero (Z) EM Error Mediano Positivo EGP Error Grande Positivo RN Rapidez de cambio Negativa RZ Rapidez de cambio Cero (Z) RP Rapidez de cambio Positivo Para relacionar los conjuntos difusos de entrada con los conjuntos difusos de salida se definieron 15 reglas. 1. IF el Error es EGN AND la rapidez es RN THEN ACCION es AMB. 2. IF el Error es EGN AND la rapidez es RZ THEN ACCION es AMB. 3. IF el Error es EGN AND la rapidez es RP THEN ACCION es AMB. 4. IF el Error es EMN AND la rapidez es RN THEN ACCION es APB. 5. IF el Error es EMN AND la rapidez es RZ THEN ACCION es APB. 6. IF el Error es EMN AND la rapidez es RP THEN ACCION es APB. 7. IF el Error es EZ AND la rapidez es RN THEN ACCION es CERRAR. 8. IF el Error es EZ AND la rapidez es RZ THEN ACCION es CERRAR 9. IF el Error es EZ AND la rapidez es RP THEN ACCION es CERRAR 10. IF el Error es EMP AND la rapidez es RN THEN ACCION es APA. 11. IF el Error es EMP AND la rapidez es RZ THEN ACCION es APA. 12. IF el Error es EMP AND la rapidez es RP THEN ACCION es APA. 13. IF el Error es EGP AND la rapidez es RN THEN ACCION es AMA. 14. IF el Error es EGP AND la rapidez es RZ THEN ACCION es AMA. 15. IF el Error es EGP AND la rapidez es RP THEN ACCION es AMA. Para evaluar las reglas se utilizó el método de composición max-min. Después del proceso de evaluación de reglas se realiza el proceso de desdifusión. Para esto se escogió el método de centro de gravedad llamado COG. AMB Abre Mucho la llave B APA Abre Poco la llave B CERRAR Cerrar ambas llaves APA Abre Poco la llave A AMA Abre Mucho la llave A 44 7.2 Codificación del algoritmo de control difuso En esta sección se explica la manera en que fue codificado el algoritmo de control difuso en un microcontrolador. Para representar a un conjunto difuso con forma triangular y trapezoidal se requieren, como mínimo, dos puntos y dos pendientes. Estas figuras son de interés porque son las funciones de pertenencia que se utilizaron para los conjuntos difusos de entrada. La posición de los puntos y de sus respectivas pendientes se muestra en la figura 7.5. Figura 7.5. Representación con dos puntos y dos pendientes. Hay entonces cuatro datos por conjunto. Todos los conjuntos de entrada se almacenan en la tabla de puntos y pendientes llamada T_PYP. De acuerdo a la figura 7.5, el valor de pertenencia a un conjunto difuso de un valor definido x se calcula de la siguiente manera: SEG1: Si x < P1 0=µ SEG2: Si P1< x < P2 ( ) FFHnuncaSPx >−= ,1*1µ SEG3: Si x 2P≥ ( ) 2*2 SPxFFH −−=µ Para asegurar que el valor definido x se encuentre dentro del universo de discurso de una entrada, se hace coincidir el rango de operación de esta con el rango de variación de la palabra utilizada para codificarla. Por ejemplo, si la palabra es de 8 bits entonces se tienen 25628 = valores para representar el rango de variación. De esta manera, el universo de discurso de una variable queda codificado desde 00H a FFH en la memoria de un microcontrolador de 8 bits. Entonces, las funciones de pertenencia se representan dentro del intervalo [00H, FFH]. En las siguientes secciones se muestran los algoritmos de difusión, evaluación de reglas y desdifusión, así como la codificación de los datos en la memoria ROM del microcontrolador usando diferentes tablas. 45 7.2.1 Rutina de difusión En esta etapa se utilizan tres apuntadores para ubicar los elementos de las tablas. APX se asigna a la tabla de entradas y conjuntos difusos de entrada, llamada T_EYCJS, la cual contiene las direcciones de las entradas y el número de conjuntos de cada una. Como se muestra en la figura 7.6, la tabla T_EYCJS tiene cuatro datos: la dirección de la entrada ERROR, el número de conjuntos de entrada, la dirección de entrada RAPIDEZ y el número de conjuntos de esta. El apuntador APY apunta a la tabla de valores difusos por conjunto llamada T_VDXCJ, la cual contiene las direcciones de todos los conjuntos difusos de entrada. El apuntador APZ es asignado a la tabla de puntos y pendientes llamada T_PYP, que contiene todos los puntos y las pendientes de las entradas. En la figura 7.7 se muestra la tabla T_VDXCJ. De la dirección 60H a la dirección 64H están los conjuntos difusos de la entrada ERROR y de la dirección 68H a la dirección 6CH están los conjuntos difusos de la entrada RAPIDEZ. En la tabla T_PYP se almacenan los valores de los puntos y las pendientes de los conjuntos difusos de las entradas. El orden en que se codifican estos datos se muestra en la figura 7.8. y 7.9. APX T_EYCJS 28H E1 (ERROR) 05H CJS de E1 29H E2 (RAPIDEZ) 05H CJS de E2 APY T_VDXCJ 60H EGN 61H EMN 62H EZ 63H EMP 64H EGP 68H RN 69H RZ 6AH RP Figura 7.6 Tabla de entradas y conjuntos difusos por entrada. Figura 7.6 Tabla de conjuntos difusos de entrada. 46 Las tablas T_EYCJS y T_VDXCJ se almacenan en la memoria RAM. La tabla de puntos y pendientes T_PYP se almacena en la memoria ROM. Como se muestra en la figura 7.6, la tabla T_EYCJS tiene cuatro datos: la dirección de la entrada ERROR, el número de conjuntos de difusos de esta entrada, la dirección de la entrada RAPIDEZ y el número de conjuntos difusos de esta. En la tabla T_PYP se tienen 8 conjuntos de los cuales los primeros 5 corresponden a la entrada ERROR y los 3 restantes a la entrada RAPIDEZ. En la figura 7.10 se muestra el diagrama de flujo de la rutina de difusión. T_PYP 00H FFH 1AH 03H 1AH 03H 73H 14H . . . 80H 14H 8DH 03H 8DH 3H FFH 00H P1 S1 Conjunto 0 P2 S2 . . . . . . P1 S1 Conjunto 7 P2 S2 Figura 7.8 Codificación de puntos y pendientes. APZ Figura 7.9 Tabla de puntos y pendientes T_PYP. 47 Figura 7.10 Diagrama de flujo de la rutina difusión. Diagrama de flujo de rutina de difusión: DIFUSION APX = 0 APY = 0 APZ = 0 LIM_ MEM T_EYCJS APX X_CRISP W APX + 1 T_EYCJS APX N_CJS APX PROCESO APY + 1 N_CJS - 1 N_CJS – 1 = 0 APX + 1 APX = 4 SI REGRESA NO SI NO La rutina secundaria LIMP_MEM limpia los registros de la tabla T_VDXCJ Por medio del APX se ubica un dato de la tabla T_EYCJS. El dato es cargado a WREG y por medio de este se envía al registro X_CRISP. APX apunta al siguiente dato de la tabla T_EYCJS. El dato es cargado a WREG y por medio de este se envía al registro N_CJS. Cuando el registro N_CJS = 0, el proceso de difusión se ha realizado para todos los conjuntos de la entrada actual. Cuando APX = 4, el proceso de difusión se ha realizado para tos los conjuntos y la rutina termina. 48 T_AUX Como se muestra en el diagrama de flujo de la figura 7.10, la rutina de difusión comienza poniendo en cero todos los registros de la tabla T_VDXCJ. Después pone en cero los apuntadores APX, APY y APZ. Se coloca el apuntador APX en el primer elemento de la tabla T_EYCJS, el cual contiene la dirección de la entrada ERROR. El programa lee el contenido de la dirección (lee el valor x de entrada) y lo guarda en el registro X_CRISP, después incrementa el apuntador, lee el número de conjuntos de la entrada actual y lo guarda en el registro N_CJS. Después de obtener el valor de la entrada y el número de conjuntos, el programa llama a la rutina proceso, mostrada en el diagrama de flujo de la figura 7.12a, que es la que realiza el proceso de difusión. Cuando la rutina proceso hizo la difusión para todos los conjuntos de la entrada actual, el programa incrementa el apuntador APX, el cual apunta a la dirección de la siguiente entrada y se repite la secuencia de acciones explicadas anteriormente. Cuando APX = 04 termina la rutina de difusión y el programa pasa a la rutina de evaluación de reglas. En la rutina proceso se utiliza una tabla auxiliar llamada T_AUX para almacenar los puntos, las pendientes y las diferencias DIF1 y DIF2 del conjunto difuso actual, con el cual se realiza el proceso de difusión. Inicialmente APZ apunta al primer dato de la tabla T_ PYP, el cual es 00H, y el apuntador de direccionamiento directo del microcontrolador FSR0L apunta al primer elemento de la tabla T_AUX mostrada en la figura 7.11. El programa manda el contenido de APZ a la dirección de memoria P1 mediante el apuntador FSR0L, después incrementa los apuntadores APZ y FSR0L. Cuando APZ=1 y FSR0L=3EH, el segundo dato de la tabla T_PYP es enviado a la dirección 3EH mediante el apuntador FSR0L, es decir, el programa envía el contenido del apuntador APZ a la dirección de memoria apuntada con el apuntador FSR0L. Se incrementa APZ y FSR0L. Este proceso se repite hasta que se han enviado a la memoria RAM los datos del conjunto difuso i-ésimo. Donde i = 0, 1, 2,..., 9. Dirección Nombre 3DH P1 3EH S1 3FH P2 40H S2 41H DIF1 42H DIF2 FSR0L Figura 7.11 Tabla auxiliar. 49 Figura 7.12a Diagrama de flujo de la rutina PROCESO. Cuando los datos del conjunto i-ésimo están completos, el programa calcula las diferencias DIF1 y DIF2. Si DIF1<0 entonces la entrada pertenece al segmento 1 del conjunto. Si DIF1>0 entonces se calcula DIF2. Si DIF2<0 entonces la entrada pertenece al segmento 2. Si DIF2>0 entonces la entrada pertenece al segmento 3. Como se muestra en la figura 7.12a, en cualquier caso, el valor de pertenencia de la entrada al conjunto i es enviado al registro llamado MU_X y este, a su vez, es almacenado en la dirección indicada en la tabla T_VDXCJ mediante el apuntador APY y FSROL. Antes de salir de la rutina proceso, el programa incrementa el apuntador APY. FSR0L 3DH T_PYP APZ FSR0L &APZ APZ + 1 FSR0L + 1 DIF1 X_CRISP DIF2 X_CRISP DIF1 = DIF1 - P1 SEG1 APY + 1 DIF2 = DIF2- P2 DIF2 < 0 APZ = 41H NO NO DIF1 < 0 SEG3 T_VDXCJ APY SEG2 SI NO APY MU_X REGRESA SI SI PROCESO 2 2 3 50 Figura 7.12b Diagrama de flujo de las rutinas secundarias de la rutina PROCESO. Los diagramas de flujo de las subrrutina SEG1, SEG2 y SEG3 se muestran en la figura 7.12b. MU_X 0 MU_X = DIF1 * S1 DIF2 = DIF2 * S2 MU_X = FF – DIF2 SEG1 SEG2 REGRESA DIF2 > FFH MU_X 0 NO SI SEG3 3 3 51 7.2.2 Rutina de evaluación de reglas Antes de empezar a evaluar las reglas, el programa limpia la tabla de salidas mostrada en la figura 7.13. Para esto son utilizados APX y la subrrutina CLR_MEM. Cuando el programa termina de limpiar el bloque de memoria se inicia la evaluación. Los apuntadores APX y APY se colocan en la tabla T_VDXCJ y el apuntador APZ se coloca en la tabla T_REGLAS, como se muestra en la figura 7.14. Se pone en cero al apuntador de consecuentes APZ=0. Se ubica APX en el primer conjunto de la entrada E1 y a APY en el primer conjunto de la entrada E2. El programa manda el contenido de los apuntadores APX y APY a los registros NUM1 y NUM2 respectivamente. Llama a la rutina Max-min, después coloca el dato menor en el registro NUM1 y el mayor en el registro NUM2. Manda el contenido del apuntador APZ al registro NUM2 y nuevamente llama a la rutina Max-min. El dato mayor es enviado a la tabla T_SALIDAS por medio de APZ. T_REGLAS 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 T_VDXCJ 60H EGN 61H EMN 62H EZ 63H EMP 64H EGP 68H RN 69H RZ 6AH RP APY APX APZ T_SALIDAS 80 AMB 81 APB 82 CERRAR 83 APA 84 AMA Figura 7.13 Tabla de salidas. APX Figura 7.14 Tabla de valores difusos por conjunto y tabla de reglas respectivamente. 52 El programa incrementa el registro REG_INT y APZ. Mientras el registro REG_INT sea menor que 1 se repite el proceso de evaluación. En la figura 7.15 se muestra el diagrama de flujo del proceso de evaluación de reglas. Cuando REG_INT=1, se mantiene APX constante y se incrementa APY para que se ubique en el siguiente conjunto de la entrada E2.Se pone REG_INT en cero y se repite nuevamente el proceso de evaluación hasta que APY = 6D. Cuando se han evaluado todas las reglas que relacionan a un conjunto de la entrada E1 con todos los conjuntos de la entrada E2, se incrementa APX, para que el apuntador se ubique en el siguiente conjunto de la entrada E1. El programa pone nuevamente APY en la dirección 68H (en el primer conjunto de la entrada E2), y se repite el proceso de evaluación hasta que APX=65H. Cuando esto sucede, todas las reglas han sido evaluadas. Figura 7.15 Diagrama de flujo para eveluación de reglas. APX = 60H APZ = 00H REG_INT=0 APX = 0 CLR_MEM NUM1 &APX NUM2 &APY APX + 1 T_REGLAS APZ NUM2 &APZ APZ NUM2 ORDENA APX = 65H REG INT=1 NO NO APY = 6DH ORDENA APZ + 1 REG_INT +1 SI NO APY + 1 REG_INT = 0 REGRESA SI REGLAS APY = 68H SI 2 2 53 7.2.3 Rutina de desdifusión Para realizar el proceso de desdifusión se utilizó el método COG (centro de gravedad), ya que es el método que más se aproxima al resultado exacto definido por el método del centroide y porque el sistema se programó en un microcontrolador. Como se muestra en la figura 7.16, se utilizaron dos apuntadores para manejar los datos de la tabla posición de las salidas (T_PSLIDAS) y de la tabla de salidas (T_SLIDAS). Al inicio de la rutina de desdifusión, mostrada en la figura 7.17, los apuntadores APX y APY se igualan a cero, después el programa llama a la subrrutina COG y el valor definido calculado es almacenado en el registro Z1. Figura 7.17 Diagrama de flujo de la rutina de desdifusión. En la subrrutina COM se calcula el valor definido para la salida correspondiente, en donde el símbolo & se usa para indicar el contenido de una dirección de memoria. Se inicia poniendo en cero el registro CONT, NUM1 y NUM2. Después se multiplica la posición del T_PSLIDAS 00H 03H 08H 0DH 10H T_SALIDAS 80 AMVB 81 AMVB 82 CERRAR 83 APVA 84 AMVA COG APX = 0 APY = 0 REGRESA Z1 RESULT DESDIF APX APY Figura 7.16 Tabla de posición de los singletons de las salidas (T_PSLIDAS) y tabla de direcciones de las salidas (T_SALIDAS). 54 singleton (&APX), con el valor de pertenencia al conjunto(&APY). El resultado se suma con el registro NUM2. El contenido de APY es sumado con el registro NUM1. Se incrementa APX, APY y CONT. Si CONT < 03H, el programa sigue acumulando en el registro NUM2 los productos y en NUM1 la suma de los valores de pertenencia. Si el registro CONT = 03H, entonces se realiza la división de NUM2 con NUM1, el resultado es almacenado en el registro RESULT y termina la rutina secundaria COG. En la figura 7.18 se muestra el diagrama de flujo de la rutina COG. Figura 7.18 Diagrama de flujo de la rutina COG. CONT = 0 NUM1 = 0 NUM2 = 0 NO CONT=05H PRODL &APX * &APY NUM2 PRODL+ NUM2 NUM1 NUM1 + &APX SI REGRESA CONT = CONT + 1 APX = APX + 1 APY = APY + 1 RESULT NUM2 / NUM1 COG 55 CAPITULO VIII SIMULACIONES EN MATLAB MATLAB es un software que permite hacer cálculos matemáticos, analizar datos, desarrollar algoritmos, hacer simulaciones y modelado. También permite desarrollar interfaces gráficas para mostrar resultados. Para simular el controlador difuso diseñado, se utilizó la caja de herramientas de lógica difusa de MATLAB. Después de construir físicamente el sistema de nivel de líquido y el controlador difuso, se hicieron varias pruebas utilizando diferente número de conjuntos por entrada para el controlador. Al observar el comportamiento del sistema, se determinó que éste puede ser manejado con los conjuntos de entrada y las reglas que se muestran a continuación. 8.1 Simulación del controlador difuso en MATLAB El controlador difuso PD propuesto para controlar el sistema de nivel de líquido consta de dos entradas y una salida. La entrada ERROR contiene cinco conjuntos difusos y la entrada RAPIDEZ contiene tres conjuntos difusos. En la figura 8.1 se muestran los conjuntos de entrada del controlador Figura 8.1 Conjuntos de entrada. 56 La salida ACCION se refiere a la posición de abertura de las dos llaves de control y está formada por 5 singletons, los cuales se muestran en la figura 8.2. Figura 8.2 Conjuntos de salida. Se tienen 15 reglas de control que relacionan a los conjuntos de entrada con los conjuntos de salida. Las reglas mostradas dan un comportamiento lineal al controlador. En la figura 8.3 se muestran las reglas utilizadas con sus respectivas etiquetas. Figura 8.3 Reglas de control. 57 Con estas reglas y los conjuntos de entrada/salida se obtiene la superficie de control mostrada en la figura8.4. Figura 8.4 Superficie de control del controlador difuso diseñado para el sistema de nivel de líquido. 58 8.2 Función de transferencia de la planta Para poder simular la respuesta del sistema de control de nivel de líquido con un controlador analógico, se requiere la función de transferencia del tanque, de las válvulas y del controlador. El modelo matemático, que se desarrolló para representar el sistema de nivel, toma en cuenta las siguientes características: 1. La bomba tarda hasta 1s en suministrar el flujo de llenado. 2. Con la llave de carga totalmente abierta, el tanque vacío tarda en llenarse (a 40 cm de altura) aproximadamente 37s. 3. Con la llave de descarga totalmente abierta, el tanque lleno tarda en vaciarse aproximadamente 17s. 4. Cuando una de las dos válvulas se abre, la otra se cierra. El tanque es un cilindro de acrílico transparente con las siguientes características: [ ]cmr 7= [ ]cmH 40= [ ]22 9.153 cmrA ==π [ ]36156)40)(9.153( cmHAV === En la figura 8.5 se muestra el tanque utilizado en el sistema de nivel, donde iq representa el flujo de entrada y 0q representa el flujo de salida. Figura 8.5 Tanque utilizado en el sistema de nivel de líquido. Al aplicar la ley de conservación de la materia al tanque de la figura 8.7 se obtiene: q Adt dh 1 = ... (1) 59 si q < 0 entonces 0qq = si q = 0 entonces 0=q si q >0 entonces iqq = La ecuación (1) establece que cuando q>0, hay flujo de entrada al tanque y el cambio del nivel de líquido con respecto al tiempo es positivo. Cundo q=0, no hay flujo de entrada ni de salida en el tanque y por lo tanto, el nivel de líquido en el tanque permanece constante. Cuando q<0, sale agua del tanque y la variación del nivel de líquido en el tanque con respecto al tiempo es negativo. Al aplicar la transformada de Laplace a la ecuación (1), suponiendo condiciones iniciales iguales a cero, se obtiene la función de tranferencia del tanque: sAsQ sH 11 )( )( = donde A corresponde al área de la base. En la figura 8.6 se muestra el diagrama de bloque de la función de transferencia del tanque. Figura 8.6 Función de transferencia del tanque. El flujo de entrada iq , con respecto a la posición θ de la válvula de llenado, se definió como: θAi Kq = ... (2) y el flujo de salida 0q , con respecto a la posición θ de la llave de descarga, se definió como: θBKq =0 ... (3) donde AK y BK son valores constantes. Al aplicar la transformada de Laplace a las ecuaciónes (2) y (3), suponiendo condiciones iniciales iguales a cero, se obtienen las funciónes de tranferencia del flujo de entrada y de salida con respecto a la posición de las válvulas de carga y descarga respectivamente. A i K s sQ = )( )( θ BK s sQ = )( )(0 θ 60 En la figura 8.7 se muestra el diagrama de bloques de la función de transferencia del flujo de entrada y salida, respectivamente. (a) (b) Figura 8.7 Función de tranferencia del flujo de entrada (a), función de tansferencia de flujo de salida (b). Estos dos bloques son reemplazados por el bloque de la figura 8.8, el cual contiene a las dos funciones de tranferencia del flujo de entrada y de salida. Si la posición de entrada al bloque equivalente es positiva, se utiliza la función de tranferencia del bloque (a). Si la posición de entrada al bloque equivalente es negativa, se utiliza la función de transferencia del bloque (b). Si la posición de entrada al bloque equivalente es cero, la salida de este es cero, ya que ambas válvulas permanecen cerradas. Figura 8.8 Bloque equivalente para el flujo de entrada y de salida con respecto a la posición de las llaves. La función de tranferencia de las válvulas se obtuvo de la siguiente manera. Como la posición de las válvulas depende de un motor de DC de imán permanente, la función de tranferencia de la posición del rotor mθ , con respecto a la diferencia de potencial Va aplicada en sus terminales esta dada por )1()( )( + = ss K sV s m m a m τ θ donde mK es la constante de rapidez del motor con carga incluida y mτ es la constante de tiempo del motor con carga incluida. En la figura 8.9 se muestra el diagrama de bloque de la función de tranferencia de la posición del rotor con respecto a la diferencia de potencial aplicada en sus terminales. Figura 8.9 Función de transferencia de la posición del rotor de un motor de DC, de imán permanente, con respecto a la diferencia de potencial aplicada. 61 La función de transferencia del controlador PID analógico se define como s KsKK sE s IDP c 1 )( )( ++= θ donde )(scθ es la salida del controlador, que en este caso es la posición de la llave, )(sE es el error entre el nivel de referencia y el nivel medido, PK es la ganancia proporcional, DK es la ganancia derivativa y IK es la ganancia integral. En la figura 8.10 se muestra el diagrama de bloque del controlador PID analógico. Figura 8.10 Controlador PID analógico. Para simular la respuesta del sistema de control de nivel de líquido con un controlador difuso en MATLAB, se utilizó el bloque Fuzzy Logic Controller, el cual se cargó con la simulación de la sección 8.1. En la figura 8.11 se muestra el diagrama de bloque del controlador difuso PD utilizado para la simulación, el cual tiene como entradas el error y la derivada del error y como salida el valor de posición de las válvulas de control. Figura 8.11 Diagrama de bloque del controlador difuso PD simulado en la sección 8.1. Figura 8.12 Diagrama de bloques de las valvulas y el tanque. La función de transferencia de las válvulas y el tanque se obtiene de la figura 8.12, de donde: )( / )( )( 2 mm mf KssTs AKK s sH ++ = θ 62 8.3 Simulación del sistema de control de nivel de líquido en SIMULINK Para comparar la respuesta del sistema de nivel de líquido con un controlador PD+I difuso con la respuesta del sistema de nivel de líquido obtenida con un controlador PID analógico, se realizó la simulación simultanea del sistema con ambos controles. En la figura 8.12 se muestra el diagrama de bloques que se utilizó para la simulación. Figura 8.12 Diagrama de bloques en SIMULINK del sistema de control de nivel de líquido con un controlador difuso PD+I y con un controlador analógico PID. El diagrama de bloques de la parte superior corresponde al sistema de control difuso. Está formado por los subsistemas control difuso PD+I, válvulas, flujo y por el bloque tanque. El subsistema controlador difuso PD+I está formado por los bloques mostrados en la figura 8.13. El bloque llamado MATLAB Function contiene un programa que convierte un número fraccionario en entero. Por lo tanto, las entradas y la salida del controlador son números enteros. Figura 8.13 Diagrama de bloques del controlador difuso PD+I. 63 El subsistema válvulas está formado por los bloques mostrados en la figura 8.14. Figura 8.14 Subsistema válvulas. El bloque Va tiene como entrada un numero entero que representa la diferencia entre la posición pedida por el controlador y la posición de la llave. Si la diferencia es positiva, se cierra la válvula de descarga y se activa el motor para abrir la válvula de llenado. Si la diferencia es negativa, se cierra la válvula de llenado, cambia la polaridad de Va y el motor se activa para abrir la válvula de descarga. Si el error es cero, ambas válvulas permanecen cerradas. El subsistema llamado flujo está formado por los bloques mostrados en la figura 8.15. Figura 8.15 Subsistema flujo El bloque fi/fo recibe como entrada la posición de abertura de una llave. Si la posición es positiva el flujo de salida es positivo. Si la posición es negativa el flujo de salida es negativo. Si la posición es cero el flujo de ambas llaves es cero. El bloque saturación limita los valores máximos del flujo de entrada y salida. El bloque retardo se utilizó para dar a la simulación el efecto de inercia del flujo, ya que el cambio de este requiere de un corto tiempo para alcanzar su estado estable. El bloque tanque tiene como entrada un valor de flujo y como salida nivel de líquido. Si el flujo es positivo, el nivel de líquido aumenta. Si el flujo es negativo, el nivel de líquido disminuye. Si el flujo es cero, el nivel de líquido permanece sin cambio. En la figura 8.16 se muestra el diagrama de bloque del tanque de agua. Se puede observar que el tanque se comporta como una etapa integradora. Por lo tanto, ya no se requiere de otra etapa de integración para eliminar el error en estado estable de la respuesta del sistema. Figura 8.16 Diagrama de bloque del tanque de agua. 64 8.4 EL controlador difuso contra el controlador analógico Para poder hacer una comparación teórica de la respuesta del sistema de nivel de líquido, con el controlador difuso PD+I diseñado y un controlador PID analógico, se pidió una respuesta rápida y sin sobrepaso (críticamente amortiguada), para ambos sistemas de control. El controlador PID analógico que se utilizó en la simulación, se afinó con el método de límite de estabilidad de Ziegler-Nichols, el cual consiste en controlar el sistema únicamente con un controlador proporcional. El valor de la ganancia proporcional pK se incrementa lentamente desde cero hasta un valor de ganancia crítica crK , para el cual la respuesta escalón de la planta presenta oscilaciones sostenidas de periodo crP . Los parámetros de pK , iT y dT del controlador PID se determinan con base en la tabla 8.1. La función de transferencia del controlador PID se puede escribir como ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ ++= sT sT KsG d i PC 1 1)( donde pK es la ganancia proporcional dT es el tiempo derivativo iT es el tiempo de integral Controlador pK iT dT Proporcional P 0.5 crK Infinito 0 Proporcional integral PI 0.45 crK crP /1.2 0 Proporcional integral derivativo PID 0.6 crK crP /2 crP /8 Con base en la tabla 8.1, para un controlador PID se tiene que: crp KK 6.0= cri PT 5.0= crd PT 125.0= Para aplicar el método de límite de estabilidad, se aplicó al sistema de control de nivel de líquido, de la figura 8.17, un escalón de 20 unidades. Al aumentar el valor de pK , desde Tabla 8.1 Valores de los parámetros pK , dT y iT para el método de Ziegler-Nichols de límite de estabilidad. 65 cero, se encontró que para pK = 3.4, la respuesta del sistema tiene oscilaciones sostenidas. En la figura 8.18 se muestra la respuesta del sistema cuando pK =3.4. Los resultados obtenidos fueron: 4.3=crK Kcr = 3.4 [ ]sPcr 6337100 =−= 2)4.3)(6.0( ==pK [ ]sTi 5.31)63)(5.0( == [ ]sTd 9.7)63)(125.0( == 2=PK 063.0 5.31 2 === i p I T K K 8.15)9.7)(2( === dpD TKK En la figura 8.19 se muestra la respuesta del sistema de nivel para una entrada escalón de 20 unidades, con el controlador PID diseñado, mediante el método de limite de estabilidad. Figura 8.17 Sistema de lazo cerrado con un controlador proporcional. Figura 8.18 Para pK =3.4, se obtiene una respuesta con oscilaciones sostenidas. 66 Para que la respuesta del sistema de nivel, al escalón de veinte unidades, fuera críticamente amortiguada, se modificaron los parámetros del controlador PID, obtenidos anteriormente, hasta obtener la respuesta requerida. Los parámetros del controlador que cumplen con la especificación son: 1=PK 4.3=DK 0=IK El controlador difuso PD+I cumple con la especificación cuando kp = kd = 1, Gd = 1.3 y Gi= 0. En las figuras 8.20 y 8.21 se muestra la respuesta del sistema de control difuso para cuatro valores de ganancia derivativa Gd, donde kp es el factor de escala proporcional kd es el factor de escala derivativo Gd es la ganancia derivativa Gi es la ganancia integral Figura 8.19 Respuesta escalón del sistema de nivel de líquido con el controlador PID diseñado mediante el método de limite de estabilidad. Figura 8. 20 Respuesta del sistema de control difuso para un escalón de 20 unidades. 67 En la figura 8.22 se muestran los resultados de la comparación de la respuesta del sistema de nivel de líquido con ambos controladores. La línea negra representa la respuesta del sistema de control difuso y la línea gris representa la respuesta del sistema de control analógico. Figura 8.22 Gráficas teóricas del proceso de llenado (a) y del proceso de vaciado (b). Las gráficas teóricas de carga y descarga de la figura 8.22, muestran que el comportamiento del controlador analógico es de la siguiente manera: Cuando la referencia es menor que 20 unidades, la respuesta del sistema es subamortiguada. El amortiguamiento aumenta cuando el valor de referencia disminuye. Por lo tanto, cuando la referencia va disminuyendo la respuesta se hace más lenta. Cuando la referencia es mayor de 20 unidades, la respuesta del sistema comienza a tener un sobrepaso, que crece cuando el valor de referencia aumenta. Cuando el valor de referencia es de 20 unidades, la respuesta del sistema es aproximadamente igual a la del sistema de control difuso. Con base en los resultados obtenidos en las gráficas de la figura 8.22, se concluye, que con el controlador difuso se obtiene una respuesta más rápida y sin sobrepaso. Figura 8. 21 Respuesta del sistema de control difuso para un escalón de 20 a 0 unidades. (a) (b) 68 Kp = 1 Kd = 1 Gd = 1 Gi = 0 Kp = 1 Kd = 1 Gd = 2 Gi = 0 CAPITULO IX RESULTADOS Y CONCLUSIONES 9.1 Resultados Mediante la simulación, se determinó que la mejor respuesta del sistema de nivel de líquido, con el controlador difuso PD+I diseñado, se obtiene cuando Kp=Kd=1, Gi=0 y Gd=1. En la figura 9.1 se muestra la respuesta del sistema para una entrada escalón de 20 unidades. Figura 9.1 Respuesta del sistema de nivel de líquido para un escalón de 20 unidades con el controlador difuso diseñado, cuando Kp=Kd=Gd=1 y Gi=0. Cuando el valor de la ganancia proporcional derivativa es Gd=2, la respuesta del sistema presenta un sobrepaso y algunas oscilaciones de amplitud decreciente, ver figura 9.2. Figura 9.2 Respuesta del sistema de nivel de líquido para un escalón de 20 unidades con el controlador difuso diseñado, cuando Kp=Kd=1, Gd=2 y Gi=0. Si la ganancia proporcional derivativa Gd >2, la respuesta del sistema presenta un mayor sobrepaso y el número de oscilaciones comienza a incrementarse. 69 En las figuras 9.1 y 9.2 se puede observar también que con el controlador difuso PD+I, la respuesta del sistema se aproxima al valor de referencia. Se tiene un error máximo en estado estable de 9.0± unidades. Este error se debe principalmente a la representación digital de las variables de entrada/salida y al error que resulta en las operaciones matemáticas con números enteros en el microcontrolador. Para el controlador difuso PD+I diseñado, si el valor de la ganancia integral Gi es diferente de cero, se presenta un gran sobrepaso y oscilaciones de gran amplitud. Esta inestabilidad se debe a que en el sistema de nivel de líquido, el tanque de agua se comporta de manera natural como una etapa integradora. Por lo tanto, al agregar una segunda etapa integradora externa, se tienen dos etapas de integración, haciendo que la respuesta del sistema de nivel de líquido sea inestable. En la figura 9.3 se muestra el efecto adverso de la etapa integradora del controlador difuso PD+I en la respuesta del sistema, cuando el valor de la ganancia integral Gi=0.1 y Kp=Kd=Gd=1. Figura 9.3 Respuesta del sistema de nivel de líquido para un escalón de 20 unidades con el controlador difuso diseñado cuando Kp=Kd=1, Gd=1 y Gi=0.1. . 70 Figura 9.4 Gráficas experimentales del proceso de llenado. Kp = 1 Kd = 1 Gd = 1 Gi = 0 Kp = 1 Kd = 1 Gd = 1 Gi = 0 Figura 9.5 Gráficas experimentales del proceso de descarga. Se diseñó e implementó con éxito el controlador difuso PD+I para el sistema de nivel de líquido propuesto en este proyecto de tesis. Las constantes de tiempo de las llaves causaron inestabilidad en el sistema de nivel al producir retardos de tiempo. Esta inestabilidad se solucionó sintonizando el controlador hasta obtener la respuesta deseada del sistema. Para mostrar el funcionamiento del controlador difuso PD+I durante el proceso de llenado, se tomaron lecturas de nivel y tiempo para cuatro valores de referencia. Los resultados se muestran en la figura 9.4, se observa cómo el controlador difuso modifica la rapidez de llenado del tanque. Para mostrar el funcionamiento del controlador difuso durante el proceso de descarga, se vació el tanque a partir de un nivel de referencia dado y se anotaron los valores de nivel contra tiempo. Los resultados se muestran en la figura 9.2. La respuesta escalón del sistema con el controlador difuso tiene una precisión de 9.0± cm con respecto al valor de referencia. Cuando el valor de Kd=Kp=1, Gi=0 y Gd >1 la respuesta escalón del sistema presenta un sobrepaso y oscilaciones de magnitud decrecientes. Para una entrada escalón, cualquier valor de Gi diferente de cero en el controlador difuso, causa oscilaciones de gran amplitud en la respuesta del sistema. 71 Observaciones: En las gráficas del proceso de vaciado del tanque, figura 9.2, se puede observar que cuando el nivel de líquido inicial disminuye, el tiempo de descarga aumenta. Este efecto se debe a que el flujo depende del nivel. Por o tanto, si el nivel es pequeño entonces el flujo también lo es y el tiempo de descarga aumenta. Las llaves de control tardan mucho tiempo en abrirse o cerrarse. Esto limita la velocidad de respuesta del sistema. Soluciones: Para mejorar notablemente la rapidez de descarga se debe conectar el tanque con una bomba de desagüe. Para incrementar la velocidad de respuesta de las llaves se puede acoplar directamente el motor al engrane de la llave y controlar la velocidad de éste con un circuito PWM. 9.2 Conclusiones Los resultados teóricos obtenidos con la simulación de ambos controladores (difuso y analógico), muestran que con el controlador difuso propuesto para el sistema de nivel de líquido, se obtiene la respuesta más rápida y sin sobrepaso. En cambio, con el controlador PID analógico simulado se obtienen respuestas favorables para valores de referencia dentro del intervalo de 15 a 25 unidades. Para valores de referencia por debajo de 15 unidades presenta una respuesta sobreamortiguada, lo cual disminuye la rapidez de respuesta del sistema. Para valores de referencia mayores de 25 unidades, la respuesta comienza a presentar un sobrepaso que crece cuando el valor de referencia aumenta. Es posible incrementar la exactitud del control al utilizar la PC como controlador difuso. Por lo tanto a mayor exactitud, mayor costo. Si la exactitud no es tan importante y el sistema de interés tiene un modelo matemático no lineal o no se dispone del modelo matemático, entonces es preferible utilizar un controlador difuso. Con las modificaciones mencionadas a las llaves de control para que respondan más rápido y con dos bombas de mayor potencia para llenar y vaciar el tanque, se puede mejorar notablemente la respuesta del sistema de nivel. Si se agrega al sistema de control de nivel de líquido diseñado un sistema para adquirir datos para el flujo de entrada y de salida, y otro para el nivel de líquido, éste sistema podría utilizarse para realizar algunas prácticas de control difuso. Por ultimo, la teoría de control difuso proporciona una herramienta más para resolver un problema de control. Esta herramienta tiene ventajas y desventajas con respecto a las tradicionales. Se puede aplicar la teoría de control difuso para resolver la mayoría de los problemas de control existentes pero no siempre será la opción más adecuada. 72 APENDICES APENDICE A Datos experimentales APENDICE B Ejemplo de sintonización APENDICE C Programa de control difuso APENDICE D Diagramas APENDICE E Hojas de datos 73 APENDICE A Datos experimentales Para determinar el comportamiento de la posición de las llaves con respecto al tiempo, se midió el tiempo que tardan en abrirse y cerrarse, desde una posición dada. Los resultados se muestran en la tabla A1 y A2. En la figura 1 se muestra la gráfica de la posición de la llave con respecto al tiempo, para el proceso abrir llave. En la figura 2 se muestra la gráfica de la posición de la llave con respecto al tiempo, para el proceso cerrar llave. Resultados: Las llaves tardan en abrirse o cerrarse aproximadamente 18s. Requieren 2s para cambiar de una posición a otra contigua y la rapidez de cambio de la posición con respecto al tiempo es 0.44 posiciones por segundo. Tabla A1 Datos de posición y tiempo para el proceso abrir llave. Tiempo [s] Posición 0 0 2 1 4 2 6 3 8 4 11 5 14 6 16 7 18 8 Tabla A2 Datos de posición y tiempo para el proceso cerrar llave. Figura 1 Gráfica de posición contra tiempo para el proceso abrir llave. Figura 2 Gráfica de posición contra tiempo para el proceso cerrar llave. CERRAR Tiempo [s] Posición 0 8 2 7 4 6 7 5 9 4 11 3 13 2 15 1 17 0 74 Para determinar el comportamiento del nivel del líquido en el tanque durante el proceso de descarga o vaciado, se realizaron mediciones de tiempo y nivel para diferentes posiciones de abertura de la llave de descarga. Los resultados se muestran en las siguientes tablas: Posición = 1 Posición = 2 Posición = 3 Posición = 4 Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] 0 45 0 45 0 45 0 45 57 40 23 40 7 40 3 40 105 35 45 35 15 35 8 35 170 30 67 30 21 30 11 30 240 25 84 25 29 25 16 25 316 20 126 20 35 20 21 20 406 15 146 15 43 15 25 15 507 10 193 10 51 10 30 10 630 5 247 5 59 5 35 5 812 0 310 0 67 0 40 0 Posición = 5 Posición = 6 Posición = 7 Posición = 8 Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] 0 45 0 45 0 45 0 45 4 40 2 40 2 40 2 40 7 35 5 35 4 35 3 35 10 30 7 30 6 30 5 30 13 25 10 25 9 25 7 25 17 20 13 20 11 20 9 20 21 15 16 15 14 15 11 15 24 10 19 10 17 10 13 10 28 5 22 5 20 5 15 5 32 0 25 0 22 0 17 0 En figura 3 se muestran las graficas de los resultados obtenidos durante el proceso de descarga del tanque. Figura 3 Proceso de descarga. 75 Para determinar el comportamiento del nivel del líquido en el tanque durante el proceso de carga o llenado, se realizaron mediciones de tiempo y nivel para diferentes posiciones de abertura de la llave de carga. Los resultados se muestran en las siguientes tablas Posición = 1 Posición = 2 Posición = 3 Posición = 4 Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] x 0 0 0 0 0 0 0 x 5 9 5 8 5 7 5 x 10 17 10 14 10 12 10 x 15 23 15 20 15 18 15 x 20 33 20 26 20 24 20 x 25 41 25 31 25 29 25 x 30 48 30 38 30 35 30 x 35 57 35 45 35 39 35 x 40 65 40 51 40 45 40 x 45 72 45 56 45 51 45 Posición = 5 Posición = 6 Posición = 7 Posición = 8 Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] Tiempo [s] Nivel [cm] 0 0 0 0 0 0 0 0 8 5 4 5 5 5 6 5 13 10 9 10 9 10 11 10 18 15 14 15 15 15 15 15 24 20 19 20 19 20 20 20 29 25 24 25 24 25 25 25 34 30 28 30 19 30 29 30 39 35 33 35 34 35 35 35 45 40 38 40 39 40 39 40 50 45 43 45 43 45 44 45 En la figura 4 se muestran las graficas del comportamiento del nivel de líquido con respecto al tiempo, cuando el tanque está siendo llenado. Figura 4 Proceso de llenado. 76 Para determinar la relación entre el flujo y el nivel del líquido, durante el proceso de descarga, se hizo el siguiente experimento: se ubica la llave de descarga en una posición definida y se le pone una restricción para que no permita el flujo de agua. Después se llena el tanque hasta un nivel de agua deseado. Luego se retira la restricción de la llave para que llene un recipiente de capacidad conocida. Para mantener el nivel de líquido constante se agrega agua al tanque. Se mide el tiempo que tarda el recipiente en llenarse. Por último se realiza el cociente de la capacidad con respecto al tiempo para obtener el flujo con respecto al nivel y la posición de la llave. Los resultados obtenidos se muestran en las siguientes tablas: Posición = 1 Posición = 2 Posición = 3 Posición = 4 Nivel [cm] Flujo [lit/s] Nivel [cm] Flujo [lit/s] Nivel [cm] Flujo [lit/s] Nivel [cm] Flujo [lit/s] 45 0.04 45 0.08 45 0.12 45 0.18 40 0.04 40 0.08 40 0.12 40 0.18 35 0.04 35 0.08 35 0.12 35 0.16 30 0.04 30 0.07 30 0.11 30 0.15 25 0.3 25 0.07 25 0.11 25 0.15 20 0.02 20 0.06 20 0.1 20 0.12 15 0.02 15 0.06 15 0.08 15 0.1 10 0.02 10 0.04 10 0.06 10 0.09 5 0.01 5 0.02 5 0.04 5 0.06 0 0 0 45 0 0 0 0 Posición = 5 Posición = 6 Posición = 7 Posición = 8 Nivel [cm] Flujo [lit/s] Nivel [cm] Flujo [lit/s] Nivel [cm] Flujo [lit/s] Nivel [cm] Flujo [lit/s] 45 0.2 45 0.23 45 0.28 45 0.3 40 0.2 40 0.23 40 0.27 40 0.3 35 0.19 35 0.23 35 0.25 35 0.27 30 0.17 30 0.2 30 0.23 30 0.25 25 0.17 25 0.19 25 0.2 25 0.23 20 0.16 20 0.17 20 0.19 20 0.2 15 0.12 15 0.14 15 0.15 15 0.17 10 0.1 10 0.12 10 0.13 10 0.14 5 0.07 5 0.09 5 0.11 5 0.11 0 0 0 0 0 0 0 0 En la figura 5, se muestran las características de la variación del flujo con respecto al nivel del líquido en el tanque y la posición. Consta de 8 gráficas, las cuales corresponden a las diferentes posiciones de abertura de la llave. Estas gráficas se obtuvieron al medir el flujo de descarga, manteniendo el nivel constante. 77 Resultados: La bomba tarda 1s para poder suministrar el flujo de llenado. Las llaves tardan en abrirse o cerrarse aproximadamente 18s La rapidez de cambio de la posición de las llaves con respecto al tiempo es 0.44 posiciones por segundo. Con la llave de carga totalmente abierta, el tanque vacío tarda en llenarse hasta 40cm aproximadamente 37s. Con la llave de descarga totalmente abierta, el tanque lleno tarda en vaciarse aproximadamente 17s. El flujo máximo de carga es de 0.16lit/s El flujo máximo de descarga es de 0.3 lit/s. Figura 5 Variación del flujo con respecto al nivel de líquido en el tanque, durante el proceso de descarga, manteniendo la posición de la llave constante. 78 APENDICE B Ejemplo de sintonización Para controlar al sistema de nivel de líquido, se utilizó un controlador proporcional. Se aplicó al sistema de control un escalón unitario y se incrementó el valor de la ganancia proporcional pK desde cero hasta un valor de ganancia crítica crK , para el cual la respuesta escalón de la planta presenta oscilaciones sostenidas de periodo crP . En la figura B1, se muestra la respuesta oscilatoria del sistema. crK =4.07 crP = 78-63=14 Los parámetros obtenidos para el controlador a partir de los valores crK y crP son: 2=PK 32.0=IK 6.4=DK En la figura B2 se muestra la respuesta escalón del sistema, con los parámetros del controlador obtenidos. Figura B1 Respuesta oscilatoria del sistema cuando crp KK = . Figura B2 Respuesta escalón del sistema con los parámetros obtenidos del controlador PID con el método de limite de estabilidad. 79 En la figura B3 se muestra la respuesta del sistema para un escalón de 40 unidades. Se observa que el sistema se sale de control. En la figura B4 se muestra la respuesta del sistema cuando se iguala a cero la acción de control integral. Al aumentar el valor de la ganancia derivativa KD de 4.6 a 22, manteniendo la ganancia proporcional constante, disminuyen las oscilaciones y el sobrepaso. En la figura B5 se muestra la respuesta del sistema cuando P=2, KD = 22 y KI=0 para el controlador PID. Figura B3 Respuesta al escalón, de 40 unidades, del sistema con los parámetros obtenidos con el método de limite de estabilidad. Figura B4 Respuesta al escalón, de 40 unidades, del sistema sin la acción de control integral. Figura B5 Respuesta al escalón, de 40 unidades, del sistema de nivel, con los parámetros 2=PK , 0=IK y 22=DK para el controlador PID. 80 El controlador analógico PID cumple con la especificación cuando P=2, KD = 22 y KI=0. El controlador difuso PD+I cumple con la especificación cuando kp = kd = 1, Gd = 1.3 y Gi=0, donde kp es el factor de escala proporcional Kd es el factor de escala derivativo Gd es la ganancia derivativa Gi es la ganancia integral Las figuras B6 y B7 muestran la comparación entre los sistemas de control, analógico y difuso, para algunos valores de referencia. La línea negra corresponde al sistema con el controlador difuso y la línea gris corresponde al sistema con el controlador analógico. Figura B6 Respuesta del sistema de nivel de liquido, durante el proceso de llenado, con los controladores PID analógico y difuso diseñados. Figura B7 Respuesta del sistema de nivel de liquido, durante el proceso de descarga, con los controladores PID analógico y difuso diseñados. 81 APENDICE C Programa de control difuso ;******************************************************************************************************* ; TABLAS DE DATOS ;******************************************************************************************************* ;TABLA DE ENTRADAS Y CJS POR ENTRADA ORG 0X800 ; T_EYCJS MULLW 0X02 ; MOVF PRODL,0 ; ADDWF PCL ; DT 3DH ; E1 (ERR) DT 05H ; No. CJS DT 3EH ; E2 (DERR) DT 03H ; No. CJS ;******************************************************************************************************* ;TABLA DE PUNTOS Y PENDIENTES T_PYP MULLW 0X02 MOVF PRODL,0 ADDWF PCL DT 0X00,0XFF,0X30,0X05 ; EGN DT 0X30,0X05,0X60,0X07 ; EMN DT 0X60,0X07,0X81,0X0E ; EZ DT 0X81,0X0E,0X9F,0X08 ; EMP DT 0X9F,0X08,0XFF,0XFF ; EGP DT 0X00,0XFF,0X72,0X11 ; RN DT 0X72,0X11,0X81,0X11 ; RZ DT 0X81,0X11,0XFF,0XFF ; RP ;******************************************************************************************************* ;TABLA DE CJS DIFUSOS DE ENTRADA T_VDXCJ MULLW 0X02 MOVF PRODL,0 ADDWF PCL DT 0X060 ; EGN DT 0X061 ; EMN DT 0X062 ; EZ DT 0X063 ; EMP DT 0X064 ; EGP DT 0X068 ; RN DT 0X069 ; RZ DT 0X06A ; RP ;******************************************************************************************************* ;POSICIONES DE LAS SALIDAS DIFUSAS T_SLIDAS MULLW 0X02 MOVF PRODL,0 ADDWF PCL ; VALVULAS DT 0X80 ; AM_B DT 0X81 ; AP_B DT 0X82 ; CERRAR DT 0X83 ; AP_A DT 0X84 ; AM_A ;******************************************************************************************************* ; POSICION DE LOS SINGLETONS DE SALIDA T_POSLIDAS MULLW 0X02 MOVF PRODL,0 ADDWF PCL DT 0X08; DT 0X04; DT 0X00; DT 0X04; DT 0X08; ;******************************************************************************************************* 82 ;******************************************************************************************************* ; TABLA DE REGLAS ORG 0X900 T_REGLAS MULLW 0X02 MOVF PRODL,0 ADDWF PCL DT 0X80 DT 0X80 DT 0X80 DT 0X81 DT 0X81 DT 0X81 DT 0X81 DT 0X82 DT 0X83 DT 0X83 DT 0X83 DT 0X83 DT 0X84 DT 0X84 DT 0X84 ;******************************************************************************************************* ; RUTINA DE CONTROL DIFUSO FuzKernel MOVLW 0X08 MOVWF PCLATH ; PCLATH = 6. CALL DIFUSION ; LLAMA A LARUTINA DIFUSION. CALL REGLAS ; LLAMA A LA RUTINA REGLAS. CALL DESDIF ; LLAMA A LA RUTINA DESIFUSION. CALL LLAVES ; LLAMA A LA RUTINA LLAVES. CALL INTERGRA ; LLAMA A LA RUTINA DE INTEGRACION. CLRF PCLATH ; PCLATH = 0. RETURN ;******************************************************************************************************* ; RUTINA DE DIFUSION DIFUSION CLRF APX ; LIMPIA REGISTRO APX. CLRM1 MOVF APX,W ; W APX. CALL T_VDXCJ ; LLAMA A LA TABLA T_VDXCJ. MOVWF FSR0L ; FSROL W. CLRF INDF0 ; LIMPIA REGISTRO. INCF APX ; APX APX+1. MOVLW 0X08 ;TOTAL DE CJS. DE ENTRADA = 8. CPFSEQ APX ; APX=8? GOTO CLRM1 ; NO, VE A LA ETIQUETA CLRM1. ; SI, SIGUE PROGRAMA. CLRF APX ; LIMPIA REGISTRO APX. CLRF APY ; LIMPIA REGISTRO APY. CLRF APZ ; LIMPIA REGISTRO APZ. ITERA4 MOVF APX,W ; APX, APUNTA A LA TABLA T_EYCJS. CALL T_EYCJS ; APX APUNTA A UNA ENTRADA MOVWF FSR0L ; Y LA COLOCA EN EL REGF X_CRISP. MOVFF INDF0,X_CRISP ; X_CRISP INDF0. INCF APX ; APX=APX+1 (APX APUNTA AL NUMERO DE CONJUNTOS MOVF APX,W ; DE LA ENTRADA Y COLOCA EL VALOR EN CALL T_EYCJS ; EN EL REGF N_CJS). MOVWF N_CJS ; N_CJS W ATRAS1 CALL PROCESO ; LLAMA AL PROCESO DE DIFUSION. INCF APY ; APY APY + 1. DECFSZ N_CJS ; N_CJS - 1 = 0? GOTO ATRAS1 ; NO, VE A LA ETIQUETA ATRAS1. INCF APX ; SI, APX APX+1. MOVLW 0X04 ; W 0x04 CPFSEQ APX ; SE HIZO LA DIFUSION PARA TODAS LAS ENTRADAS? GOTO ITERA4 ; NO, VE A ITERA4. RETURN ; SI, REGESA. PROCESO MOVLW 0X3F ; W 0x3F. MOVWF FSR0L ; AP. FSR0L <-- DIRECCION DEL PUNTO P1. LDPYP MOVF APZ,W ; POR MEDIO DEL APZ ACCEDEMOS A UN DATO CALL T_PYP ; DE LA TABLA T_PYP, EL DATO ES GUARDADO MOVWF INDF0 ; EN LA DIRECCION QUE INDICA EL AP. FER0L. INCF FSR0L ; FSR0L = FSR0L+1. INCF APZ ; APZ = APZ+1. MOVLW 0X43 ; W 0x43 CPFSEQ FSR0L ; ¿FSR0L=43H? O ¿SE HAN LEIDO LOS PTOS Y PEND DE UN CJT? 83 GOTO LDPYP ; NO, REGRESA A LDPYP. SI, SALTA. MOVF P1,W ; SI, W <-- P1. MOVFF X_CRISP,DIF1 ; DIF1 <-- X_CRISP. MOVFF X_CRISP,DIF2 ; DIF2 <-- X_CRISP. SUBWF DIF1,F ; DIF1 = DIF1-W (X_CRISP-P1). BTFSS STATUS,C ; HAY ACARREO? BTFSC DIF1,7 ; ¿ DIF1<0 ? NO, SALTA. GOTO SEG1 ; SI, VE A SEG1. MOVF P2,W ; W <-- P2. SUBWF DIF2,F ; DIF2 = DIF2-W (X_CRISP-P2). BTFSS STATUS,C ; BTFSC DIF2,7 ; ¿ DIF2<0 ? NO, SALTA. GOTO SEG2 ; SI, VE A LA ETIQUETA SEG2. GOTO SEG3 ; VE A LA ETIQUETA SEG3. UNION MOVF APY,W ; W <-- APY. CALL T_VDXCJ ; LLAMA A LA TABLA T_VDXCJ. MOVWF FSR0L ; FSR0 <-- W. MOVFF MU_X,INDF0 ; MU_X <-- INDF0. RETURN SEG1 CLRF MU_X ; MU_X = 0. GOTO UNION ; VE A ETIQUETA UNION. SEG2 MOVF S1,W ; W <-- S1. MULWF DIF1,1 ; DIF1*S1. MOVF PRODH,F ; PRODH PRODH. BTFSC PRODL,7 ; ¿ PRODL > 7F ? SI, SALTA BTFSS STATUS,Z ; NO, PROD_H=0? GOTO SEG2A ; NO, VE A SEG2A MOVFF PRODL,MU_X ; SI, MU_X <-- PRODL. GOTO UNION ; VE A UNION SEG2A MOVLW 0XFF ; W 0XFF. MOVWF MU_X ; MU_X = W. GOTO UNION ; VE A ETIQUETA UNION. SEG3 MOVF S2,W ; W <-- S2 MULWF DIF2,1 ; DIF2*W MOVF PRODH,F ; PRODH PRODH. BTFSS STATUS,Z ; PROD_H = 0 ? SI, SALTA INSTARUCCION. GOTO CLRMU_X ; NO, VE A CLRMU_X MOVLW 0XFF ; W FF MOVWF MU_X ; MU_X = 7F MOVF PRODL,W ; W <-- PRODL SUBWF MU_X,F ; MU_X = MU_X-W GOTO UNION ; VE A UNION CLRMU_X CLRF MU_X ; MU_X=0 GOTO UNION ; VE A UNION ;AL TERMINAR LA RUTINA DE DIFUSION SE PUEDEN REUSAR LOS APUNTADORES ;APX, APY, Y APZ. ;******************************************************************************************************* ; RUTINA DE EVALUACION DE REGLAS REGLAS CLRF APZ ; APZ = 0 CLRF REG_INT ; REG_INT=0 CLRF APX ; APX = 0 ;----------------------------------------------------------------------------------------------------------------------------------------------------------- LIMPIAR MOVF APX,W ; W APX. CALL T_SLIDAS ; LLAMA A LA TABLA T_SLIDAS. MOVWF FSR0L ; FSROL W. CLRF INDF0 ; LIMPIAR REGISTRO. INCF APX ; APX + 1. MOVLW 0X05 ;<-- PONER No. TOT. DE CONJUNTOS DE SALIDA. CPFSEQ APX ; APX = 0? GOTO LIMPIAR ; NO, VE A ETIQUETA LIMPIAR. ;----------------------------------------------------------------------------------------------------------------------------------------------------------- ; APZ INDICA EL NO DE REGLA MOVLW 0X09 MOVWF PCLATH ; PCLATH = 09 MOVLW 0X60 ; APX APUNTA A LOS CONJUNTOS DIFUSOS DE MOVWF APX ; LA ENTRADA E1 EN LA TABLA (T_VDXCJ). REGLAM MOVLW 0X68 ; APY APUNTA A LOS CONJUNTOS DIFUSOS DE MOVWF APY ; LA ENTRADA E2 EN LA TABLA (T_VDXCJ). REGLA MOVFF APX,FSR0L ; MANDA EL VALOR DIFUSO DEL CJTOi DE MOVFF INDF0,NUM1_L ; LA ENTRADA E1 AL REGF. NUM1. MOVFF APY,FSR0L ; MANDA EL VALOR DIFUSO DEL CJTOj DE MOVFF INDF0,NUM2_L ; LA ENTRADA E2 AL REGF NUM2. CALL ORDENA ; EL VALOR MENOR LO PONE EN NUM1. MOVF APZ,W ; APZ APUNTA A LA TABLA DE REGLAS Q CONTIENE LOS 84 ; CONJUNTOS DIFUSOS DE SALIDA. CALL T_REGLAS ; APZ APUNTA AL CONJUNTO DE SALIDA n MOVWF FSR0L ; Y SU VALOR LO PONE EN EL MOVFF INDF0,NUM2_L ; REGF NUM2. CALL ORDENA ; DEJA EL VALOR MAXIMO EN EL REGF NUM2 MOVFF NUM2_L,INDF0 ; Y LO COPIA EN EL CONJUNTO DE SALIDA n. INCF APZ,F ; APZ+1 APUNTA A LA SIGUIENTE REGLA. INCF REG_INT ; REG_INT ES EL CONTADOR DE CONSECUENTES (2) MOVLW 0X01 ; ESTE VALOR ES 2 CPFSEQ REG_INT ; REG_INT=2 ? NO, REGRESA A REGLA GOTO REGLA ; SI, SALTA SIGUIENTE INSRUCCION. CLRF REG_INT ; REG_INT=0 INCF APY ; APY + 1 MOVLW 0X6B ; LOCALIDAD FINAL DE AP_ED2 + 1 CPFSEQ APY ; APY=6D ? NO, VE A REGLA. GOTO REGLA ; SI, SALTA SIGUIENTE INSRUCCION. INCF APX ; APX + 1 MOVLW 0X65 ; LOCALIDAD FINAL DE AP_ED1 + 1 CPFSEQ APX ; APX=65 ? NO, VE A REGLAM. GOTO REGLAM ; SI, SALTA SIGUIENTE INSRUCCION. RETURN ; REGRESA ;----------------------------------------------------------------------------------------------------------------------------------------------------------- ;COLOCA NUMERO MAYOR EN NUM2 Y EL MENOR EN NUM1 ORDENA MOVF NUM1_L,W ; CARGA W <-- NUM1 SUBWF NUM2_L,W ; W = NUM2 - NUM1 BTFSC STATUS,C ; C=1 SI NUM2 > NUM1 RETURN ; REGRESA SI Num2 > Num1 MOVFF NUM1_L,REG_AUX ; EN OTRO CASO, ALMACENA NUM1 EN REG_AUX MOVFF NUM2_L,NUM1_L ; COPIA NUM2 EN NUM1 MOVFF REG_AUX,NUM2_L ; COPIA REG_AUX EN NUM2 RETURN ; REGRESA. ;******************************************************************************************************* ;CALCULO DE LA Z* ;RUTINA DE DESDIFUSION, EN LA CUAL SE OBTIENE ;UN VALOR CRISP EN EL REG. Z1 ;******************************************************************************************************* DESDIF MOVLW 0X08 MOVWF PCLATH ; PCLATH = 8. Z_CRISP CLRF APX ; LIMPIA APX. CLRF NUM2_L ; LIMPIA NUM2_L. CLRF NUM2_H ; LIMPIA NUM2_H. CLRF NUM1_L ; LIMPIA NUM1_L. CLRF RNUM ; LIMPIA RNUM. CLRF RDEN ; LIMPIA RDEN. BBAKI MOVF APX,W ; C.I: APX=0, (0 <= APX <= 5). CALL T_SLIDAS ; LLAMA A LA TBLA T_SLIDAS.. MOVWF FSR0L ; FSROL W. MOVFF INDF0,RNUM ; RNUM <-- u(Zi). ;----------------------------------------------------------------------------------------------------------------------------------------------------------- MOVF INDF0,W ; NUM1_L = NUM1_L+u(Zi) ADDWF NUM1_L,F ; BTFSC STATUS,C ; SETF NUM1_L ; NUM1= FF ;----------------------------------------------------------------------------------------------------------------------------------------------------------- MOVF APX,W ; AP. A LA TABLA DE SINGLETONS. CALL T_POSLIDAS ; LLAMA A LA TABLA T_POSLIDAS. MULWF RNUM ; RNUM=Zi*u(Zi). MOVF PRODL,W ; W PRODL. ADDWF NUM2_L ; NUM2_L = NUM2_L + Zi*u(Zi). BTFSC STATUS,C ; HAY ACARREO EN LA SUMA? INCF NUM2_H ; SI, ENTONCES, NUM2_H + 1. MOVF PRODH,W ; W PRODH. ADDWF NUM2_H ; NUM2_H NUM2_H +W INCF APX ; APX = APX +1 MOVLW 0X03 ; APX = 05H? CPFSEQ APX ; SI, SALTA. GOTO BBAKI ; NO, VE A BAKI. CALL DIVIDE ; LLAMA A LA RUTINA DIVIDE. MOVLW 0XFF ; W FF. CPFSLT RESULT_L ; RESULT_L < W. CLRF RESULT_L ; NO, LIMPIA REGISTRO RESULT_L. MOVFF RESULT_L,Z1 ; SI, Z1 RESULT_L. ;******************************************************************************************************* MOVLW 0X7E ; XORWF ERR,W ; BTFSC STATUS,Z ; W=7E? GOTO NOICPO1 ; SI, VE A ETIQUETA NOICPO1. 85 ; NO, CONTINUA PROGRAMA. ATLAS1 MOVFF Z1,NUM2_L ; NUM2_L Z1. MOVF Z_ANT,W ; W Z_ANT. ADDWF NUM2_L ; NUM2_L W. MOVLW 0X02 ; W 0x02. MOVWF NUM1_L ; NUM1_L W. CLRF TEMP_L ; ANTES DE USAR DIV8X8 USAR CALL DIV8X8 ; LIMPIAR TEMP_L MOVFF RESULT_L,INT ; INT RESULT_L. MOVF INT_ANT,W ; INT_ANT W. ADDWF INT ; INT= (Z1+Z_ANT)/2+INT_ANT. MOVFF Z1,Z_ANT ; Z1 --> Z_ANT. MOVLW 0X05 ; W 0x05. MOVWF NUM1_L ; NUM1_L W. MOVFF INT,NUM2_L ; NUM”_L INT. CLRF TEMP_L ; LIMPIA REGISTRO TEMP_L. CALL DIV8X8 ; LLAMA A LA RUTINA DIV8X8. MOVFF RESULT_L,INT ; INT= INT/0X05. MOVF INT,W ; W INT. ADDWF Z1,W ; Z1 + W. MOVWF VB ; VB = INT + Z1. MOVLW 0X08 ; W 0x08. CPFSLT VB ; VB < W ? MOVWF VB ; NO, VB W. MOVFF INT,INT_ANT ; SI, INT_ANT INT. GOTO ATLAS ; VE A ETIQUETA ATLAS. NOICPO1 MOVLW 0X01 ; W 0x01. ADDWF Z1 ; W+Z1. GOTO ATLAS1 ; VE A ETIQUETA ATLAS1. ;******************************************************************************************************* ATLAS DECF APX ; APX APX-1. CLRF NUM2_L ; LIMPIA REGISTRO NUM2_L. CLRF NUM2_H ; LIMPIA REGISTRO NUM2_H. CLRF NUM1_L ; LIMPIA REGISTRONUM1_L. CLRF RNUM ; LIMPIA REGISTRO RNUM. CLRF RDEN ; LIMPIA REGISTRO RDEN. BBAKIN MOVF APX,W ; C.I: APX=0, (0 <= APX <= 5). CALL T_SLIDAS ; LLAMA A LA RUTINA T_SLIDAS. MOVWF FSR0L ; FSROL W. MOVFF INDF0,RNUM ; RNUM <-- u(Zi). ;----------------------------------------------------------------------------------------------------------------------------------------------------------- MOVF INDF0,W ; NUM1_L = NUM1_L+u(Zi). ADDWF NUM1_L,F ; NUM1_L + W. BTFSC STATUS,C ; NUM1_L > FF? SETF NUM1_L ; SI, NUM1_L 0XFF. ; NO, CONTINUA. ;----------------------------------------------------------------------------------------------------------------------------------------------------------- MOVF APX,W ; W APX. APUNTA A LA TABLA DE ; SINGLETONS. CALL T_POSLIDAS ; LLAMA A LA TABLA T_POSLIDAS. MULWF RNUM ; Zi*u(Zi). MOVF PRODL,W ; W PROD_L. ADDWF NUM2_L ; NUM2_L = NUM2_L + Zi*u(Zi). BTFSC STATUS,C ; HAY ACARREO EN LA SUMA? INCF NUM2_H ; SI, ENTONCES NUM2_H + 1. MOVF PRODH,W ; NO, W PROD_H. ADDWF NUM2_H ; NUM2 NUM2_H + W. INCF APX ; APX = APX +1. MOVLW 0X05 ; APX = 05H? CPFSEQ APX ; SI, SALTA. GOTO BBAKIN ; NO, VE A BAKI. CALL DIVIDE ; LLAMA A LA RUTINA DIVIDE. MOVLW 0XFF ; W FF. CPFSLT RESULT_L ; RESULT < W? CLRF RESULT_L ; NO, LIMPIA RESULT_L. MOVFF RESULT_L,Z2 ; SI, Z2 RESULT_L. MOVLW 0X84 ; W 84. XORWF ERR,W ; W (ERR) XOR (W). BTFSC STATUS,Z ; ERR=84. GOTO CORR ; VE A ETIQUETA CORR. CORR1 MOVFF Z2,VA ; VA Z2. RETURN ; REGRESA. CORR MOVLW 0X01 ; W 0x01. ADDWF Z2 ; Z2 W + Z2. GOTO CORR1 ; VE A ETIQUETA CORR1. ;******************************************************************************************************* 86 APENDICE D Diagramas Fuentes de alimentación 1 3 2 V V GND IN OUT U1 78L05 1 3 2 V VGND IN OUT U2 79L05 C1 2200uf C2 2200uf 1 3 2 V V GND IN OUT U3 78L15 +VIN +VOUT -VOUT -VIN +24V +15V AC1 COM AC2 R1 RES D1 1N4002 1 2 3 4 5 J2 CON5 D2 LED D3 18DB05 TF? 10TO1CT V1 127V rms V? VSIN FUENTE CONMUTADA 87 APENDICE D Diagramas Circuito de encendido de la bomba de agua V2 VSIN R6 180 Q3 MAC15A6 R7 100 C1 0.1u PD7 +5V Q1 2N2222 C B MG2 MOTOR AC 1 2 3 J1 CON3 R5 330 R4 10k MT1 MT2 U2 OPTOTRIAC G 88 APENDICE D Diagramas Actuador de las válvulas R6 1k R5 1k R4 1k R3 1k +15V -+ ABRIR CERRAR MG1 MOTOR DC BA U1 4N25 U2 4N25 R1 330 1 6 2 7 3 8 4 9 5 J2 DB9 R2 330 Q4 2N1893 Q2 2N1893 Q3 2N1893 Q1 2N1893 R9 10kCURSOR CERRAR ABRIR POSICION P O S IC IO N R7 100kABRIR R8 CERRAR 5V POSICION +15V 5V C1 0.1uF 89 APENDICE D Diagramas Sensor capacitivo de nivel de líquido +V RA2 10k RB2 10k C10 0.01uF R4 10k Cx2 0.001u C5 0.01u R17 1.4k Q D4 1N4305 R15 10k D5 1N4305 C11 0.00001u TRIG 6 OUT 5 4 CVOLT 3 THOLD 2 DISCHG 1 1 4 7 RESET VCC GND U3A 556 C8 0.01u TRIG 8 OUT 9 1 0 CVOLT 11 THOLD 12 DISCHG 13 RESET VCC GND 1 4 7 U3B 556 out1 OUT_U2 GND +V O U T _ U 2 OUT_U2 GND +V -V 1 2 3 4 5 J2 CON5 SCM 4 8 2 3 1 U4A LF353 5 6 7 4 8 U4B LF353 C9 0.01u R16 10k +V R18 10k R20 100k R21 100k R22 100k R23 100k +V -V R19 10kR27 5.8k R26 1k R24 1000k C12 0.1u +V C13 0.1u R25 1000kD6 1N4305 OUT_U2 -V REF_Z O U T _ U 2 SCM 90 APENDICE D Diagramas Diagrama de conexiones del PIC18F452 RA0/AN0 2 RA1/AN1 3 RA2/AN2/VREF- 4 RA3/AN3/VREF+ 5 RA4/T0CKI 6 RA5/AN4/SS/LVDIN 7 RB0/INT0 33 RB1/INT1 34 RB2/INT2 35 RB3/CCP2 36 RB4 37 RB5/PGM 38 RB6/PGC 39 RB7/PGD0 40 RC0/T1OSO/T1CKI 15 RC1/T1OSI/CCP2 16 RC2/CCP1 17 RC3/SCK/SCL 18 RC4/SDI/SDA 23 RC5/SDO 24 RC6/TX/CK 25 RC7/RX/DT 26 RD0/PSP0 19 RD1/PSP1 20 RD2/PSP2 21 RD3/PSP3 22 RD4/PSP4 27 RD5/PSP5 28 RD6/PSP6 29 RD7/PSP7 30 RE0/RD/AN5 8 RE1/WR/AN6 9 RE2/CS/AN7 10 MCLR/VPP 1 OSC1/CLKIN 13 OSC2/CLKO/RA6 14 VDD 11 VSS 12 VDD 32 VSS 31 U1 PIC18F452 C1 CAP C2 CAP Y1 20.000MHZ +5V +5V R1 RES S2 SW-PB +5V S5 SW-PB S4 SW-PB S3 SW-PB R2 RES R3 RES R5 RES +5V +5V +5V LLENAR VACIAR 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 J2 CON14 +5V R18 RPOT DISP0 DISP1 DISP2 DISP3 DISP4 DISP5 DISP6 DISP7 RS R/W E LLENAR +VREF +5V +VREF 1 2 3 J1 CON3 D1 1N4728 R6 RES R4 RES VACIAR NIVEL LCD 91 APENDICE E Hojas de datos LF353 LM385B MPS2222 TIP41B/TIP42B MAC223C LM556 PIC18F452 MA MOTOROLA JFET Input Operational Amplifiers These low cost JFET input operational ampliiers combine two state-of-the-art analog technologies on a single monolihic integrated circuit Each ntemally compensated operational amplífer has well matched high voltage JFET input devices for low input offset voltage. The JFET technology provides wide bandwidth and fast slow rates with low input blas currents, input offset currents, and supply currents. These devices are avalable in single, dual and quad operational ampliers which are pin-compatible with the industry standard MC 1741, MC1458, and the MC3403/LM324 bipolar devices. e Input Offset Voltage of 5.0 mV Max (LF3478) e Low Input Blas Current: 50 pA Low ing Nos Votage: 100V/ÍAz ido Gain Banduid-4.0 MHz LF347, B LF351 LF353 FAMILY OF JFET OPERATIONAL AMPLIFIERS NSUFIX PLASTIC PACKAGE CASE 620 Ñ | [áo | - | - | 30] om Input Blas Current (Ve = 0, Note 3) 18 Ta =+25'C | 5 | am | - | so | 20 | pa OCSTAS «100 - | - | ó0 | - | - |ó0o | om Input Resistance n wr] | [e] - 2 Common Mode Input Volage Range ver Jam] Jo mp. ]- v 12 2 sgnal Voltage Gain (Vo ==10V,RL=20%) | AvoL VinV 250 so | 10 | - | 25 | 10] - CS TAS +00 25 | - | - | ws | - | - Output Voltage Swing (RL = 10) vo [+=] mu | [+= |. | - v Common Mode Rejection (Rg < 10) or | e | wo | - [ro || - 8 Supply Voltage Rejection (Rs < 10) PsaR | 0 | | - [wo [wo |- 8 Supply Current o mA 1347 lea] o [r]os LE9S1 ll | | ts] o. 1959 op] - Joso Short Circuit Current Tc a] ]>=]-]._u Siew Rate (Ay = 11) SR 2] RI] ] ws Gain-Bandwidh Product em] [ao] ]- [2] |. Equivalent Input Noise Voltage -n Ta TETERA (Rs = 100% 1= 1000 Hz) Equivalent Input Noise Current (f= 1000 H2) ln - 0.01 - - 0.01 = | pai Channel Separalon (LF347, 1F353) - 2 > 5 1.0 Hz << 20 kHz (Input Referred) For Typical Charactoristic Performance Curves, refor to MC340D1, 34002, 34004 data shoot NOTE: 3, Input bias currents o JFET input op amos approximately double for avery 100 rise in junction temperature. To maintain junctiontomperalures as oso to ambient asis possilo, pulso techniques aro utllzad during tot. 93 M) MOTOROLA Micropower Voltage Reference Diodes The LM285/LM385 series are micropower two-terminal bandgap voltage regulator diodes. Designed to operate over a wide current range of 10 A to 20 mA, these devices feature exceptionally low dynamic impedance, low noise and stable operation over time and temperature. Tight voltage tolerances are achieved by on-chip trimming. The large dynamic operating range enables these devices to be used in applications with widely varying supplies with excellent regulation. Extremely low operating current make these devices ideal for micropower circuitry like portable instrumentation, regulators and other analog circuitry where extended battery lfe is required. The LM285/LM385 series are packaged in a low cost TO-2264A plastic case and are available in two voltage versions of 1.235 and 2.500 V as denoted by the device suffix (see Ordering Information table). The LM285 is specified over a -40'C to +85"C temperature range while the LM385 is rated from 0"C to +70*C. The LM385 is also available in a surface mount plastic package in voltages of 1.235 and 2.500 V. e Operating Current from 10 A to 20 mA 1.0%, 1.5%, 2.0% and 3.0% Initial Tolerance Grades Low Temperature Coefficient 1.0 42 Dynamic Impedance . . . e Surface Mount Package Available Representative Schematic Diagram Cathode 10k Open (011.235 V ek 600k 600K Open ha, 1or25Y, 600K 5000 E 100k Otato LM285 LM385, B MICROPOWER VOLTAGE REFERENCE DIODES SEMICONDUCTOR TECHNICAL DATA ZSUFFIX PLASTIC PACKAGE CASE 29 ¡Baton View) NC. Cathode Anode D SUFFIX PLASTIC PACKAGE CASE 751 (s0-8) non] PE) conose "eE Ens ES ne El gnc. eE Ene. Standard Application 151 Battery 1235 38512 ORDERING INFORMATION Reverse] Operating. | Break Temperature | down Device Range — | Voltage |Tolerance LM285D-12 sl Emzeso-12 1235V | 1.0% umzeso25 | t880 LM2852-2.5 2500 V 15% LM3ES8D-12 sv| 2 LM3858Z-1.2 1235V | 11.0% LM3ESD-12 7 1385212 | ta=o0to [125] 20% LM3B58D-25| +00 oe LM3858Z-2.5 2500 V 15% LM3ESD-25 so0v| z LM385z-2.5 2500 | +30% 94 LM285 LM385, B MAXIMUM RATINGS (TA = 25"C, unless otherwise noted) Rating Symbol Value Unit Reverse Current mn 30 mA Forward Current le 10 mA Operating Ambient Temperature Range Ta “0 Lm285 -40to+ 85 LiMS8S Oto +70 Operating Junction Temperature Tu 150 -0 Storage Temperature Range Tag | —estoriso |< ELECTRICAL CHARACTERISTICS (TA = 25%C, unless otherwise noted) LM285-1.2 LM385-1.2/.M3858-1.2 Characteristi symbol | min | typ | max | min [ typ | max | Uni Reverse Breakdown Voltage (IRmin IR 20 mA) VIBRA v LIM285-1.2/M3858-1.2 1223 | 1235 | 1247 | 1.223 | 1235 | 1247 Ta = Tiow 10 Thigh (Note 1) 1200 | - [1270 [1210] - | 1260 LM385-1.2 - - - | 1205 | 1285 | 1.260 Ta = Tiow t0 Thigh (Note 1) - - - Pre] - | 123 Minimum Operating Current IRmin yA TA= 250 = Pao | 1w0 | - | so | Ta = Tiow t0 Thighn (Note 1) - - 20 | - - 20 Reverse Breakdown Voltage Change with Current AVIBR)R mv IRmin IR % LOMA, Ta =+25"C - - 10 | - - 10 Ta = Tiow t0 Thigh (Note 1) - - 15 | - - 15 10mA $ lg $ 20mMA, Ta =+25%0 - - 10 | - - 20 Ta = Tiow 10 Thigh (Note 1) - - 20 | - - 25 Reverse Dynamic Impedance z os | - = Jos | - w IR = 100 HA, TA =+25"C Average Temperature Coefficient avayar | - | 50 - - | = | pomre 10 4A «6 If 85 20 MA, Ta = Tiow 10 Thigh (Note 1) Wideband Noise (RMS) n - | 6 - - | 6 - y IR = 100 4A, 10 Hz a 1 6 10 kHz Long Term Stabilty Ss - | 2 - - | 2 - pony IR =100 HA, Ta = +25"C +0.1%C kHR. 95 LM285 LM385, B ELECTRICAL CHARACTERISTICS (Ta = 25%C, unless otherwise noted) LM285-2.5 LM385-2.5/LM385B-2.5 Characteristic symbol | min | typ ] max | min | typ | Max | Unit Reverse Breakdown Voltage (IRmin $ IR 20 mA) V(BR)R v LM285-2.5/LM3858-2.5 2462 | 25 | 2538 [2462 | 25 | 2538 Ta = Tiow t0 Thigh (Note 1) 2415 - [2585 [2430] - | 2564 LM385-2.5 - - - |2ss| 25 | 2575 Ta = Tiow t0 Thigh (Note 1) - - - [2s00| - | 2600 "Minimum Operating Current IRmin yA TA= 250 - 1w | 20 | - | 1s [20 Ta = Tiow t0 Thighn (Note 1) - - 30 | - - 30 Reverse Breakdown Voltage Change wilh Current VERA y IRmin € IR E LOMA, Ta =+25"C - - 10 | - - | 20 Ta = Tiow t0 Thign (Note 1) - - 15 | - - | 25 10mA € lg 6 20mA, Ta =+25%0 - - 10 | - - 20 Ta = Tiow 10 Thigh (Note 1) - - 20 | - - 25 Reverse Dynamic Impedance a os | = =P os | - w IR = 100 HA, TA = +25"C Average Temperature Coeficient avayar | [80 - 0 ET] = | pomro 20 HA + Ig 6 20 mA, Ta = Tioyy 10 Thign (Note 1) Wideband Noise (RMS) ” == = am | - mM IR = 100 4A, 10 Hz «€ (4 10 kHz Long Term Stabiliy s =| 2 - =—2 - pony IR =100 HA, Ta =+25"C +0.1%C kHR NOTES: 1. Tjoy = —40-CforLM285-1.2, LM285-25 Tmign = *85:C for LM285-12, LM285-25, OC forLM38S-1.2, LMS8SB-1 2, LM38S-2.5, LMBSSB-2.5 4700 forLMABS-12, LM3S5B-12, LMIBS-2.5, LMIRSB-25 96 MOTOROLA SEMICONDUCTOR TECHNICAL DATA Ampliflor Transistors NPN Silicon LECTOR 1 bas sara MAXIMUM RATINGS Rating E A lec Emite Volege Veso | | ve lacio Base Volage Voso | 0 E A Eniter-Bass Volage 30 | 0 mz e ; fra Denis DSspalo Po Derat La Denis Dsspalo ”o erat añove25 Opealng and Siorage Junin 1759 | 50m > empero Rango THERMAL CHARACTERISTICS Characters Symbol max Un E A EJ emmal Ressiancs, Junin o Case AC 7 ELECTRICAL CHARACTERISTICS (TA = 25'0 unless olenise ted) Characters OFF CHARACTERISTICS MPS918* MPS3563 CASE 29-04, STYLE 1 TO-92 (TO-22644) Dee a oleo Emir va Ade, la 5 - 2 7 sor Base Breakdown Volage ViBR)CO vác Emter- Base Sreakgowo Valage VBRJESO vác le - oletor CU! Cam Ade 15 do, le - 00 ys; Duty RNA Is measured vt ne 2. Púlse Test Pulse Wi 97 ELECTRICAL CHARACTERISTICS (Tp = 25"C unless olhemise noted) (Continuea) [ Characterisio Symbol [Min] Max | Uni ON CHARACTERISTICS DC Curent Gain(2) ME = (10 =3.0 mAde, Vog = 1.0 Vde) MPS918 20 - (lC=80 made, VCE = 10 Vdo) MPS3S69 20 | 20 Calector- Emiter Saturaton Voltage Vera) | 04 | vee (lc = 10 mAde, lg = 1.0 made) MPSo18 Base -Emiter Saturalion Voltage A 10 | ve (lc = 10 mado, lg = 1.0 made) MPS918 SMALL-SIGNAL CHARACTERISTICS Current Gala — Bandwidi Produala) 7 mhz (lc =4.0 made, VCE MPS918 500 | (10 =8.0 made, VCE MPS3S69 500 | 1500 Output Capacianos Cobo pe Váo, le =0,1=1.0 MHz) MPS918 - 30 O Vdo,le =0,1=1.0 MHz) MPS918 - 17 O Vde, le =0,1=1.0MH2) MPS3S09 - 17 Input Capacitance Co = 20 pe (Ves 0.5 de, Ig =0,1=1.0 MHz) mPso18 Smal-Sgnal Curent Gain Me 2 | a | (le =8.0 mado, Ve = 10 Vdc, f=1.04H) MPSI569 Noise Figure NE = so | (dC = 10 made, VGE = 6.0 Vdc,Rg = 400, 1= 60 MHz) MPS918. FUNCTIONAL TEST Common-Emilter Amplñier Power Gain pe 5 (lc =60 mAde, Vea MPS918 15 - (10 =8.0 mAde, VeE = 10 Vas, MPSIS69 18 - (Cra + Gre < 208) Power Ouipat Pour 30 == aw (le =8.0 mado, Vog = 15 Vds, f= 500 MH) mPso18 úOsailator Collctor Efiiency 7 25 = % (lc =8.0 made, Vos = 18 Vds, Pour = 30 mW, f= 500 MHz) MPS18 2. Pulse Test: Pulse Width « 300 ys; Duty Cycle 1.0%. 98 MOTOROLA SEMICONDUCTOR TECHNICAL DATA Complementary Silicon Plastic Power Transistors designed for use in general purpose amplifier and switching applications. Collector-Emitter Saturation Voltage — VCE(sat) = 1.5 Vde (Max) Q lc = 6.0 Ado Collector-Emitter Sustaining Voltage — VCEO(sus) = 60 Vdo (Min) — TIP41A, TIP42A = 80 Vde (Min) — TIP418, TIP428 = 100 Vde (Min) — TIP41C, TIP42C + High Current Gain — Bandwidth Product fr = 3.0 MHz (Min) Q) lc = 500 mAdo + Compact TO-220 AB Package NPN TIP41A TIP41B* TIP41C* PNP TIP42A TIP42B* TIP42C* 6 AMPERE “MAXIMUM RATINGS POWER TRANSISTORS TIPA1A | TiP418 | TIPa1C COMPLEMENTARY SILICON Rating symbol | TIP4zA | TiP428 | TiPa2C | Unit 60-80-10 VOLTS Collector-Emiter Voltage Vceo | 60 80 100 | vac 65 WATTS e Voltage E 80 100 | vac Emilter-Base Vollag 50 Vác tor Current — Continuous c 6 Ad Peak 10, Base Current 18 20 Ade Total Power Dissipation Po c Watts oe 25.0 w_C Total Power Dissipation Po QTA=25.0 20 Watts Derate above 25-C 0.016 WC CASE 2214-06 TO-220AB Unclamped Inductive Load Energy (1) [E 625 mi “Operating and Storage Junatio Ta Tag 05 to 1150 Temperature Range THERMAL CHARACTERISTICS Characteristic Symbol Max Unit Thermal Resistance, Junction to Ambient RoJA 625 CM Thermal Resistance, Junction to Case RoJc, 192 EN (1) lc =25A, L=20 mH, PR.F.= 10 Hz, Vcc = 10 V, Rgg = 1000. Preferred devices are Motorola recommended cholcas for future use and best overall valus. REVA 99 TIP41A TIP41B TIP41C TIP42A TIP42B TIP42C ELECTRICAL CHARACTERISTICS (Tc [ Characteristc symbol] ma] mar] vn OFF CHARACTERISTICS Colector Em PATA TIPAZA | Vozofsu5) | 60 va (0=30 mAs 1IP418TIP428 60 mp0. Tipa20 100 Calor Cut Curent PATA, TIPAZA | Toro 97 | mar (VcE =30 Vác, la =0) 1P418,1IPA1C 07 (VGE = 60 Ve. 18 -0) 12428, 11P420 07 allecior Cut! Curent ces vado (VCE =60 Vo. VEg =0) 1IPA1A,TIPAZA 400 (VGE =80 Vic. VEB =0) TIP418, TIpA28 200 (VGE - 100 do. Veg =0) 1IP44C, TIPA20 os Enter Cuof Current (WEE = 50 Vd0 q =0) 0 10 me ON CHARACTERISTICS (1) 00 Current Galn (Ig = 0.3 A40 VOE =40 Va] mE 50 UE =3.0 Ade VO =4.0 Ve) so | Collector. Enter Satralon Voltage ( = 6.0 Ado, 1 = 600 mAde) Vera 15] ve Base Emiter On Voltage ( = 6.0 Ade, VCE =4.0 Vde] Vacio 20] va DYNAMIC CHARACTERISTICS Current-Galn — Bandwidin Prod O Ade VOR = 10 VA hesi= 10M) 7 30 mz Smal-Signal Current Gain (1 = 0.5 Ado, VGE = 1080, f= 1.02) mm 20 (1) Pulse Test: Pulse Width 300 ys, Duty Cycle 5 2.0%. Ta Tc 40 80 30 60 ATO N 100 120 M0 160 ec Figure 1. Power Derating 520 5 10 20 0.0 02040 60 8 7, TEMPERATUI Vec +30 P—2us 1 e LT] sol) WirS10ns DUTY CYCLE =1.0% SCOPE Rg and Re VARIED TO OBTAIN DESIRED CURRENT LEVELS D¡ MUST BE FAST RECOVERY TYPE, 9. INS825 USED ABOVE lg =100 mA MSDS100 USED BELOW lg > 100:mA. Figure 2. Switching Time Test Circuit 20 10 07 os 03 02 01 007 005 003 002 0050 0204 06 10 20 IC. COLLECTOR CURRENT (AMP) Figure 3. Turn-On 40 60 100 Trlacs Silicon Bidirectional Thyristors designed primarily for full-wwave ac control applications such as lighting systems, heater controls, motor controls and power supplies; or wherever full=wave silicon— gate-controlled devices are needed + Ofí-State Voltages to 800 Volts + Al Diffused and Glass Passivated Junctions for Parameter Uniformity and Stabiity + Small, Rugged, Thermowatt Construction for Thermal Resistance and High Heat Dissipation + Gate Triggering Guaranteed in Three Modes (MAC223 Series) or Four Modes (MAC223A Series) MAC223 MAC223A TRIACS 25 AMPERES RMS 200 tha ¡ru 800 VOLTS CASE 2214-04 (TO-220B) STYLE 4 MAXIMUM RATINGS (T, = 25"C unless olhervise noted.) Rating Symbol Value Unit Peak Repeliive OfI-State Voltage VORM Vols (Ty =-40 to 125"C1(1) (1/2 Sine Wave 50 to 60 Hz, Gate Open) 123 200 1236 400 1238 600 123 800 'On-State RMS Current (Tg = 80"C) T(RMS) 25 Amps ul Cycle Sine Wave 50 to 60 Hz) Peak Non-repeliive Surge Current Hs 250 Amps (One Full Cycle, 60 Hz, Tc = 80*C, preceded and followed by rated current) Circuit Fusing Pe 260 As (=83 ms) Peak Gate Current (135 2 15) GM 2 Amps Peak Gate Vollage (13 2 y VGM +10 Volis Peak Gate Power (LS 25) POM 20 Watts Average Gate Power (TG = 800, t:5 8.3 ms) PG) 05 Watts "Operating Junction Temperature Range Tu 4010 125 Cc Storage Temperature Range st 4010 150 Cc Mounting Torque 8 in. lo. ledonac 1. VOR for all types can be apa voltage ratings of the devi exceeded. ntinuous basis. Blocking voltages shall notb lecwit nt sou me 101 THERMAL CHARACTERISTICS ENT symbol max hermalResitanco, Junction 19 Case Raso 12 hermalResistenes, Juncton to AMDIeA. Roja, S ELECTRICAL CHARACTERISTICS (Tc "O and elher polarty OtMT2 10 MT volage unless olhenvise noted.) Characteristo Symbar CT A Peak Blocking CurentT OR VO = Rated VOR) 1,=28 =|- yA 1=1280 o]? Peak Or State Vallaga viu O O EE TS rm = 25 A Peak, Pulse Wish —2 ms, Duty Cycle 2%) Gate Trigger Current (Coninuous de) 5 ma VE =12V, RL = 1002) MT2C+), (+): MTZ(-), Gt—): MT -|o]o MTZ(-), Gt+)“A” SUFFIX ONLY [o] Gate Trigger Vallas (Continuous de) vo vots VD = 124, RL =1002) MT2G9, Gt+):MTZ(-) Gt-) MT(+). G(-) = ls 2 IX ONLY = | is | 2s 12550 2 | os |= IX ONLY, 2 | 05 | - Foling Current : = 0 ma ¡VO = 12, Hrm= 200 mA, Gate Open) Gale Contraled Tum-On T mM =P |= Ts (VO = Rated VOR MTM Clica! Rate ol Rss or OI Site Volags 308 == Ts (VO = Rated VOR Exponenti tica! Rate of Rise of Commataton Voltage 3 == Tus (VO = Rated VORM. IT = 35 A Peak, Commutating lt =126 Als, Gate Unenergizes, Tc = 80"0) 1 Ralngs apply for open gate condilons, Devices shall nor nplies excseds ne rated blockng voltage FIGURE 1 -— RMS CURRENT DERATING MPE RAT URE Tc. MA XM UV A O NE IIS), RMS ON-STATE CURRENT (AMS) tested vih a constant curan! souros fo IOCKing vatage sue nato volage FIGURE 2 - ON-STATE POWER DISSIPATION 0 50 J $ 2 3 Ir), RMS ON-STATE CURRENT (AMP) 102 PB FAIRCHILD yg] SEMICONDUCTOR m vwww.fairchildsemi.com LM556/NE556 Dual Timer Features Description + Replacs Two LMSSSINESSÓ Timers The LMSSG/NESSO seres dual monoliic iming crei = Operates in Both Asuble And Monostble Modes ae a high sable controller capable of producing accurate = High Ouspat Carrer ne delays or oscilaon. The LMSSO/NESSÓ ls a dual - TTL Compatible LMSSS, Timing is provided an extemal resisto and capaci- < Timing From Microsecond To Hours tor foreach timing funcion. The two timers operate inde. - Adjusible Day Cyele pendenil ol each vue, sharing only Vcc and ground. The = Temperature Stbiliy O 0.0089 Per*C circuit may be tiggered and reset on falling wavefoms The output structures may sink or souree 200ma. Applications Palse Shapis sol 1450p + Pulse Width Modulatio: + Frequency Divisios + Traffic Light Control Sequential Timing Pulse Generator : Time Delay Generator Touch Tone Encoder Tone Burst Generator Internal Block Diagram Row. 1.0.0 103 Electrical Characteristics (Ta=25'C, Voc =5= 151, uness aheise species) Parana 7260] —conaons | Ma [99] | 008 Spy Vols Vos - 2] aj Y Suppy Current mars] RES Ss | 12] om om state) Ice ASV Ri | 3] om Timing Enor amorosa) InitalAccuracy ACCUR | Ra= 2K010 1000 075 % Drft vin Temperature AA 0 A A Dif with Suppl Voltage añavco | 1=1:1kc. 01 eN Control Votage Vo 5 300] m9] v 203 ]a0 | v Tivestala Votago vi sa |0|m2| yv zas ja | Y Td ma jaa Trigger Vaage un 2330] | y Y Tage Cara mE om pao ReserVolagoa Vas sao ji] Y ResatCanent TasT 00 | 05] mA 01 1025 | Y 04 107 20152 Low Outpst Voltage voL 20 0251035 y 045 | 025 2s | v High Output Voltage von 1270 | 133 25 | 33 | > | y Te Oapa a - 0000 FalTime Oupat e - 100 [300 [as Discharge Leakage Carart TG - 0 roo [a Maring Characiensicoa ini Accuracy ACCUR 10 20 | % On vin Temperature AA - [o Pombo Dritwit Suppl Voltage AÍAVCO 02 | 05 |" Timing Eo astabley2 Inia! Accuracy ACCUR A EA Dni vin Temperature AA 10 »omPo Df with Suppl Voltage AÚAVeO 03 eN Notes *1. Supply current when output Is high is ypicaly 1.0mA less at VCC = 5V 2. Tostod at Vcc = SV and Vcc = 15V 3. This ll dotormino tho maximum valuo of Ra + Re for 15Y operation ho maximum total R = 20M, and for 5Y oporation to maximum total R = 6.6M42 *4. Malching charactoristis refor o tho difference botwoon porformanco charactoristcs of oach timer section in ho monostabie mode. *5. As rosot voltago lowors, Uiming ls inibltod and ton ho output goos low. 104 MICROCHIP PIC18FXX2 28/40-pin High Performance, Enhanced FLASH Microcontrollers with 10-Bit A/D High Performance RISC CPU: + C compiler optimized architecturelinstruction set - Source code compatible with the PIC16 and PICA7 instruction sets + Linear program memory addressing to 32 Kbytes + Linear data memory addressing to 1.5 Kbytes Or-Chip Program rd lon-Chip| Data Device Ram [EePROM| FLASH Je Single Word | (bytes) | (bytes) (bytes) | Instructions. PTCTEFZAZ| TOR m7 pcia] 32] 1004 | 158] 2 Pcia] 16] 8% 76 | 28 picierasa] 32] 650 | ss | 208 + Up to 10 MIPS operation, - DO 40 Mbiz 086 Jclock input - 4MHHz- 10 MHz 05cJclock input with PLL active + 16-bit wide instructions, 8-bit wide data path » Priority levels for intermupts + 8x8 Single Cycle Hardware Multpier Peripheral Features: + High current sink/source 25 mA/25 mA + Three external interrupt pins + TimerO module: 8-bi/16-bftimericounter with 8-bit programable prescaler + Timert module: 16-bittimericounter + Timer2 module: 8-ittimer/counter with 8-bit period register (ime-base for PWM) + Timer module: 16-bittimer/counter + Secondary oscilltor lock option - Timert/Timer3 + Two Capture/Compare/PWM (CCP) modules. CCP pins that can be configured as: - Capture input capture is 16-bi, max. resolution 6.25 ns (Tcv/16) - Compareis 16-bit max. resoluion 100 ns (Tev) - PM output: PYWM resolution is 1- to 10-5, max. PUMireg, O: E-bitresoluon = 156 KHz 10 it resolution = 39 KHz Master Synchronous Serial Port (MSP) module, “Two modes of operation: - 3wire SPIT! (supports all 4 SPI modes) - O" Master and Slave mode Peripheral Features (Continued): + Addressable USART module: - Supports RS-485 and RS-232 + Parallel Slave Port (PSP) module Analog Features: + Compatible 10-bit Analog-to-Digital Converter module (A/D) wit - Fast sampling rate. - Conversion available during SLEEP - Linearity < 1LSb + Programmable Low Voltage Detection (PLVD) - Supports interrupt on-Low Voltage Detection + Programmable Brown-out Reset (BOR) Special Microcontroller Features: + 100,000 erasaitwrite oye Entanoed FLASH program memory ypical + 1,000,000 eraselwie cycle Data EEPROM memory + FLASHData EEPROM Retention:>40 years + Seltreprogrammablo under software contrl + Poweron Reset (POR), Powerup Timer (PWRT) and Oscilato Startup Timer (OST) + Watchdog Timer (WT) wi its own On-Chip RO Oscilator for reiable operation + Programmable code protection + Power saving SLEEP mode + Selectabe oscillator opions including: - 4X Phase Lock Loop (ol primary osclator) - Secondary Ossilatr (32 kHz) clock input + Single supply 5V In-Cireut Serial Prograrmming"Y ((CSP"w) via two pins + In-Circult Debug (1CD) via two pins MOS Technology: + Low power, high speed FLASHIEEPROM technology + Fully stat design + Wide operating voltage range (2.0V to 5.5V) + Industrial and Extended temperature ranges + Low power consumption - <1.6 MA typical Q $Y, 4 MHz - 25 HA typical Q) 3V, 32 kHz - <02 yA typical standby current 105 Pin Diagrams (Cont.'d) Dip cr |] RAANO ++ E 2 Rave ES RAZON ae a RASANa/ers ae o Raro so Rasines Evo E 7 RETA er 8 REUTIANO a eo RECENT =p 0 dos — pe vs —= gr oscueLa —eg 13 OSCACIKORAS + 14 rcomosomos =—=E 13 RCUrIOSVecoZ" «ep 0 Roaoco Sep 17 Rouscuso =p 10 ROAPSPO + E 0 Rowesos er PI C1 8F 44 2 PI C1 8F AS 2 h—= rerpco E raoroc preso ros Be rsccos E reta E ira po recto po Bo—v= E ronsor E rosso Pp osesos E rose E rerireor E rcamor E ricsisoo, E rcarsouson PA pa rozpsoz DIP, SOIC Mam — Qe ravano ==] 2 paa «a Razanaer > E a PAN eE 5 raros ol] 6 rasanessivon + E 7 ve] a oscuc —*E a oscarcuomas «— ro reamosomol En Reurosuecoz: ey Rcaccos «Ea RcascKso Lie PI C1 8F 24 2 PI C1 8F 25 2 A nono 2 roorcc 2 e mosca Ae ros 2 macro santo sim A rsoro 2 — vo mp— vs 1 e ncnmor men ncmios 10 en nessoo tE ncascusos RES ise atimato pino he CCP2 a mul 106 107 BIBLIOGRAFIA [1] Ying Hao, Fuzzy Control and Modeling, IEEE Press Series on Biomedical Engenieering, 2000. [2] Jamshidi Mohammad, Fuzzy Logic and Control, Prentice Hall, 1993. [3] Gorski D. P. y Tavans P.V., Lógica, Tratados y Manuales Grijalbo. [4] Suppes Patrick, Introducción a la Lógica Matemática, Reverté S. A. 1980. [5] Peatman John B, Design with PIC Microcontrolers, Prentice Hall, 1998. [6] Mccomb Gordon, The Robot Builder’s Bonansa: 99 Inexpensive Robotics Projects, McGraw-Hill, 1987. [7] Coughlin Robert F., Amplificadores Operacionales y Circuitos Integrados Lineales, Prentice Hall, quinta edición, 1999. [8] Ogata Katsuhiko, Dinámica de Sistemas, Prentice Hall, 1ª edicion,1987. [9] Ogata Katsuhiko, Ingeniería de Control Moderna, Prentice Hall, 2ª edición, 1993. [10] Gayakwad Remakant, Analog and Digital Control Sistems, Prentice Hall, 1988. [11] Creus Antonio, Instrumentación Industrial, Alfaomega, 5ª edición, 1995. [12] Considine M. Douglas, Process/ Industrial Instruments and Controls Handbook, McGraw-Hill, 4ª edición, 1993. [13] Knight Andrew, Basics of MATLAB and Beyond, Chapman & Hall/CRC, 1999. [14] Ehrich Leonard, Using MATLAB to Analize and Design Control Systems, Naomi, Benjamin/Cummings, 2ª edición, 1995. [15] Motorola Thiristor Data TRIACS & SCRs. [16] Motorola Bipolar Power Transistor Data. [17] Motorola Semiconductor Master Selection Guide. [18] Motorola Small Signal Transistors, FETs and Diodes Device Data. [19] Manual del PIC18F452. 108 [20] Manual de MPLAB, www.microchip.com [21] ICPROG A, www.icporog.com [22] Programador para Microcontrolador PIC18F452. [23] Programa de Simulación y Diseño de Circuitos Impresos PROTEL 99 SE. [24] Programa MATLAB 6.5.