cenidet · 2014-02-14 · por el alumno pedro sibaja teran, bajo la dirección del m.c. carlos...

81
D.G.I.T. I S.E.I.T. I I S.E.P. CENTRO NACIONAL DE INVESTIGACI~N Y DESARROLLO TECNOLÓGICO cenidet CONTROLADOR DIFUSO BASADO EN UN PROCESADOR DIGITAL DE SEÑALES PARA APLICACIONES DE TIEMPO REAL T E S I S QUE PARA OBTENER EL GRADO DE: MAESTRO EN CIENCIAS EN INGENIE- ELECTRÓNICA P R E S E N T A : PEDRO SIBAJA TERÁN DIRECTORES DE TESIS M.C. CARLOS DANIEL GAR& BELTRÁN DR. VÍCTOR MANUEL CARDENAS GALINDO CUERNAVACA, MORELOS, MEXICO 88- 0794 NOVIEMBRE DE 2000.

Upload: others

Post on 08-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

  • D.G.I.T. I S.E.I.T. I I

    S.E.P.

    CENTRO NACIONAL DE INVESTIGACI~N Y DESARROLLO TECNOLÓGICO

    cenidet

    CONTROLADOR DIFUSO BASADO EN UN PROCESADOR DIGITAL DE SEÑALES PARA APLICACIONES DE

    TIEMPO REAL

    T E S I S QUE PARA OBTENER EL GRADO DE:

    MAESTRO E N C I E N C I A S EN INGENIE- ELECTRÓNICA P R E S E N T A :

    PEDRO SIBAJA TERÁN

    DIRECTORES DE TESIS

    M.C. CARLOS DANIEL GAR& BELTRÁN DR. VÍCTOR MANUEL CARDENAS GALINDO

    CUERNAVACA, MORELOS, MEXICO 8 8 - 0 7 9 4

    NOVIEMBRE DE 2000.

  • Dedicatoria

    A timamá Porque por medio de ti, pude tener la dicha de nacer

    Por tu confianza absoluta, tu apoyo incondicional, tu amor tangrande que no te cabe en el cuerpo y lo repartes a quien está cerca de ti

    Te amo mamá

    "Yo no se cómo le voy a hacer hijo, pero con la ayuda de DIOS y el esfuerzo que hagamos, saldremos adelante"

    Sixta Terán Mendoza

  • Agradecimientos

    Agradezco a DIOS la oportunidad que me ha dado de nacer. Todo lo demás es ganancia.

    Agradezco a Sixta y Valerio porque tengo la dicha y el orgullo de llamarlos padres. Eternamente agradecido por todo io que me han dado.

    Agradezco a July compartido y que ha permitido tener una familia muy unida.

    y Bety, por su &or y comprensión. Por io que hemos

    Gracias tío Manuel, por tus consejos, tus oraciones y tu apoyo de siempre. Te amo tío.

    Gracias Rocío por tu amor y apoyo durante el desarrollo de este trabajo. Que DIOS nos ayude a permanecer en amor.

    Gracias a mis directores de tesis: M.C Carlos D. Garcia Beltrán y al Dr. Víctor Manuel Cárdenas Galindo. Gracias Manolo por tu gran ayuda.

    Agradezco la valiosa colaboración de mis revisores: M.C José Mar ih Gómez López M.C. Javier Meneses Ruiz M.C. Pedro Rafael Mendoza Escobar Quienes por su ayuda contribuyeron para que este trabajo fuese posible. Gracias por el tiempo invertido en este proyecto.

    Gracias a mis compañeros: Jorge Luis, Javier, José Antonio, Freddy, Rubén, A h , Juan Carlos, Eduardo y Ricardo por que logramos ser un grupo muy unido.

    Gracias por el esfuerzo realizado por el personal del Departamento de Electrónica del Cenidet en mi formación como Maestro en Ciencias. Un reconocimiento especial al Dr. Jaime E. Arau Rofiel por todo el apoyo brindado. A la Sra. Ma. Elena Villegas, ai Dr. Luis Gerard0 Vela Valdés y a la Sra. Lupita.

    Gracias a la sociedad mexicana, porque a través de la SEP Y el CONACyT pude realizar m i s estudios d e maestría.

  • S.E.P S.E.1.T S.N.1.T

    CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO ceiiidet

    ACADEMIA DE LA MAESTRÍA EN ELECTR~NICA

    FORMA R11 ACEPTACION DEL TRABAJO DE TESIS

    Cuernavaca, Mor.

    Dr. Jesús Amoldo Bautista Corral Director del certidgf Presente

    Jefe del Depto. de Electrónica At’n. Dr. Luis Gerard0 Vela Valdés

    Después de haber revisado el trabajo de tesis titulado: “CONTROLADOR DIFUSO BASADO EN UN PROCESADOR DIGITAL DE SENALES PARA APLICACIONES DE TIEMPO REAL”, elaborado por el alumno Pedro Sibaja Teran, bajo la dirección del M.C. Carlos Daniel Garcia Beltrán y Co-Dirección del Dr. Victor Manuel Cárdenas Galindo, el trabajo presentado se ACEPTA para proceder a su impresión.

    A T E N T A M E N T E

    -- M.C. Javier Meneses Ruiz \J + M.C. Ped o ael Mendoza Escobar

    C.C.P.: DI. Abraham Claudia Sánchez / Pdte. de la Academia de Electrónica Ing. Jaime Rosas Álvarez / Jefe del Depto. de Servicios Escolares Expediente.

    INTERIOR INTERNADO PALMIRA S/N. CUERNAVACA. MOR. MÉXICO AP 5-164 CP 62050. CUERNAVACA. TELS. (73112 2314.12 7613.18 7741. FAX (731 12 2434 Dr Luis Gerordo Vela ValderlJefe del Depio de-Elecirónlco EMAIL velaluic~cenidet.edu.mx cenidet

  • Centro Nacional de .Investigación y Desarrollo Tecnológico

    Cuernavaca, Morelos

    Ing. Pedro Sibaja Terán Candidato al grado de Maestro en Ciencias en Ingeniería Electrónica Presente

    Después de haber sometido a revisión su trabajo final de tesis titulado: “CONTROLADOR DIFUSO BASADO EN UN PROCECADOR DIGITAL DE SENALEC PARA APLICACIONES DE TIEMPO REAL”, y habiendo cumplido con todas las indicaciones que el jurado revisor de tesis le hizo, le comunico que se le concede autorización para que proceda a la impresión de la misma, como requisito para la obtención del grado.

    Reciba un cordial saludo.

    A T E N T A M E N T E

    Dr. Luis Gerard0 Vela Váldes Jefe del Depto. de Electrónica

    C.C.P. expediente.

    INTERIOR INTERNADO PALMIRA S/N. CUERNAVACA. MOR. MEXICO AP 5-164 CP 62050. CUERNAVACA. TELS. 1731122314, 127613. 187741. FAX (731 122434 Dr .L I Gerorao Velo Vaides/.cle del Depm de Electrhca EMAlL veal“ shcer dei edu rnx cenidet

  • Contenido ... Lista de figuras .................................................................................... iii

    1. Introducción ..................... ................. 1-1 1.1. Planteamiento del problema ......... .................................. 1-2 1.2. Objetivo y alcance . . . . . . 1.3. Producto y beneficio ........ ....................................... 1-3 1.4. Estructura de la tesis ..... 1.5. Referencias .......................... ........... L .......................... 1-5

    . .

    2. Lógica difusa: una alternativa para sistemas de control inteligente ................ 2. I . Controladores difusos .............. .......... ....

    2.1.1.1. Base de datos ..................................................................

    2.1.2. Interfaz de fuzificación .............................................................

    2.1.4. interfaz de defuzificaci .................... 2.2. Referencias ................... ............... ....................

    2.1. I. Base de conocimi ............................

    2.1.1.2. Base de reglas .... ........... ...................

    2.1.3. Máquina de inferencia difusa ....................

    2- 1 2-2 2-2 2-3 2-3 2-5 2-7 2-8

    2-10

    3. Tendencias en la construcción de controladores difusos .................... 3-1 3-2 3.1. Soluciones de hardware para control difuso ................................

    3.1.1. Soluciones de propósito general .......... .............. .............. 3-3

    3.1.3. Coprocesadores de propósito especial ... ..................... 3-7 3.1.4. Circuitos integrados de aplicación espec

    3.2. Referencias ..................... .................................... 3-11

    3 .I .2. Procesadores de propósito general con soporte difuso ............ 3-6

    3-9

    4. Diseño e implementación del hardware ........... .................... 4.1. Selección del procesador ......................... .................... 4.2. Sistema mínimo basado en el procesador digital de señales ADSP-2101 ........ 4.3. Módulos de memoria externa al procesador ..........................................

    4.3.1. Interfaz de memoria de datos 4.3.2. Mapa de memoria de datos ......................................................... 4.3.3. Interfaz de la memoria de programa .............................................. 4.3.4. Mapa de memoria de programa

    4.4. Lógica de interfaz para la carga del programa de aplicación ........... 4.5. Adquisicion de señales ...................................................................

    ........ .................................

    .....................

    . . . . 4.6. Referencias ................................................................................

    4- 1 4-3 4-4 4-7 4-7 4-8 4-9

    4-10 4-10 4-12 4-14

    i

  • 5. Diseño e implementación del sistema de control 5.1. ANFIS: Controlador difuso basado en una Re

    5.1 . I . Regla de aprendizaje híbrido: aprendizaj 5.1.2. Arquitectura de la ANFIS implementad

    5.2. Algoritmo del controlador ....

  • Lista de figuras

    Capítulo 2 Página 2.1. Configuración básica de un controlador lógico difuso ...................................... 2.2. Obtención de Membíd: _ _. . . . . . . . . . . . . ................................................................. . ~, 2.3. Proceso de agregación de consecuentes . . . . . . _. .. .. .. . . .. __. . _ _ _. ._ __. . _. . . . . . . . . .. _ _ ._ ._ _. ._ _. __. 2.4. Métodos de defuzificación y reglas si-entonces usadas más comúnmente _...,.

    Capítulo 3 3.1. Alternativas de hardware contra complejidad del problema y velocidad . . . . . . . 3.2. Comparación del rendimiento de diferentes plataformas de hardware . . . . . . . . . .

    Capítulo 4 4.1. Requerimientos de diseño del prototipo 4.2. Diagrama a bloques del prototipo _.. . . . . . . . . , . . , , . . . . . . . . . . . . . . , . , . . , . . . . . . . . . . . . . . . . 4.3. Diagrama funcional a bloques del ADSP-2101

    4.5. Mapa de memoria de datos . . . . . . . . . . . . . . . . . , , . . , . . . . . . . . , . , , . , . , . , . . . . . . . . , . . . . , , . . , . . 4.6. Diagrama a bloques del módulo de memoria de programa . , . . , . . . . . . . . . . . . . . . . , . 4.7. Mapas de memoria de programa (RAh4 interna de 2K) . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8. Diagrama a bloques del cargador de memoria de programa . . . . . . . . . . . . . . . . . . . . . . 4.9. Diagrama a bloques de la conversión de señales digitales y analógicas

    4.4. Diagrama a bloques del módulo de me ................

    Capítulo 5 5.1. Arquitectura de una ANFIS . , . . . . _ _. . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . _ _ , ., 5.2. Razonamiento difuso tipo Takagi-Sugeno . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 5.3. Conjuntos difusos definidos para cada variable de entrada . . . . , . . . . . . . . . . . . . . . . . . 5.4. Diagrama de flujo del algoritmo de control implementado . . . _ _ _ . . . . . . . . . . . . . . . . .

    Capitulo 6 6.1. Respuesta a un escalón 6.2. Medición de la respuest 6.3. Respuesta al escalón de la planta . . . . . . . . . . . . . . . . . 6.4. Acercamiento para observar la respuesta al es 6.5. Sistema de control de velocidad . . . .. . . . . . . . . . . . , . . . . . . . . . . . . . . 6.6. Respuesta de la planta al aplicarle el controlador difuso . . , . . . . . . . . . . . . . , . . , . , . . . 6.7. Acercamiento para observar la respuesta de la planta al aplicarle el

    . . . . . . . . . . . , . , . . . . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . escalón . . . . . . . . . . . . . . . . . . . . . . . . , . . . .

    . . . . . . . . . , , . , , . . . . . . . . . . . . . . , , , , .

    . . . . . . . . , . . .

    controlador difuso

    2-3 2-6 2-8 2-9

    3-2 3-3

    4-2 4-3 4-5 4-8 4-9 4-9

    4-10 4-1 1 4-12

    5-2 5-1 5-8 5-9 ’

    6-3 6-3 6-3 6-4 6-4 6-5

    6-5

    ... 111

    \/

  • Apéndice A A.l . Sistema mínimo basado en el procesador digital de señales AüSP-2101 .. ._.. A.2. Módulo de memoria de datos . . . . .: . . . . . . . . . . . , . . . . . . . . . . . . . , . . . . . . . . . . . . , . . . . . . . _. . . . A.3. Lógica de selección para la carga o la ejecución del programa de aplicación . A4. Cargador y módulo de memoria de programa . . . . . , . . , . . . . . , . . . . . . . . . , . . . . . . . . _ _. .

    A.6. Módulo de conversión de digital a analógico , .. , . . . . . .. . . , . , . . . . . . . . . . . .. . . . . . . . . .

    A-2 A-3 A-4 A-5

    A-7 A.5. Módulo de conversión de analógico a digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-6

    iv

  • En los sistemas de control actuales se buscan nuevas formas para la solución de problemas de control de procesos complejos, donde no existe un modelo preciso y la información acerca de éste es de carácter esencialmente cualitativo. De forma general, un problema de control, es básicamente un proceso de toma de decisiones mediante uno u otro algoritmo y para este tipo de problemas la creación de la lógica difusa por Loft¡ Zadeh [ I ] a inicios de los sesentas, significó la aparición de una nueva y poderosa herramienta matemática cuya característica principal es su capacidad de expresar el conocimiento de una manera linghística, con el propósito de controlar un sistema, además de que tiene la propiedad de manejar imprecisión y vaguedad en la información que utiliza.

    Entre las alternativas de implementación de controladores difusos se presenta la siguiente taxonomía general:

    I ) Microprocesadores de propósito general, 2) Microprocesadores de propósito general con instrucciones de cálculo especializadas, 3) Coprocesadores difusos dedicados y, 4) ASICS' difusos capaces de realizar operaciones independientemente.

    Las altemativas propuestas en la literatura[2] cuentan con procesadores que permiten implementar esquemas de control, con el grave inconveniente de que incluyen una cantidad considerable de procesamiento secuencia1 e iterativo que limita el rendimiento del sistema.

    ' ASIC: Circuitos integrados de aplicación especifica (Autonomous systems of iniepted circuit, por sus siglas en inglés).

  • Capihdo i ' . Iníroducci'ón

    En el presente trabajo se planteó una solución a este problema. conformando un sistema de alto rendimient.0 basado en un Procesador Digital de Señales @SP: Digital Signal Processor, por su terminología en inglés) que se encarga de los cálculos del algoritmo de control y de la adquisición de señales. . .

    1.1 Planteamiento del problema

    En los Últimos años la lógica difusa ha tenido una gran aceptación y ha sido adoptada en una gran variedad de aplicaciones de control. En la mayoría de las aplicaciones publicadas[2], los algoritmos de inferencia difusa son implementados en sofiure y ejecutados por controladores o procesadores de tipo Von Newman. A pesar de que esto podna ser el planteamiento más económico y flexible, no tendna la capacidad de soportar ciertas aplicaciones que requieran velocidades de procesamiento muy altas, como en el caso de control de robots en tiempo real. Por esta razón se han desarrollado procesadores difusos para aplicaciones específicas y hardware de sistemas de inferencia difusa.

    El análisis de los trabajos publicados[3][4][5][6][7][8][9] permite observar dos inconvenientes:

    1) Incluyen una cantidad considerable de procesamiento secuencia1 e iterativo que limita el rendimiento del sistema[3][4][5][6].

    2) Carecen de flexibilidad para actualizar en línea la base de conocimiento del subsistema de inferencia difusa, de tal forma que, el sistema no pueda efectuar la adaptación cuando la dinámica del proceso ha cambiado[7][8][9].

    En este trabajo se abordó la problemática de la cantidad de procesamiento que va a realizar el sistema, considerando para esta aplicación el uso de un procesador con arquitectura Harvard que permite la lectura del programa y la escritura o lectura de datos de manera simultánea, aumentando así el rendimiento de un sistema como el planteado.

    El sistema construido fue validado con un módulo de pruebas de un Servo Manejador para un motor de comente directa[lO]. Es importante dejar claro, que no se busca solucionar los problemas asociados con el control de motores de CD, más bien, el sistema es adecuado para realizar las pniebas de rendimiento en la implementación de control

    1.2 Objetivo y alcance

    Por todo lo anterior, el objetivo del presente trabajo fue diseñar e implementar un prototipo de sistema &giíai para aplicaciones de control difuso indirecto con capacidad de controlar un proceso de dos entraah y una salida en tiempo r e d

    1-2

  • De manera que el objetivo de este proyecto se cumpliera de forma satisfactoria, el alcance de este proyecto se delimitó en dos puntos principales:

    I . Hardware. 2. Soffware.

    Con respecto al hardware, éste incluye:

    a) Interfaz con una computadora personal IBWAT o PC compatible para cargar el código máquina al sistema.

    b) Módulos de memoria RAM y ROM externa.

    c) Entradas y salidas analógicas para implementar control en lazo cerrado.

    d) Pruebas de las tarjetas evaluando programas pequeños que realizan accesos a memoria externa y que incluyen segmentos de código para la adquisición y generación de señales.

    Por otra parte, el soffware está delimitado por:

    a) Sofhltare para controlar la operación del sistema.

    b) Soffware para controlar la interfaz del sistema y la PC

    c) Esquema de control difuso indirecto.

    d) Algoritmos de aprendizaje de un sistema de inferencia difusa (con la optimización efectuada fuera de línea).

    e) Pruebas del controlador difuso indirecto aplicado a un motor de comente directa, esto con el objetivo de validar el comportamiento del controlador.

    1.3 Producto y beneficio

    Una vez concluido este trabajo de investigación y desarrollo, se obtuvo el siguiente producto:

    Q Un controlador difuso basado en un procesador de alto rendimiento(ADSP-2101 de Analog Devices), que soporta rangos de frecuencia de la planta desde O a 4 KHZ.

    1-3

  • Capítulo 1 Introducción

    Los beneficios obtenidos son:

    *t. Fortalecimiento de la infraestmctura en el uso de DSPs en el área de sistemas digitales, además, el sistema desarrollado se puede utilizar para fines experimentales y de estudio de control difuso.

    1.4 Estructura de la tesis

    El presente capítulo es el primero de un conjunto de siete, en el cual se da un panorama general del trabajo realizado, así como la problemática abordada, la solución propuesta y el producto obtenido al final de la investigación y desarrollo del sistema

    En el capítulo dos se dan a conocer los conceptos necesarios de la lógica difusa que ayuden a comprender el algoritmo de control implementado, también se plantean las ventajas y desventajas del uso de la lógica difusa

    En el capítulo tres se enumeran las distintas tendencias que se han dado en la implementación de controladores difusos así como de las herramientas disponibles, esto con la finalidad de tener una perspectiva de las diferentes alternativas de desarrollo para este tipo de sistemas

    En el capítulo cuatro se presenta el diseño del haráwure del sistema, en donde se da una descripción funcional de todo el sistema, la selección del procesador y una descripción detallada de cada uno de los módulos que conforman el controlador

    El algoritmo de control desarrollado y ejecutado por el DSP se describe en detalle en el capítulo cinco

    Los resultados de la construcción del controlador difuso se presentan en el capítulo seis, donde se muestran gáficas de rendimiento del controlador.

    Finalmente en el capítulo siete se dan las conclusiones del trabajo, las aportaciones y las sugerencias para trabajos futuros. Además, se proporcionan dos apéndices, uno en donde se presentan los diagramas esquemáticos de las tarjetas construidas y otro en donde se describe el proceso de compilación, enlace y generación del programa que es bajado al procesador, esto con el fin de tener un procedimiento validado para trabajos futuros al utilizar el compilador en C del DSP utilizado.

    1-4

  • -Capitulo I Introducción

    1.5 Referencias L. A. Zadeh “Fuzzy Sets”. , Department of Electrical and Electronics Research Laboratory, University of California, Berkeley, California. pp. 35-45, 1965.

    D. L. Hung “Design and Rapid Profo!ping a High Performance Hardware Fuzzy Controller with Aahptabili fy ” Department of Electrical Engineering Gannon University, Erie PA 16541.

    Masaki Togai [y] Hiroyuki Watanabe “Expert system on a chip: an engine for real-time approximate reasoning” IEEE EXPERT, 1986 pp. 56-58.

    T. Yamakawa “High speedfuzzy controller hardware sysfems ” Proceedings of the 2”d Fuzzy System Symposium, Japón, 1986, pp. 122-130

    Masaki Togai [y] S. Chiu “A fuzzy logrc chip and a fuzzy inference accelerator for real-time approximate reasoning” Proceedings of the i7* International Symposium on Multiple-Valued Logic, 1987 pp. 25-29.

    T. Yamakawa “Fuzzy microprocessors - rule chip and defzzijer chip” International Workshop on Fuzzy System Applications, Izuka, Japón. Agosto 1988, pp. 51-52.

    W. D. Detioff [y] K. E. Yount “A fuzzy logrc controller with reconjgurable, cascahble archifecture ” Proceedings of 1989 IEEE International Conference on Computer Design: VLSI in Computers and Processors, 1989. pp. 474-478.

    D. L. Hung [y] W. F. Zajak “Implementing afuzzy inference engine usingjeldprogrammable gafe array” Proceedings of the IEEE International ASIC Conference, 1993. pp. 349-352

    D. L. Hung “Custom design of a hardware fuzzy logic controller” Proceedings of the 3rd E E E International Conference on Fuzzy Systems, 1994, pp. 1781-1785.

    1-5

  • Capítulo I Introduccidn

    [IO] Manual CEllO Servo Trainer TECQUIF’MENT LIMlTED COMPANY. Bonsall Street, Long Eaton, Nottingham. NGlO 2AN, England. httu-//www.tecquio.co uk

    1-6

  • Ldíica 'dijksa: m a almativa pava el conwol iatt?L&mte.

    Actualmente, la lógica difusa es una tecnología para el tratamiento de conocimientos imprecisos basados en variables lingüísticas y es objeto de numerosos estudios, principalmente para las aplicaciones de las técnicas de control y automatización, en las que se denomina control difuso (Fuzzy Control, por su terminología en inglés). Es importante recalcar que la lógica difusa (LD) y las técnicas de control tradicionales no son consideradas como mfugónicus, sino más bien, como planteamientos complemenfmios. La LD no es u n a p a c e u para todas las aplicaciones, sin embargo es una herramienta Útil para resolver los problemas aún pendientes que no pueden ser abordados fácilmente con los métodos tradicionales[ 11.

    Las aplicaciones naturales de la LD para sistemas de control son aquellos sistemas cuyo modelo matemático es desconocido, muy complejo o variante en el tiempo y donde la experiencia humana puede jugar un papel importante. Las áreas donde la lógica difusa ha sido aplicada exitosamente abarca una amplia variedad de aplicaciones, caracterizadas por complejidad y rangos de tiempo de funcionamiento extremadamente diferentes. Por ejemplo, se pueden encontrar algoritmos de control difuso en lavadoras, control de enfoques de cámaras fotográficas automáticas, control de la fuerza aplicada a un servo motor, y muchos otros dispositivos [2][3].

  • Capitulo 2 Lógica difusa: una alfernaüvapara el control infeligenle

    Considérese por un momento la actuación de un conductor de automóvil y nos daremos cuenta de que nunca accionará sobre el volante en términos de radianes o grados, ni sobre el pedal del fieno en términos de milímetros o Newtons. El conductor, ante una esquina cerrada, gira el volante mucho, al estar cerca de la señal de ALTO, frena un poco, etc., sin embargo, nadie pone en duda las excelentes virtudes del ser humano para conducir autos, las que frecuentemente llegan al virtuosismo.

    La lógica difusa es una generalización de los conjuntos clásicos. A diferencia de la lógica clásica, en donde un elemento pertenece o no, a un conjunto - denotándose esto con el conjunto binario de valores de verdad {0,1} o (cierto, falso} -, la lógica difusa permite a sus predicados, adquirir valores de verdad multivaluados, es decir, cualquier valor dentro del intervalo unitario continuo [0,1].

    2.1 Controladores difusos

    Un controlador lógico difuso (CLD) [4], consiste básicamente de cuatro partes como lo muestra la figura 2.1:

    * Base de conocimiento. * Interfaz de fuzificación * I* Máquina de Inferencia.

    e interfaz de defuzificación ’,

    2.1.1 Base de conocimiento

    La característica principal de un CLD es su base de conocimiento, el cual contiene la información detallada acerca del dominio de aplicación y los objetivos de control requeridos.

    La base de Conocimiento está formada por dos componentes. El primero es una buse de datos que mantiene los parámetros y las Características de cada una iíe las variables lingüísticas, el segundo es la buse de reglas que almacena el conocimiento respecto a la causalidad entre las variables de entrada y las variables de control. Se puede decir que, la base de datos da los elementos que permiten la expresión de la buse de reglas, pero, por otra parte, también puede decirse que es la buse de reglus la que, una vez expresada, se formaliza mediante los parámetros registrados en la buse de datos.

    * No existe un término en el idioma Español que describa el proceso de transformar la información concreta en información difusa. Para ñnes de esta tesis, se define el término fuzificaci6n como: a) la codificación de un valor expresado en forma ‘escalar’ en un(os) valor(es) ‘difuso(s)’ y b) el proceso de representar la información cuncrefa en forma dfusa.

    o palabra que define el proceso inverso de la fuzificación, es decir, el proceso de convertir un valor difuso (o una conclusión difusa) en iníormación concreta expresada mediante valores escalares.

    2-2

  • Capitulo 2 Lógica dfisa: una alternativa para el control inteligente

    Figura 2.1 Confiuracidn básica de un controlador Idgico iüfu.w

    Identi@ación de variables. La primera tarea a llevar a cabo cuando se diseña un control difuso es identificas cuáles serán las variables de entrada y salida del controlador, así como los parámetros que las definirán. La determinación de qué variables son utilizadas para diseñar el controlador quedará implícita en la configuración del controlador y en la base de conocimiento.

    2.1.1.1 Base de datos

    La base de datos proporciona información a la interfaz de fuzificación, al mecanismo de inferencia y a la interfm de defuzificación. Así mismo, proporciona los elementos del lenguaje para construir las reglas. Su contenido está estructurado con respecto a cada variable lingüística, proporcionando para cada una:

    9 El número de valores lingüísticos

    9 Los parámetros de la función de pertenencia correspondientes a cada valor lingiiístico

    D El factor de normalización y desnormalización (si lo hay) aplicado al universo de discurso.

    2.1.1.2 Base de regias

    Una vez definidas las variables difusas y sus respectivos valores lingüísticos, es posible expresar el modelo cualitativo del controlador difuso mediante el conjunto de reglas que las relacionan.

    Como en el caso de la base de datos, no existen métodos generales para derivar las reglas. Para mostrar el tipo de reglas almacenadas, se considera el siguiente ejemplo que I

    2-3

  • - -- Capítulo 2 Lógica dfisa: una alternativa para el control inteligente

    muestra una típica estructura de las reglas obtenidas mediante el modelado de un proceso, que está basado en el desarrollo de un modelo difuso del proceso que se desea controlar

    Un modelo aproximado de la planta es configurado mediante implicaciones que describen los posibles estados del sistema Una vez identificado el modelo difuso de la planta, se construye un controlador difuso, ya sea mediante un conjunto de reglas o mediante una relación difusa explícita, en las que de alguna manera se representan las relaciones inversas entre las salidas y las entradas del sistema Esta manera de obtener las reglas es similar en su naturaleza a la manera en que se hace en la teoría de control tradicional

    De manera casi general, el error entre las señales de consigna y de salida (error), y la razón de cambio (derivada) de este error (Aerror), son las variables de entrada seleccionadas por la mayoría de los diseñadores de controladores difusos, mientras que la salida es la acción de control (control) o bien su cambio (Acontrol). Utilizando estas variables es posible construir conjunto de reglas que representen controladores difusos similares a los distintos tipos de controladores clásicos conocidos.'Si para ejemplificar, se asumen valores lingúísticos (Positivo, Cero, Negativo} para todas las variables, la estructura de las reglas en cada caso será de la forma:

    Tipo P:

    Tipo PD:

    Tipo PI:

    Tipo PID:

    Si error es Positivo entonces control es Positivo

    Si error es Cero y Aerror es Positivo entonces control es Cero

    Si error es Negativo y Aerror es Positivo entonces Acontrol es Cero

    Si error es Negativo y Aerror es Positivo y Gerror es Positivo entonces control es Cero

    donde Gerror es la suma de errores acumulados en el tiempo.

    Si en vez de usar las variables de error se utilizan las variables de estado más frecuentes utilizando ya sea la experiencia y conocimiento de un experto o el modelado de las acciones de control que ejerce un operador, la estructura de las reglas tendría la forma:

    Si Temperatura es Alia y Humedad es Baja entonces Potencia es Normal

    2 4

  • Capítulo 2 Lógica diJüsa: una alternativa para el contra1 inteligente

    Si Temperatura es Alta y Humedad es Alta entonces Potencia es Alta

    Estos ejemplos tienen en común el hecho de que, tanto sus antecedentes como sus consecuentes describen estados particulares del sistema.

    2.1.2 Interfaz de fuzificación

    Los datos de entrada para un controlador son normalmente valores adquiridos de la medición de sensores. Estos .valores son después convertidos a términos IingUísticos (conceptos difusos) usados en los antecedentes de las reglas difusas, un procedimiento llamado fuzificación. La salida da el grado de membresia o de pertenencia de cada entrada para los términos lingüísticos definidos en la base de conocimiento.

    Hay varias funciones que pueden estar incluidas en el proceso llevado a cabo por la interfaz de fuzificación:

    9 Obtener la medida de las variables de entrada. En las aplicaciones de control difuso los valores obtenidos desde los sensores son valores escalares. Normalmente se asume que estas señales son medidas de manera exacta y que no se introduce imprecisión. Para modelar esto con conjuntos difusos, cada señal de entrada SO se representa como un conjunto ‘‘crisp” o “singlenton” con una función de pertenencia dada por (figura 2.2(a)):

    1 si s = s o , O resto de los casos.

    I Mem b, (s) =

    Si la lectura del sensor produce ruido, como generalmente ocurre, la interfaz de fuzificación debe convertir los datos registrados probabilísticamente en números difusos. Esto puede ser modelado utilizando una función de pertenencia triangular. El vértice superior del triángulo corresponde a la media del valor registrado y el ancho de su base a la desviación estándar. La media se representa por la intersección entre la distribución de los datos medidos y los valores lingüísticos de la variable difusa (almacenados en la base de datos) tal y como se muestra en la figura 2.2 (b).

    . 2-5

  • Capitulo 2 Lógica dijüsa: una alternativa para el control inteligente

    1.5 I

    O u m

    r

    ._

    m m n

    m ._ u m -! m n

    1

    0.5

    O

    ; ...____.._____..___._________ 'I ',.. Media precisa

    -.- _/ ,.' r I ._ O 10 so '20 30 40 50 -10

    Temperatura, "C (a)

    1.5

    1

    0.5

    Medida difusa - Memb s O

    -10 O 10 so 20 30 40 50

    Temperatura, "C

    (b)

    figura 2.2 Obtención de Memb(sa): (a) iedura precisa y, (b) iedura &&a del sensor.

    P Normalización. Si la gama de valores asignados a cada variable lingüística en los antecedentes de la base de regias está definida en un dominio normalizado, al valor medido por el sensor debe aplicársele el factor de escala correspondiente (almacenado en la base de datos), que relaciona el universo de discurso de la variable medida con el espacio normalizado de la variable lingüística. Una de las ventajas de la normalización es la posibilidad de disminuir el efecto de la dependencia de contexto permitiendo hacer diseños independientes del dominio. La normalización, sin embargo, conlleva algunas desventajas, a saber:

    a) La pérdida de la relación directa entre la expresividad lingüística con el universo de discurso,

    b) El cambio en la sensibilidad de. los parámetros que puede tener senas repercusiones en la estabilidad del controlador y,

    c) El aumento en el .costo computacional por la doble operación de normalización y 'desnormalización' de las señales.

    2-6

  • Capitulo 2 Lógica drJiusa: una alternativa para el conirol inieligenie

    h Para cada señal medida (o medida y normalizada) debe encontrase el conjunto de valores de pertenencia de los valores lingüísticos definidos para la variable difusa correspondiente, utilizando para ello las funciones de pertenencia almacenadas en la base de datos.

    Normalmente cierta cantidad de información es “pérdida” durante el proceso de fuzificación cuando la variable cuantitativa concreta es transformada en una variable difusa. No obstante, cuando las medidas de los.sensores son precisas no existe ninguna limitación que impida “recordar” esa información si hubiese alguna forma de utilizarla.

    2.1.3 Máquina de inferencia difusa

    El mecanismo de inferencia en los controladores difusos es relativamente simple, sin embargo, los requerimientos de precisión y estabilidad hacen que el trabajo de selección y evaluación del método adecuado sea, aún, una labor compleja.

    La función principal de la máquina de inferencia es la de disparar cada una de las reglas del sistema. Una característica interesante de las reglas difusas es su paralelismo, debido a que el consenso se realiza tomando en cuenta a todas las reglas. Para llevar a cabo este proceso es necesario especificar dos parámetros externos: el operador d@so para los antecedentes y los pesos de las reglas difusas.

    Operador difuso. El grado de disparo de una regla difusa se obtiene aplicando un operador difuso a los valores fuzificados de los antecedentes. El operador mínimo (OR) consiste en tomar el antecedente con el menor grado de disparo, mientras que el operador producto (AND) se obtiene multiplicando el grado de disparo de todos los antecedentes de la regla difusa.

    Peso de las reglas. El valor de salida de una regla puede ser ajustado por medio del peso de la regla, un valor numérico que permite aumentar o disminuir el grado de disparo. Por ejemplo, si una regla tiene un peso de 0.90 y su valor de disparo es de 0.56 entonces, ai aplicar el peso de la regla, el valor final es de 0.504, ya que al multiplicar el valor de disparo 0.56 y el peso de la regla 0.90 se obtiene 0.504 como resultado.

    Agregación:

    Una vez obtenido el grado de disparo de todas las reglas, se realiza el proceso de agregación de sus opiniones. Consiste en tomar el consecuente de la regla con el mayor grado de disparo para cada conjunto de la variable de salida.

    En la figura 2.3 se muestran los consecuentes de cuatro reglas difusas y el resultado de la agregación. La primera regla tiene como consecuente el mismo conjunto que la cuarta,. en la operación de agregación se toma el resultado de la regla con el mayor grado de disparo, la primera en este caso.

    2-7

  • Capitulo 2 Lógica dihsa: una alternativa para el control inteligente

    regia 1 regia 2 da 3 regia 4 agreganái

    2.3 proceSo de agregación a¿? los consecuenfes

    2.1.4 Interfaz de defuzificación

    La salida del proceso de inferencia es un conjunto difuso, y para una aplicación práctica se necesita UM acción de control precisa. La interfaz de defuzificación convierte la acción de control difuso inferido a un valor de control no difuso (preciso), es decir el proceso consiste en generar un valor real del resultado de la agregación.

    En la literatura se han propuesto varios tipos de razonamientos difusos[5][6]. Dependiendo de los tipos de razonamiento difuso y de las reglas difusa empleadas, .la mayoría de los sistemas de inferencia difusa pueden ser clasificados en tres tipos (Figura 2.4):

    Tipo 1 : La salida global es el peso promediado de cada salida precisa de cada regla inducida por la fuerza de disparo de cada regla (el producto o mínimo de los grados de correspondencia con la parte de premisa) y las funciones de pertenencia de salida. Las funciones de pertenencia de salida usadas en este esquema deben ser monotónicas.

    Tipo 2: La salida difusa es derivada al aplicar la operación “max” a las salidas difusas calificadas (cada una de las cuales es igual al mínimo de la fuerza de disparo y la salida de la función de pertenencia de cada regla). Se han propuesto varios esquemas para elegir la salida precisa final basado en la salida difusa global; algunos de estos son centro de área, bisector de área, medio de máxima, criterio del máximo, etc.

    Tipo 3: Reglas si-entonces difusas de Takagi y Sugeno. La salida de cada es una combinación lineal de las variables de entrada más un término constante y, la salida final es el promedio pesado de cada salida de las reglas.

    La figura 2.4 utiliza un sistema de inferencia difusa con dos entradas y dos reglas para mostrar diferentes tipos de reglas difusas y los razonamientos difusos mencionados. Se debe estar consiente que la mayoría de las diferencias vienen de la especificación de la parte del consecuente (monotónicamente no decreciente, funciones de pertenencia gausianas o funciones precisas) y de esta manera los métodos de defudficacibn (promedio pesado, centro de área, etc.) son diferentes.

    El tipo seleccionado para esta aplicación es el de tipo Takagi y Sugeno (Tipo 3). 2-8

  • Capitulo 2 Lógica difusa: una alfernativa para el conpol infeligenfe

    ,. Parte collsecuenie Parie premiia

    1 x (CeImO de &eZ)

    figura 2.4 Métodos de &fuuJiiadn y reglas si-entonoes usadas mds comúnmnte

    2-9

  • Capltuln 2 Lógica dfusa: una alternativa para el control inteligente

    2.2 Referencias

    Allessandra Costa [y] Allessandro de Gloria [y] Paolo Faraboshi “Hardware Soluiions for Fuzzy ControP‘ Proceedings of the IEEE, Vol. 83, No. 3, pp. 422-434, Marzo 1995.

    M. Fusjiyoshi [y] T. Shiraki “A fuzzy automatic combustion control system of refuse incineration” 2”d International Conference on Fuzzy Logic and Neural Networks. Hitachi Zosen Corporation. Izuca, Japón. 1992. pp, 469-472.

    H. Yamakawa [y] E. Uchino “Hardware implementations o f f i z v filtering.. Proceedings of 2nd International Conference on Fuzzy Logic, San Francisco CA, 1993. pp. 535-542.

    Shuwei Guo [y] Liliane Peters. ‘Y High-speed, Recon&urable Fuzzy Logic Controller” E E E Micro, pp, 1-1 1. Diciembre 1995.

    Chuen Chien Lee “Fuzzy Logic in Control Systems: Fuzzy Logic Controller - Pari I ” EEE Transactions on Systems, Man and Cybernetics, Vol. 20. 1990. pp. 404-418.

    Chuen Chien Lee “Fuzzy Logic in Control Systems: Fuzv Logic Controller - Part II” EEE Transactions on Systems, Man and Cybernetics, Vol. 20. 1990. pp. 419-435.

    2-10

  • Tendencias en la constmcwn de contvoladoves d%&sos

    Una gran cantidad de los algoritmos de lógica difusa aplicados al control difuso está siendo implementada en diferentes plataformas basadas en microcontroladores de propósito general, procesadores difusos y circuitos integrados de aplicación específica(AS1Cs) [1][2][3][4]. Esta tendencia se ha incrementado en los últimos años y todo parece indicar que seguirá incrementándose en el futuro próximo.

    En este capítulo se presenta una revisión de los diferentes procesadores utilizados en el diseño y construcción de controladores difusos, con el fin de tener un panorama general de las distintas herramientas de desarrollo disponibles en el mercado para la construcción de controladores difusos.

  • Capitulo 3 Tendencias en la construcción de controladores ~ ~ U S O S

    3.1 Soluciones de hurdwure para control difuso

    Como en otros dominios de aplicación, las implementaciones de controladores difusos padecen del interminable debate entre los partidarios de sistemas de propósito general y de sistemas dedicados, y se han propuesto muchas soluciones para cualquiera de las dos alternativas. La estructura y relativa simplicidad de los algoritmos de procesamiento difuso, conduce de una forma casi natural a implementaciones directas en estructuras de hardware dedicado. El problema es decidir que tanta flexibilidad (en términos de programabilidad, funciones de membresia, métodos de inferencia, métodos de defuzificación, formato de regla, precisión, por nombrar algunos), serían soportados en un dispositivo difuso.

    Obviamente, una solución óptima para un.rango de aplicación general de lógica difusa no existe, pero distintos planteamientos tienen que ser usados de acuerdo a la complejidad de la base de reglas y las características de la aplicación, La velocidad, complejidad, contrastes de tiempo real, y requerimientos de interacción con algoritmos no difusos son los factores que influyen en la elección de un diseño de un controlador difuso, en lo que a la selección del hardware se refiere. Como una taxonomía general, podemos identificar cuatro clases entre las diferentes alternativas de implementación:

    1) Soluciones de hardware con componentes de propósito general. 2) Procesadores de propósito general con instrucciones para cálculos especializados. 3) Coprocesadores difusos dedicados. 4) ASICs difusos autónomos.

    La figura 3.1[5] muestra una localización cualitativa de las diferentes clases en el espacio problema.

    i 10 1 O0 1 O00

    Complejidad we!3la9 dihisas)

    '\

    '\

    10 1 O0 1 O00

    complqidad we!3la9 difusas)

    figura 3.1 A1Ycnia'va.s de hardware contra mmplejidad del p r o b h a y velocidod

    3-2

  • Capítulo 3 Tendencias en la consirucadn de controladores dqusos

    Para tener una idea más clara del rendimiento de distintos procesadores aplicados a controladores difusos se presenta la figura 3.2. En esta gráfica se puede apreciar que comparativamente con los cálculos de algoritmos difusos en microcontroladores estándares o de propósito general p8ra sistemas de alto rendimiento resultan ineficientes, sin embargo, Actualmente se cuentan con herramientas de desarrollo que generan códigos máquina altamente eficientes, el código fuente utilizado para efectuar estas comparaciones está disponible en [6]. El tiempo mostrado en la escala logaritmica vertical es el tiempo total requerido para calcular el sistema lógico difuso completo.

    El rendimiento computacional de los procesadores difusos dedicados es una de las mejores alternativas antes de considerar un sistema autónomo de circuito integrado (ASIC), la siguiente opción es la de utilizar un procesador digital de señales, dispositivo que a pesar de no contar con hardware dedicado para lógica difusa su arquitectura hace que tenga muy buenos resultados con algoritmos difusos, una de las razones por las cuales se tomó la decisión de utilizar un elemento de procesamiento de este tipo, para la implementación del controlador de este trabajo.

    Controlador Estimador de estados Sistemas de de posición pf-Drfiso para A B S - D , J ~ ~ ~ ~ * investigación

    * Srstema de frenado ontrderrapanir - Drfiso

    figura 3.2 Comparacidn del rendintiento de diferentesplatafonmS de h a r k r e , con un banco deprueba &andarkah.

    3.1.1 Soluciones de propósito general

    La implementación de software de algor¡tmos difusos en microcontroladores estándares (MC68HCl1, i8051, ST9, PICs, etc.) es hoy en día la técnica mas ampliamente usada, se adapta bien a aplicaciones de tiempos no cnticos, sin embargo, se convierte en inadecuado donde quiera que el proceso requiera de alto o inclusive medio rendimiento.

    3-3

  • Capítulo 3 Tendencim en la construcción de controladores d~usos

    La siguiente lista muestra las ventajas y desventajas de este planteamiento:

    Ventajas:

    Flexibilidad completa,, Soporte de cálculos no difusos por sí mismo, Disponibilidad de sistemas de desarrollo y, Disponibilidad de herramientas de soporte para el sistema

    Desventajas:

    Baja velocidad

    Un ejemplo interesante en este tipo de aplicaciones es el representado por la cooperación entre Motorola y Aptronix, cuyo intento es proporcionar un sistema de desarrollo difuso para microcontroladores existentes. El sistema de desarrollo, denominado Lenguaje de Desarrollo de inferencia Difusa, LDID (FIDE por sus siglas en inglés) [7] ha sido desarrollado por Aptronix y permite al usuario definir las variables de EntradaíSalida, las funciones de membresía, las reglas y el código fuente para aplicaciones específicas. El sistema puede generar código en tiempo real para microcontroladores existentes de Motorola, tales como el 6805, 68H05, 68HC11.

    Este mismo planteamiento es seguido por Znforrn [8] que desarrolló el ‘tfuzsiTECW. Están disponibles las diferentes versiones auto-denominadas “Ediciones de fuzzyTECW para el mejor complemento de las necesidades de distintas plataformas de hardware. Por ejemplo las “Ediciones MCU-XyfuZyTECH” pueden generar el código en ensamblador para el ST-6, 8051, 80C196, para la familia de procesadores digitales de señales de la familia TMS320x, así como para otros microcontroladores.

    Por otra parte, la “Edición Precornpilador deJirzzyTECW genera un sistema lógico difuso completo altamente optimizado, proporciona también código fuente en C con derechos de autor libres para aplicaciones en donde se tiene que utilizar código en C portátil, generado por estas librerías y así integrarlas con otros programas también en C para poder ser ejecutados en diferentes plataformas de hardware

    “TIL SheP de Togui InzuLogic [9][10] es una herramienta en ambiente Windows para el desarrollo de aplicaciones difusas. Soporta operaciones en tiempo real, depuración en línea; permite la sintonización de las reglas difusas y de las funciones de pertenencia; permite al usuario elegir el método de inferencia así como también la técnica de defuzificación. También soporta la generación de código C.

    Togui InfuLogzc también desarrollo el “MicroFPL”, una herramienta para la generación de código ensamblador para un gran número de microcontroladores como la familia 8051 de Intel, la familia 6811 de Motorola, la serie 65000 de Oki y otros. Una característica interesante de esta propuesta es la disponibilidad de herramientas de

    3-4

  • Capiiulo 3 Tendencias en la consirucción de coniroladores dvusos

    completamente probadas y confiables, tales como compilador, ensamblador, ligador, depurador Y simulador. Por ejemplo, para una aplicación compleja requiere de tan sólo 1.5-2.0 KBfles de espacio de código.

    Es importante resaltar que, un algoritmo difuso en un microcontrolador de propósito general solamente Puede ser usado en sistemas de control con dinámicas relativamente bajas (Le., respuesta en frecuencia en el rango de O. I - 1 m).

    Un planteamiento que sólo requiere de componentes estándares, está representado por implementaciones en tablas de consulta de memorias (“look-up ruble”) [li]. En este planteamiento, los valores de salida son precalculados para cada valor de entrada y almacenado en una RAM. En este caso la velocidad de inferencia es muy alta pero existe un crecimiento exponencial de la memoria requerida sí se incrementa el número de variables de entrada y de salida, o si la resolución se aumenta. Normalmente el uso de tablas de consulta está limitado a aplicaciones con 2 ó 3 variables de entrada, 1 ó 2 variables de salida y una baja resolución de 4 a 8 bits.

    Dentro de esta clasificacion, están también los procesadores digitales de señales @SPs). Los DSPs ha sido aplicados al control difuso con resultados interesantes(l21, esto debido a la arquitectura de. tipo Harvard empleada para la construcción de estos dispositivos, además de que permiten procesar una instrucción hasta en un tiempo de 20 ns e incluso menor. Este tiempo de procesamiento aunado a los diferentes penféncos integrados a los DSPs, es lo que ha propiciado para que sean una alternativa mas de implementación de controladores difusos.

    Texas Instruments cuenta con la familia de DSPs de punto fijo TMS320C5x con capacidad de procesamiento que van desde 20 hasta 200 millones de instrucciones por segundo (h4IPS). La compañía Inf¿rrm[S] proporciona el fuzzyTECH MCU-320 Edition, una herramienta de desarrollo de soílware para los DSPs TMS-320 C2x/3x/4x y para la familia C5x de Texas Instruments.

    Motorola cuenta con la familia de procesadores digitales de señales DSP563xx de 24 bits cuyas capacidades de memoria van desde 8 K x 24 hasta 40 K x 24 para memoria de programa y desde 4K x 24 hasta 96 K x 24 para memoria de datos con rendimientos que van desde 60 hasta 150 M I P S . La familia DSP566xx es de 16 bits y las velocidades de operación van desde 58.8 hasta 104 MHZ. Una de la herramienta de desarrollo de software que proporciona Motorola es SUITE 56 que incluye compilador en C, ensamblador, Ligador y depurador.

    Lucent Technologies fabrica la familia de DSPs de punto fijo de 16 bits DSP16 20/25/27/28/29, cuyas capacidades de memoria van desde 6 K x 16 hasta 32 K x 16 para memoria de datos y de 4 K x 24 hasta 72 K x 24 para memoria de programa. Sus tiempos de procesamiento son de S O ó 120 M I P S . Dentro de las herramientas de desarrollo disponibles para el uso de estos DSPs están la tarjeta de evaluación DSP162X-EVAL, la

    3-5

  • Tendencias en la construcción de controladores difusos Capitulo 3

    tarjeta de programación DSP162X-PROG y software de desarrollo para ambientes Windows, SunOs, Solaris y HPUx.

    3.1.2 Procesadores de propósito general con soporte difuso

    Una propuesta que aún mantiene las capacidades de cálculo de propósito general emplea el uso de procesadores de propósito general con la adición de unas cuantas instrucciones especializadas para acelerar las tareas difusas.

    La siguiente lista muestra las ventajas y desventajas de este planteamiento:

    Ventajas:

    Flexibilidad completa, Velocidad más alta comparada con los microcontroladores estándares, Extensión simple de núcleos existentes y, Soporte automático de cálculos no difusos.

    Desventajas:

    Costo más alto comparado con microcontroladores estándares (debido al volumen de producción más bajo) y, Rendimiento limitado para aplicaciones que requieren alta velocidad de procesamiento.

    Entre las diferentes soluciones, se pueden distinguir dos técnicas alternativas que corresponden a las diferentes filosofias de diseño del núcleo del microcontrolador:

    1) Para microcontroladores con conjunto de instrucciones complejas (arquitectura CISC), es posible añadir microprogramación cableada (firmware) dedicado para lógica difusa, al modificar adecuadamente el microprograma del controlador. El microcontrolador Fuzzy-166 Firmware de Inform [SI es un ejemplo en el cual un firmware especial es incorporado al microcontrolador de propósito general SiemendST. El tiempo de procesamiento para una base de reglas con 4 entradas, 3 salidas y 5 1 reglas es de 268 PS.

    Otro ejemplo de esta tendencia es el microcontrolador de Motorola 68HCi2, que trae hardware de procesamiento para lógica difusa, esto permite integrar cuatro instrucciones propias para la ejecución de lógica difusa en su conjunto de instrucciones, además de que se ha desarrollado la herramienta de jizzyTECH por la compañía Inform.

    2) Para procesadores con un conjunto de instrucciones reducidas (Arquitectura RISC), una posibilidad interesante es la de añadir unas cuantas instrucciones dedicadas a un conjunto de instrucciones de propósito general que permitan a un compilador optimizw las aplicaciones difusas. Tales productos aún no han aparecido en el mercado, pero

    3-6

  • Capíiulo 3 Terrdencias en la conshcción de controladores dijiiso3

    muchos estudios están actualmente en camino [13], y los prototipos son esperados pronto.

    Estos sistemas pueden ser usados para soportar rangos de frecuencia de la planta que van desde 1 a 10 KHz para los de tecnología CISC, o de 1 a 50 KHz para los de tipo RISC.

    3.1.3 Coprocesadores de propósito especial

    La mayoría de los procesadores dedicados caen en esta clase. Existen procesadores de propósito especial dedicados a cálculos difusos que no pueden implementar sistemas de control completos únicamente con ellos, debido a la falta de capacidad de cálculo de propósito general, pero que aún proporcionan algunas características de flexibilidad y configurabilidad.

    Se muestran las ventajas y desventajas de esta propuesta:

    Ventajas:

    Velocidad alta (para aplicaciones de alto rendimiento), Modularidad y, Cierta flexibilidad (no comprometido a una sola aplicación)

    Desventajas:

    Flexibilidad limitada (rango de funciones de pertenencia y de reglas limitado),

    Necesidad de procesadores de propósito especial para soportar partes no difusas. Alto costoy,

    ' Estos coprocesadores de propósito especial normalmente adoptan funciones de pertenencia triangulares, un formato de regia flexible (número de antecedentes y consecuencias), método de inferencia mh-mín, precisión de 8 bits y el método de defuzificación del centroide. Todos estos productos actúan como coprocesadores que son acoplados con microprocesadores de propósito general para la parte no difusa del algoritmo de control.

    Entre las distintas soluciones desarrolladas [14], destacan los sipientes productos comerciales:

    Fujifsu PRU-8. Es un controlador difuso de un sólo chip que combina una máquina difusa, un CPU de 4/8 bits, memoria y periféricos en el mismo chip. Este dispositivo no tiene límites en el número de entradas y salidas y puede soportar funciones trapemidales. El tiempo de procesamiento de la inferencia está cualitativamente en el rango de 100 ps a 10 m s y su aplicación natural es para sistemas de bajo rendimiento.

    3-1

  • Capitulo 3 Tendencia en la consirucción de controladores di~isos

    Siemens 81C99. Coprocesador difuso en un solo chip para ser acoplado a un microcontrolador anfitrión (host) estándar. Soporta hasta 256 entradas, 64 salidas, 64 módulos con 256 reglas cada uno y cualquier tipo de funciones de pertenencia. En general es rápido, flexible y aunado a su alto costo hace que sea propio para aplicaciones de alto rendimiento. El tiempo de procesamiento para 8 entradas, 1 salida y 256 reglas es alrededor de 78 ps.

    Omron FP3000 [15]. Procesador difuso diseñado para trabajar junto con un microcontrolador de propósito general. Soporta hasta 8 entradas, 4 salidas y 128 reglas. El formato de regla es fijo (8 antecedentes, 2 consecuentes) pero la resolución es de 12 bits. No es demasiado rápido para ser un procesador dedicado, y generalmente es utilizado para aplicaciones de rendimiento medio. El mejor tiempo de procesamiento de inferencia que se obtiene usando un reloj de 24 MHZ (por 20 reglas con 5 antecedentes y dos consecuencias) es de 650 ps.

    Omron FPIOOO. Es un procesador difuso conveniente para productos producidos en masa. Sus métodos de inferencia están hechos para ser un subconjunto del F'P3000. Al igual que el F"3000 soporta hasta 8 antecedentes, 4 salidas pero puede tener 96 regias con este formato.

    omron FP5000. Es una extensión del FP3000. Soporta un máximo de 128 antecedentes y un número máximo de reglas individuales de 32 639 (regias individuales significa: 1 antecedente y 1 consecuente). Tiene una velocidad de inferencia muy rápida: 10 x lo6 de reglas individuales por segundo y su 6ecuencia de reloj máximo es de 20 MHz. Su rango de áreas de aplicación va desde el procesamiento de imágenes hasta sistemas expertos [16].

    Omron FZOOI. Es un coprocesador difuso usado para control industrial en controladores lógicos programables (PLC). Permite integrar capacidad de inferencia difusa con PLCs de la Iínea de Omron. Soporta 5 antecedentes y 2 consecuentes con 128 reglas. El tiempo de inferencia máximo es de 125 ws por regia.

    ST WARP. Es un coprocesador dedicado [17] de SGS-THOMSON (ST) Permite hasta 16 entradas, 16 salidas y 256 reglas. Es más rápido y configurable. Su área de aplicación va desde los sistemas de medio hasta los de alto rendimiento.

    Togai InfiaLogic FCA. Es una tecnología con núcleo celular que proporciona una manera fácil de incorporar capacidades difusas en la construcción de chips de aplicación especifica. Debido a que FCA es una tecnología más que una librena de núcleo fijo, Tugai InzuLogic puede hacer a la medida un núcleo para adecuarlo a la aplicación de un usuario en particular.

    Soporta hasta 1024 entradas y salidas, 511 reglas por salida, pero estos parametros podrían ser afectados por el tamaño de la memoria de la base de reglas. Su resolución es de

    3 -8

  • Capitulo 3 Tendencias en la consmcción de controladores drjiisos

    10 bits, la velocidad de inferencia es de 69 ps en caso de utilizar un reloj de 20 MHZ, 8 entradas, 4 salidas, 5 antecedentes por regla, 2 consecuentes por regla y 20 reglas.

    Toshibu T/FC150. [8]. Es un procesador capaz de manipular un máximo de 8 entradas y una salida. La resolución de valores de entraddsalida es 10 bits y la resolución de las funciones de pertenencia es de 8 bits. Su velocidad de procesamiento máximo es de 4.4 x IO6 reglas por segundo, con dos entradas, una salida y cuatro reglas.

    En términos de rendimiento, los coprocesadores difusos pueden ser usados para aplicaciones moderadamente complejas en el rango de respuesta en frecuencia de una planta desde 10 hasta 100 KHz.

    3.1.4 Circuitos integrados de aplicación específica (ASICs dedicados)

    La Última solución para conseguir el rendimiento de aplicaciones difusas es desarrollar una arquitectura dedicada sometida a una sola aplicación. Debido a la naturaleza particular de los procesos de la inferencia difusa, es posible implementar directamente un algoritmo difuso con estructuras de hardware dedicadas de forma tal que maximize la velocidad y minimice el área de silicio, al utilizar técnicas de síntesis de alto nivel.

    La solución resultante esta obviamente amarrado a una sola aplicación, y los parámetros conñgurables son reducidos a un conjunto mínimo, que no compromete la velocidad y el área. Gran cantidad de ASICs (o bloques de ASICs) adaptados a una sola aplicación difusa (o dominios de aplicación) han sido estudiados y desarrollados, para un ejemplo ver [ 181.

    Ventajas y desventajas de este planteamiento:

    Ventajas:

    Procesamiento muy rápido, comprometido a la aplicación, Tiempo de cambio de diseño completo muy rápido (síntesis automatizada), Bajo costo en términos de área de Silicio (5 - 10 K compuertas), Disponible como un bloque de un sistema de control en un sólo chip Implementable como un arreglo de compuertas de campo programable (FPGA) al realizar el prototipo. Costo efectivo para volúmenes de producción altos.

    Desventajas:

    No posee flexibilidad (la aplicación es fija), Complejidad limitada Solamente para sistemas basados en ASKS (o basados en FPGA), Necesidad de un microprocesador para soportar.las partes no difusas.

    3 -9

  • Capitulo 3 Tendencias en la construcción de controladores dqiiuos

    3.2 Referencias

    D. Gardner [y] K. Ashenayi [y]. M. Timmerman ~[y] S. Shenoi “‘Autonomous Control Hardware for Real-Time Applications ” Center for Intelligent Systems. Keplinger Hall, University of Tulsa, Oklahoma. 74104-3189, USA. pp. 962-967. 1994.

    C. von Altrock [y] B. Kranse [y] E. Nield [y] A. Baker “Fuzzy Logic Application Note: Truck Speed Limiter Control by Fuzzy Logic” Inform Software Corporation. 2001 Midwest Road., Oak Brook, USA.-IL 60521 E-mail: [email protected] WWW: www.fuzzvtech.com FTP: ftr>.infom-ac.com

    S. Gno [y] L. Peters “A High-speed, Reconjgurable Fuzzy Logic Controller” IEEE Micro. pp. 1-11. Diciembre 1.995.

    P. Drake [y] J. Sibigtroth [y] C. von Altrock [y] R Konigbauer “Fuzzy Logic Application Note: Demonstration Model of fuzzvTECH Implementation on Motorola 68HC12 MCU” inform Software Corporation.

    Ailessandra Costa [y] Allessandro de Gloria [y] Paolo Faraboshi “Hardware Solutions for Fuzzy ControP‘ Proceedings ofthe IEEE, Vol. 83, No. 3, pp. 422-434, Marzo 1995.

    Página en Internet de fuzzyTECH httv:llwuw.fuzzvtech. com

    Página’en Internet de Aptronix hm,//www.~nix.wdfidd httv://www.apeomx.codfid&nchmarks.him

    INFORM Inc inform Software Corporation. 2001 Midwest Road., Oak Brook, USA.-IL 60521 botlin&inform-ac.com httr>://www.fuzz~ch.com íbinform-ac.mm

    Y. Tanaka “Meaningful perf o n c e benchmarks for fizzy systems” Fuzzy Logic ‘93, Benchmark Panel. 1993.

    3-1 I

    mailto:[email protected]://www.fuzzvtech.comhttp://ftr>.infom-ac.comhttp://botlin&inform-ac.com

  • - I . - _. -

    Cnpitulo 3 Tendencrns en la constnrccrón de controlndores dtJiisos

    Página en Internet de Togai Infralogic, Inc h t l P : ~ ~ ~ ~ , . o ~ e c h - e n a . c o m l ~ . ~ ~ i l S h e l l . h e m l

    Kaskowitz, M “Design tradeofls ~ f f u z y hardware and sojiiare solutions” Proceedings of Fuzzy Logic 1993, Burlingame, CA. p. M214, 1993.

    D. S. Reay [y] M. Mirkazemi-Moud [y] T. C. Green [y] B. W. Williams “Switched Reluctance Motor Control Via Fuzv Adaptive Systems” IEEE Control Systems. pp. 8-15 Junio 1995.

    Avogadro, E. [y] Commodaro, A. [y] Costa, A. [y] De gloria, A. “An optimazed NSC instruction setforJuzzy applicaíions” LEEE International Conference on Fuzzy Systems, Orlando, FL, 19994

    E. Sánchez “Medical applications with fuzzy sets” Fuzzy Sets Theory and Applications. A. Jones et al., Editorial New York: Reidel. pp. 331-347.

    Omron, Inc. Omron, Corporation, Tokio 140, Japón

    K. Shimizu [y] M. Osumi [y] F. Imae Omron, Corporation. “The digital&zq rocessor FP-5000” Proceedings of 2“ International Conference on Fuzzy Logic and Neural Networks. Izuka, Japón. pp. 539-542. 1992.

    SGS-THOMSON, Inc. WARP User‘s Manual. Marzo 1994. hc~/his.st.comlstonl~~p~ucts/inde.u

    Watanabe, H. “HSC approach io design ofjizzy processor architecture” Proceedings of International Conference on Fuzzy Systems. PP. 43 1-441, 1992

    t

    3-12

  • Diseño e implementacwa del hardware

    De las alternativas de solución para controladores difusos, en este trabajo se propone una de las distintas posibilidades mediante el uso de un procesador digital de seíiales(DSP), se presenta un análisis de las diferentes propuestas viables y se dan las razones por las cuales se hizo la selección del procesador para el controlador construido

    El prototipo propuesto(figura 4 1) cumple con los siguientes requerimientos de diseño

    -3 Interfaz con una PC compatible para la transferencia del programa de aplicación a la memoria del prototipo

    03 Fuentes de alimentación de +5 V, +I5 V y -15 V necesarios para el DSP y las etapas de conversión de señales (analógico y digital)

    *3 Dos entradas y una salida necesarias para el control del proceso en lazo cerrado

  • . .

    Diseño e irnplementactón del hardware Capítulo 4

    1

    1 1 Proceso 1 Controlador difuso

    I

    1 Alimentación i i T figura 4.1 Requerimientos de diseño aélprotohpo construido

    El hardware implementado para el controlador difuso está basado en el ADSP-2101 de Analog Devices. Se genera el programa en código objeto (código máquina) con la ayuda de un compilador en C para este procesador, este código es almacenado en memoria de tipo ROM; para que posteriormente el controlador pueda funcionar de manera autónoma.

    Se distinguen las siguientes funciones básicas del prototipo constmido:

    9 Bajar a la memoria ROM el programa de aplicación a ser ejecutado por el DSP.

    9 Procesamiento del algoritmo de control difuso.

    9 Adquisición de las señales de la planta y la generación de la seña¡ de control correspondiente.

    En la figura 4.2 se presenta el diagrama .a bloques del prototipo construido, teniendo como elemento central un procesador digital de señales que, debido a su arquitectura proporciona al sistema un elemento de procesamiento de alto rendimiento y además, algo muy recomendable que ya se ha mencionado, una flexibilidad importante para aplicaciones distintas a la que se presenta en este trabajo. Las limitantes para aplicaciones futuras serán las de la capacidad de memoria y la dinámica propia de la planta a controlar.

    Se aprecian 4 módulos en el prototipo.

    P Sistema mínimo basado en un procesador digital de señales. 9 Módulos de memoria externa al procesador. 9 Lógica de interfaz para almacenar en memoria ROM el programa de aplicación 9 Módulo de adquisición de señales.

    4-2

  • Figura 4.2 Dzkgrama a bloques delprotot@o.

    4.1 Selección del procesador

    De las alternativas de soluciones de hardware para controladores difusos, se hizo un planteamiento inicial de utilizar un coprocesador difuso, dado que por información obtenida por fabricantes de estos tipos de dispositivos, estos resultan ser aproximadamente 1200 veces más rápidos en el procesamiento de algoritmos de lógica difusa [I], con el inconveniente de que es necesario utilizar un procesador adicional como anfitrión (host) para las operaciones restantes que no sean de lógica difusa.

    Partiendo decesta propuesta inicial, se solicitaron las cotizaciones correspondientes teniendo como resultado que, con la compañía NeuraLogix Inc., era necesario un pedido mínimo de 100 piezas del coprocesador NLX230 a un precio de $29.00 USD por unidad. Se solicitó también una cotización a la compañía Togai Infralogic[2], con la respuesta de que la herramienta TiLShell tiene un precio de $ 1350.00 USD, además de que este costo es Únicamente para el software de desarrollo sin contar con los chips difusos. A pesar de que esta propuesta es la que podna dar un mejor rendimiento, debido a los altos costos tanto de los circuitos integrados como de las herramientas de desarrollo se descartó esta posibilidad.

    Se pidió la cotización’del microcontrolador HC12 de Motorola para dos módulos de evaluación diferentes, el M68MC812A4EVB y el MHC12SASMXBBX12 cuyos precios eran de $ 560.35 y $ 544.00 USD respectivamente por cada módulo de evaluación, la herramienta de desarrollo de este procesador tiene un precio de $ 562.00 USD lo que hace un total $ 1,120.00 y $ 1106.00 respectivamente para esta opción. La frecuencia de operación máxima de este dispositivo es de 8.5 x lo6 Hz, dando como resultado un tiempo de procesamiento de instrucción de 117 x IO” seg., si se considera que todas las instrucciones se ejecutan en un sólo cicIo.de reloj, lo cual varía entre 1 y 11 ciclos de reloj por instrucción. Además de esto, el tiempo de entrega del producto por parte de los proveedores era de varias semanas por lo que en su momento se consideró excesiva. Con base en estos fundamentos también se descartó esta posibilidad.

    4-3

    http://cicIo.de

  • Capítulo 4 Diseño e implementanon del hardware

    Una alternativa más de implementación era el uso de un microcontrolador de la compañia Microchips, ya sea de la familia PIC 16XX Ó 17XX, pero considerando que el tiempo de ejecución de una instrucción es de 1 p, exceptuando las instrucciones de salto condicional que son de 2 p, se descartó esta opción

    Aprovechando la infraestructura existente en ese momento en el uso de DSPs, se optó finalmente por usar el procesador digital de señales ADSP-2101 de 16 bits de la compañía Analog Devices El tiempo de ejecución de una instrucción para este procesador es de 50 ns, 20 veces más rápido que la opción más viable hasta el momento de la selección del procesador que era la de un PIC de 8 bits de la familia 17xX

    4.2 Sistema mínimo basado en el procesador digital de señales ADSP-2101

    El elemento de procesamiento seleccionado para la construcción del controlador difuso fue el ADSP-2101. Es un dispositivo con arquitectura optimizada para el procesamiento digital de señales y otras aplicaciones de procesamiento numérico de alta velocidad, su arquitectura base consta de tres unidades computacionales, dos generadores de direcciones de datos y un secuenciador de programa. Se muestra el diagrama a bloques funcional del procesador en la figura 4.3. Además, el procesador cuenta con dos puertos seriales, un temporizador programable, capacidad de interrupciones extensivas y memoria de datos y de programa, todos integrados en el mismo chip.

    Utilizando un reloj de 20 MHz, cada tiempo de ciclo de instrucción es de 50 ns, debido también a su arquitectura todas las instrucciones las ejecuta en un sólo ciclo, tiene un consumo meno'r a 1 W bajo todas las condiciones de operación.

    Con su arquitectura flexible y su conjunto de instrucciones amplio soporta un alto grado de paralelismo computacional. En cada ciclo el ADSP-2101 puede:

    9 Generar la siguiente instrucción de programa

    9 Buscar la siguiente instrucción 9 Realizar uno o dos movimientos de datos > Actualizar uno o dos apuntadores de direcciones de datos > Realizar una operación computacional y, 9 Recibir o transmitir a través de los dos puertos seriales.

    En el diagrama mostrado en la figura 4.3, se puede apreciar que el procesador contiene tres unidades computacionales independientes: la unidad lógica aritmética (ALU), el acumulador/multiplicador (MAC) y el registro de desplazamiento o desplaiador (SHIFTER). Las unidades computacionales procesan datos de 16 bits directamente y puede realizar cálculos de precisión múltiple. La ALU realiza un conjunto estándar de operaciones

    1-4

  • - -

    Capítulo 4 Diseño e rmplernentación del hardware

    aritméticas y lógicas, normalización, desnormalización y operaciones que deriven exponentes. El desplazador puede ser usado para implementar eficientemente el control de formatos numéricos que incluyan representaciones de punto flotante con multipalabras

    Generadoresde direcciones Secuenciadar

    Memoria

    Bus de direcemnes

    dalos ekieino

    figura 4.3 Diagrama funcional a bloques del ADSP-2101

    El secuenciador de programa y los dos generadores de direcciones aseguran el uso eficiente de las unidades computacionales. El secuenciador proporciona saltos condicionales, llamadas y retornos a subrutinas en un solo ciclo. Con contadores ciclados internamente y pilas también cicladas, el ADSP-2101 ejecuta código sin los factores que impiden obtener el rendimiento ideal u óptimo de un dispositivo (overhead, por su terminología en inglés); esto quiere decir que no son requeridas las instrucciones de salto explícitamente para mantener el lazo o ciclo.

    Los generadores de direcciones de datos (DAGS) controlan las actualizaciones del apuntador de direcciones. Cada DAG mantiene cuatro apuntadores de direcciones. Donde quiera que un apuntador sea utilizado para accesar datos (direccionamiento indirecto), es actualizado posteriormente por el valor de un registro modificador especificado. Puede ser asociado un valor de longitud con cada apuntador para implementar direccionamiento de módulos de forma automática para zonas de memoria intermedia ‘%buffers” circulares. Con dos generadores de direcciones de datos independientes, el procesador puede generar dos direcciones de datos simultáneamente para búsquedas de operandos duales. La característica de utilizar zonas de memoria intermedia circular también es usada por los puertos seriales

    4-5

  • Capitulo 4 Diseiio e implerneniacion del hardware

    para transferencia automática de datos.

    La transferencia de datos en forma eficiente es realizada con el uso de cinco buses internos:

    9 Bus de direcciones de memoria de programa (PMA)

    9 Bus de datos de memoria de programa (PMD).

    9 Bus de direcciones de memoria de datos @MA).

    9 Bus de datos de memoria de datos.

    9 Bus de resultados.

    Los dos buses de direcciones (PMA y DMA) comparten un bus de direcciones externo, y los dos buses de datos (PMD y DMD) comparten un bus de datos externo. La memoria de programa puede almacenar tanto instrucciones como datos, permitiendo que el procesador busque dos operandos en un solo ciclo, uno desde la memoria de programa y otro desde la memoria de datos. Además el procesador puede buscar un operando desde la memoria de programa así como también la siguiente instrucción en el mismo ciclo.

    La interfaz a memoria soporta memorias lentas y periféricos mapeados en memoria con la generación de estados de espera programable y responde a seis interrupciones; donde tres de estas seis interrupciones pueden ser externas, configuradas para que sean sensibles por flanco o por nivel. Las interrupciones internas pueden ser generadas por el temporizador (Timer) o por los puertos seriales.

    Los dos puertos seriales proporcionan una interfaz serial síncrona completa con compresión de datos en hardware opcional y una amplia variedad de modos de transmisión y recepción de datos encapsulados o desencapsulados (framed o frameless en inglés). Cada puerto serial puede generar un reloj serial programable interno o aceptar un reloj serial externo.

    La circuitería de arranque del chip permite la carga del programa de manera automática a la memoria de programa interna del procesador desde memorias externas con ancho de palabras menores a 16 bits, hay que recordar que la memoria de programa interna es de 2K X 24 de acuerdo con la figura 4.3. Esto permite, por ejemplo que un ADSP-2101 a 50 rn pueda usar una EPROM de 250 ns como memoria de arranque. Pueden ser entonces seleccionados programas múltiples y cargados desde la EPROM sin hardware adicional.

    Un temporizador de intervalos programable puede generar interrupciones periódicas. Un registro contador de 16 bits (TCOUNT) se decrementa cada n ciclos, donde n-1 es un valor de escalamiento almacenado en un registro de 8 bits (TSCKE). Cuando el valor del registro contador alcanza al cero, se genera una interrupción y dicho registro contador es recargado desde otro registro de 16 bits que almacena el periodo de temporizado (PERIOD).

    4-6

  • Capiíulo 4 Diseño e implementación del hardware

    El conjunto de instrucciones, proporciona movimientos flexibles e instrucciones con múltiples funciones (uno o dos movimientos de datos con un cálculo) y cada instrucción es ejecutada en un solo ciclo del procesador.

    La descripción realizada hasta ahora del procesador no tiene como finalidad la de dar a conocer de manera completa este dispositivo, lo importante es dar una idea clara de las capacidades del DSP en caso de darle otras aplicaciones y del tipo de procesador empleado para la construcción del controlador difuso, para profundizar en todas las características es necesario consultar la referencia [4].

    El sistema mínimo implementado basado en este procesador se muestra en el apéndice A (Figura AI), todas las líneas del procesador están disponibles en una tarjeta de circuito impreso para futuras aplicaciones; además cuenta con circuitería adicional para:

    9 Verificación del funcionamiento del puerto serial 1,

    9 Jumper para seleccionar el uso de memoria de programa interna o externa, 9 Circuitena de reinicialización (RESET) por hardware o por software.

    4.3 Módulos de memoria externa al procesador

    Como ya se ha mencionado en la sección 4.2, el procesador cuenta con una memoria de programa interna de 2K, y una memoria de datos interna de 1K. Para la aplicación planteada en particular era necesaria una cantidad de memoria mayor, por lo que hubo necesidad de construir módulos de memoria externa.

    Se construyeron módulos de memoria externa tanto de programa como de datos de 8K X 24 y de 8K X 16 respectivamente, teniendo finalmente para la aplicación un total de 10K X 24 de memoria de programa y 9K X 16 de memoria de datos. La aplicación ocupó finalmente aproximadamente 5.4 K de memoria de programa.

    4.3.1 Interfaz de memoria de datos

    El procesador puede direccionar un máximo de memoria de datos de hasta 16K X 16, 1K de memoria interna y el restante externa, las líneas de control usadas se muestran en la figura 4.4. En el procesador están disponibles 14 líneas de direcciones, multiplexadas con el bus de direcciones de memoria de datos @MA) y el bus de direcciones de memoria de programa (DMA), para el acceso de memoria externa. Los datos son transferidos a través de los 16 bits superiores de los 24 del bus de memoria de datos (DMD), que también esta multiplexado con el bus de datos de memoria de programa (PMD). Una terminal o pin del procesador de selección de memoria de datos (DMS) indica que el bus de direcciones esta siendo utilizado por una dirección de memoria de datos y dicha memoria puede ser seleccionada.

    4-7

  • Capitulo 4 Diseño e implemeniación del hardware

    4.3.2 Mapa de memoria de datos

    La memoria de datos interna del procesador es de 1K e inicia en la dirección 0x3800. El control del procesador y los registros de estados están mapeados dentro de 1K de la parte superior de la memoria de datos (Ox3COO - OX~FFF), el resto de esta parte superior está reservada. La memoria de datos externa esta disponible para almacenamiento de datos adicional. El mapa de memoria se muestra en la figura 4.5.

    DIRECCIONES

    ADSP-2101

    DATOS

    OMS mD /wR

    Figura 4.4 Diagrama a bloques del mddulo de memoria de daios.

    Como se muestra en el mapa de memoria de datos de la figura 4.5, el proc sador tier : cinco zonas de estado de espera (DWAITO-DWAiTI). Cada una de las cinco zonas de memoria de datos externa tiene su propio número programable de estados de espera, estos estados son ciclos extras que el procesador se tiene que esperar antes de sujetar el dato (en una lectura) o mantener el dato (en una escritura). Esto significa que una zona de memoria puede ser usada para trabajar con periféricos mapeados en memoria de una velocidad mientras que otra zona puede ser usada por periféricos más rápidos o más lentos. De manera similar, memorias más lentas o más rápidas pueden ser usadas para diferentes propósitos, mientras que sean ubicadas en zonas diferentes dentro del mapa de memoria de datos. En la figura A2 se muestra el diagrama esquemático de la memoria de datos construida.

    4-8

  • Diseño e rmplementauón del hardware Capitulo 4

    4 0x0000

    0x0400 1 K Extema DWAlTl

    0x0800

    I I 10K Externa DWAlT2 RAM Externa 0x3000

    DWAlT4

    Figura 4.5 Mapa de memoria de datos

    4.3.3 Interfaz de la memoria de programa

    El procesador puede direccionar un máximo de memoria de programa de hasta 16K X 24,2K de memoria interna y el restante externa, utilizando las líneas de control mostradas en la figura 4 6. En el procesador están disponibles 14 líneas de direcciones, multiplexadas con el bus de direcciones de memoria de programa (PMA) y el bus de direcciones de memoria de datos @MA), para el acceso de memoria externa. Las instrucciones y los datos son transferidos a través del bus de datos de memoria de programa 0) que también es multiplexado a la salida del chip. Para una búsqueda dual de datos fuera del chip, primero se lee el dato desde la memoria de programa y después el dato desde la memoria de datos. Un pin de selección de memoria de programa (EMS), indica que el bus está ocupado por una dirección de memoria de programa y el módulo puede ser seleccionado.

    DIRECCIONES

    ADSP-2101

    DATOS

    rnMS m m

    Figura 4.6 Diagrama a bloques del mddulo de memoria de programa

    4-9

  • Diseño e implemenlación del hardware Capitulo 4

    4.3.4 Mapa de memoria de programa

    El espacio de memoria de programa está mapeado en una de dos configuraciones dependiendo del estado del pin del procesador MMAP. La figura 4.7 muestra estas configuraciones.

    Cuando W = O , la RAM interna ocupa 2K palabras iniciando en la dirección 0x0000. En esta configuración, es iniciada automáticamente la secuencia de arranque después de que es aplicada la señal de reinicialización (/RESET).

    Cuando MMAP=l, las palabras de memoria de programa externa inician en la dirección Ox0000 y la RAM interna está localizada en los 2K de palabras superiores, iniciando en la dirección 0x3800. En esta configuración, que es la que se utilizó en el sistema de control, la memoria de programa no es cargada a pesar que puede ser escrita (para almacenamiento de datos) y leída bajo el control del programa.

    M W

    ,

    I I K V X E K N A

    Figura 4.7 Mapas de memoria de programa (RAM interna de 2K)

    El espacio de memoria de programa puede mantener instrucciones y datos intermezclados en cualquier combinación. El ligador del procesador determina donde ubicar el código relocalizable y los segmentos de datos. Se deben especificar el lugar de la dirección absoluta para cualquier módulo o estructura de datos, incluyendo el código para la reinicialización y las localidades del vector de interrupciones. El vector de reinicialización está en la dirección de memoria de programa 0x0000.

    4.4 Lógica de interfaz para la carga del programa de aplicación

    . Una vez obtenido el código máquina de la aplicación, es necesario llevarlo a memoria de programa para que pueda ser ejecutado por el DSP. Esto se llevó a cabo mediante el uso del puerto paralelo de una PC, tal como se representa en la figura 4.8, se emplearon las líneas de datos de este puerto, pines del 2 al 6 del conector DB-25. Utilizando las líneas de datos

    4-10

  • Capitulo 4 Diseño e rmplementacrón del hardware

    menos significativas DO-D4, se generan los distintos tipos de señales tanto de control como de direcciones para la transferencia de los datos correspondientes al programa de aplicación

    Debido a que las señales de datos y de control se generan a través de una sola línea, en este caso DI (Pin No 3), es necesario la conversión de este formato serial a paralelo y, por consiguiente es importante generar una señal de reloj para efectuar la síncronía en la transferencia de datos y de direcciones, las líneas restantes del puerto paralelo D2-D4 (Pines 4-6) se usaron como líneas de control para la selección de cada una de las memorias de 8K X 8 denominadas memoria baja, media y alta respectivamente, para conformar el formato que utiliza el procesador, un ancho de palabra de 24 bits

    AL DSP

    I- ___ L AL DSP MEMoRlA PARTE MEDIA

    ~

    8

    / ALDSP M E M O W PARTE ALTA

    REGlSTROS DE

    COFaMENTC

    MEMOWS DE

    8KX 8

    figura 4.8 Diagrama a bloques del cargador de memoria de programa

    El procedimiento de transferencia del programa es relativamente sencillo. Las herramientas de desarrollo generan el código máquina para cada una de las memorias de 8K X 8, es decir, un archivo para la memoria baja, otro para la media y otro para la alta, todos en formato InteMex. Para cada localidad de memoria, se generan 24 estados a la salida del puerto paralelo, en donde en cada estado están presentes los datos, las direcciones y las señales de reloj, de manera que en el estado 24, se genera la señal de control correspondiente que habilita la escritura para la memoria seleccionada. Esto se repite para cada localidad y para cada memoria de 8 bits, hasta que se encuentra el fin de cada archivo proporcionado por la herramienta de desarrollo. En las figuras A3 y A4 se muestran los diagramas esquemáticos a detalle y cada uno de los circuitos integrados para la implementación de esa interfaz, así como también el diagrama esquemático de la memoria de programa construida.

    4-1 I

  • Diseño e rmplementación del harhvore CapItuio 4

    4.5 Adquisición de señales

    El bloque de conversión de señales está constituido principalmente por dos convertidores de señales de 12 bits, de analógico a digital y de digital a analógico respectivamente.

    El convertidor analógico-digital utilizado es el AD7890, este es un dispositivo de adquisición de datos con 8 canales de entrada, con un tiempo de conversión de 5.6 x 1 O" seg. Su rango de entrada va desde O a +4.096 V. Para esta aplicación se utilizan sólo dos canales tal como se presenta en la figura 4.9. La salida de los datos desde el convertidor es proporcionada a través de un puerto de interfa serial bidireccional de alta velocidad, el dispositivo contiene un registro de control, que permite el control de la selección de los canales, el inicio de conversión y la selección de consumo de potencia mínimo cuando el dispositivo no esté en funcionamiento; todo esto a través de este puerto serial.

    Convertidor Digitai-Adógiu, Serial de 12 bits AD7890

    Enhada 1 Puerto send o 1 Entrada2 ADC !_I r

    H D8-Di9 DAc t- I Convertidor Analógico-Digital de

    I2 bitsDAC8412

    F i r a 4.9 Diagrama a bloques de la conversión de señoles aYgüaies y anoldgiear

    Para la conversión digital-analógico se empleó el CI DAC8412, es un convertidor de 12 bits con 4 canales de salida de los cuales se utilizó solamente uno para la generación de la señal de control. El tiempo de conversión es de 740 x seg. Puede ser operado con una amplia variedad de fuentes de alimentación que van desde +5 V a +I5 V y las referencias van desde + 2.5 V a ? 10 V. El consumo de potencia es menor a 330 mW con fuentes de alimentación de f 15 V y solamente 60 mW con una fuente de alimentación de +5 V

    Con estos módulos de conversión se lee una referencia que deberá seguir la planta y el estado de la planta en un tiempo anterior a la lectura actual de la referencia a través de los dos canales disponibles, esta información es procesada por el algoritmo de control difuso para la generación de la señal de control proporcionada a la planta por el convertidor de salida. En las figuras A5 y A6 se presentan los diagramas esquemáticos para una revisión más detallada.

    4-12

  • Capítulo 4 Diseño e implementación del hardware

    Los filtros pasabajos (100 Hz) mostrados a la entrada de la etapa de la conversión analógico-digital sirven para limpiar la señal de adquisición, estas señales, proporcionadas por la planta y la señal de referencia utilizada variaban entre 0.20 y 5 Hz. La señal de corte de estos filtros puede ser modificada al ajustar los valores de las resistencias variables asociadas.

    Tomando en cuenta el tiempo de procesamiento de algoritmo de control y las etapas de conversión la velocidad de respuesta del sistema es de 242 x 10" segundos aproximadamente, debido a que el DSP tarda en procesar todo el algoritmo en 230 x 10" segundos aproximadamente. La constante de tiempo de la planta a controlar es de 1.4 seg. con lo cual no se le obtiene el máximo rendimiento al prototipo desarrollado, sin embargo es una opción para aplicaciones con procesos que tengan un tiempo de respuesta de hasta 4 x IO6 Hz.

    4-13

  • Capitulo 4 Diseílo e irnplerneniación del hardware

    4.6 Referencias

    Hojas de datos del Microcontrolador Difuso N U 2