martes, 8 de enero de 2008

1.- Descripción del Proceso


La aplicación del magnetismo para los sistemas de posicionamiento, es una de las cosas que TEKNIKER tiene casi una década de desarrollo [1], aunque otras empresas y organizaciones de investigación han adelantado otros trabajos al respecto. Los dispositivos de control de posición juegan un papel importante en las aplicaciones relacionadas con la levitación electromagnética. La implementación de lazos de control utilizando circuitos electrónicos configurables tales como los FPGA's, demuestra una dramática mejora en la eficiencia de funcionamiento y economía de los diseños de sistemas de control, dando como valor agregado la posibilidad de que los algoritmos y el diseño de los mismos dispositivos de control sean completamente reconfigurables a nivel lógico.


El desarrollo y puesta en marcha de un proyecto [1] como este, está orientado a las siguientes aplicaciones:



  • Cabezales de mecanizado de alta potencia y altas revoluciones.

  • Cabezales para el microfresado.

  • Volantes de inercia para almacenamiento de energía.

  • "Choppers" de haz de neutrones para instrumentación científica.

  • Mesas de ultrapresición.

  • Nuevas configuraciones de motores "torquemotores".


Los dispositivos para levitación electromagnética de una pieza o eje rotacional serán llamados en este análisis cojinetes de levitación. La aplicación de los mismos esta orientada en esta oportunidad a la sustitución de cojinetes mecánicos basados en rodamientos o bocinas para ejes la diferencia es que los cojinetes de levitación permiten al eje girar a muy altas velocidades evitando el desgaste y el uso de lubricantes.


El objetivo es analizar el sistema de control configurable basado en FPGA, ya que esté es quien se encarga de la sustentación del eje para que no se produzca el choque con las paredes de los cabezales.


Un cojinete de levitación magnética es un dispositivo donde el rotor se encuentra en equilibrio sin contacto mecánico con el estator, bajo la influencia de fuerzas magnéticas creadas por electroimanes dispuestos en el estator (Figura 1). La posición del rotor se mide a través de detectores o sensores que registran constantemente su posición [2]. El sistema de control genera en función de los desplazamientos que sufra el rotor en torno a una posición de equilibrio, una señal que se aplica a los amplificadores que gobiernan la corriente que circula a través de los electroimanes y que tenderá a devolver el rotor a su posición de equilibrio




Figura 1 El Nucleo Magnetico


FIGURA 1 - EL NÚCLEO MAGNÉTICO


La estructura interna del cojinete de levitación incluye dos bobinas electromagnéticas como las vistas en la figura 2 para el posicionamiento radial del eje, un grupo adicional de bobinas es el responsable de producir el campo magnético que mantiene la posición axial del eje. Un esquema de la distribución de los elementos del cojinete de levitación puede verse en la figura 2, donde son señalados cada uno de los elementos que lo componen incluyendo la posición de los transductores de posición.


Figura 2 Esquema del Cojinete de Levitacion


FIGURA 2 - ESQUEMA DEL COJINETE DE LEVITACIÓN



  1. Cojinetes de levitación radial.

  2. Cojinetes de levitación axial.

  3. Cojinetes auxiliares lubricados en seco.

  4. Transductores de posición.

  5. Eje.


El campo magnético generado por las bobinas de los cojinetes debe actuar solo sobre la superficie del eje en rotación, esta superficie debe poseer características particulares. Esta superficie debe tener una permeabilidad tal que los campos magnéticos generados por las bobinas no atraviesen la sección del eje, solo deben actuar sobre la superficie y de manera local en las adyacencias del campo formado por la bobina y la superficie, su efecto de magnetización debe desaparecer instantáneamente. Los campos magnéticos no deben ser tan grandes que produzcan alteraciones sobre los campos generados en las adyacencias, pero deben tener potencias bastante altas por lo que se presume que el diseño permite una extrema concentración de las líneas de fuerza en un área muy pequeña.


Las figuras 3 y 4 muestran un esquema del fenómeno hipotéticamente descrito para los cojinetes radiales y axiales respectivamente.


Figura 3 Esquema del Cojinete de Sustentacion Radial


FIGURA 3 - ESQUEMA DEL COJINETE DE SUSTENTACIÓN RADIAL


Figura 4 Esquema de Cojinete de Sustentacion Axial


FIGURA 4 - ESQUEMA DEL COJINETE DE SUSTENTACIÓN AXIAL


Las corrientes de cada bobina del núcleo son manejadas de forma independiente por el sistema de control que esta asociado a un sistema de potencia, de esta manera producir campos magnéticos que actúan sobre la superficie del eje, generando las fuerzas correctivas de la posición del mismo en los 360º de los cojinetes, contrarrestando los efectos de la fuerza gravitacional terrestre y los posibles movimientos producidos por la rotación y desbalanceo. Por ejemplo los cojinetes de levitación empleados en las maquinas fresadoras, permiten generar fuerzas dinámicas que minimizan los efectos de las fuerzas laterales producidas por las herramientas de mecanizado.


Todo el lazo de control se cierra en un Control Numérico por Computadora (CNC), las especificaciones técnicas de los transductores de posición de los ejes no tienen referencia, aunque puede suponerse que estos son electromagnéticos, ultrasónicos o láser. Adicionalmente se agrega al sistema de control un sensor de rotación de tipo absoluto con protocolo ENDAT de 13 bits para detectar la dirección de rotación y la velocidad. Las señales producidas por el encoder pueden verse en la figura 5.


Figura 5 Senales del Encoder


FIGURA 5 - SEÑALES DEL ENCODER.


2.- ¿Por qué usan FPGA?


El diseño de un sistema de control electrónico con la velocidad y desempeño necesario para una aplicación de este tipo requiere el uso de DSP y conversores que podrían exceder los costos para el desarrollo de un sistema económico. Aunque la construcción con hardware discreto fuese posible el resultado final no sería un sistema útil en diversas aplicaciones.


Los avances de la microelectrónica y los dispositivos reconfigurables extendieron el horizonte al permitir la posibilidad de que con el mismo dispositivo se pueden probar múltiples configuraciones de los DSP's sin la necesidad de tenerlos todos, generar procesadores de pequeña escala con prestaciones muy específicas que permiten la ejecución de algoritmos de control.


Una aplicación como el control de los cojinetes de levitación requiere necesariamente de diseños muy particulares que no pueden conseguirse en el mercado, pero los dispositivos genéricos reconfigurables permiten que el diseñador cree sus propios algoritmos hasta lograr un desempeño deseado.


La preferencia por los FPGA's es porque en conjunto con las nuevas herramientas ISE y la combinación de diversos modelos de configuración de sus elementos, no solo permiten emular el funcionamiento de otros dispositivos avanzados del mercado sino también la implementación de algoritmos como los utilizados en bloques de control tales como PID's combinados con elementos de logica difusa y algoritmos genéticos de control industrial.


3.- Criterio de Diseño del FPGA


El diseño del FPGA fue realizado en el lenguaje VHDL sintetizable [2], el programa tiene dos interfaces, con los periféricos y con la CPU. La distribución de los bloques configurados internamente en el FPGA pueden visualizarse esquemáticamente en la figura 6.


Figura 6 Bloques Internos Configurados en el FPGA


FIGURA 6 - BLOQUES INTERNOS CONFIGURADOS EN EL FPGA


La interfaz con los periféricos permite la programación de los mismos y la lectura de sus valores. Los periféricos más importantes son los lectores de encoders y sus contadores, los convertidores analógicos y las entradas y salidas digitales.


La interfaz con la CPU consiste en el acceso a los diversos elementos de la FPGA entre los cuales están:



  • Contadores de los encoders.

  • Entradas y salidas digitales.

  • Registros de control.

  • Memoria de puerto doble con las entradas analógicas.

  • Fifo con los valores para monitorización (entradas analógicas antes y después del filtro, salidas analógicas y señales digitales).


Dentro del FPGA se implemento un core que ejecuta el algoritmo de control para un PID configurable. El lazo de control formado es único para los cinco cojinetes y va ejecutándose de forma sucesiva sobre las señales de entrada disponibles desde los conversores A/D a una frecuencia de 100 Khz. Los valores son procesados por el bloque PID implementado, que devuelve los valores a las salidas a través de los conversores D/A, cada vez que se procesa un cojinete, el sistema carga al lazo de control el valor del siguiente cojinete. Al terminar espera a que se obtengan nuevos valores en las entradas para volver a iniciar el ciclo.


4.- Herramientas y Equipos Utilizados


El sistema de control analizado está construido entorno a un FPGA y un CPU que opera con un sistema operativo propio de su fabricante. El FPGA utilizado es un XC2V1000-FG456 fabricado por XILINX, este modelo ha sido desplazado por nuevas versiones y no se utiliza para nuevos desarrollos.


El uso del CPU se hizo imprescindible tras el intento fallido de implementar un sistema embebido en el mismo FPGA con el uso de las herramientas del propio fabricante XILINX basadas en el procesador MicroBlaze. El CPU utilizado completamente separado del FPGA es un Coldfire MCF5282, procesador de 32 bits de Freescale Semiconductor, set de instrucciones tipo RISC con núcleo de 80 Mhz [3]. Uno de los sistemas operativos compatibles con este microprocesador es uClinux [4], maneja los servicios para el usuario, drivers para puertos de entrada y salida además de gestionar los recursos del microprocesador y los protocolos de red.


La tabla 1 resume la utilización del FPGA, mostrando el core del lazo de control y el resto codificado en VHDL, el elevado consumo de memoria se debe a la fifo de depuración y aproximadamente la mitad de los slices se utilizan para los contadores de los encoders que no se utilizan en esta aplicación.


Tabla 1 Uso del FPGA


TABLA 1 - USO DEL FPGA


El sistema de control desarrollado es capaz de controlar la levitación de 6 ejes utilizando un mismo controlador multiplexado en el tiempo. El tiempo total de ejecución de lazo de control por eje es de 24 ciclos de reloj, están distribuidos así: 16 para el filtro, 5 para el PID y 3 para sincronizar las entradas y las salidas. El reloj del sistema utilizado en el diseño es de 40 Mhz, el tiempo de ciclo es de 25 ns, el tiempo utilizado en la acción de control de cada eje es de 0,6 us lo que permitiría controlar hasta 16 cojinetes de forma secuencial.


Algunos de los accesorios incluidos en la placa del sistema de control son:



  • Tarjeta de entradas y salidas digitales optoacopladas.

  • Tarjeta de salidas digitales mediante relés de contacto seco.

  • Fuentes de alimentación.


La figura 7 y 8 muestran una vista del diseño final del controlador configurable montado en una caja de uso comercial, los indicadores y demás elementos de conexión han sido dispuestos en la parte externa de la misma.


Figura 7 Vista del Montaje en la Caja


FIGURA 7 - VISTA DEL MONTAJE EN LA CAJA


Figura 8 Vista de la Tarjeta



FIGURA 8 - VISTA DE LA TARJETA ELECTRÓNICA


5.- Descripción de Herramientas de Software Utilizadas


Para la modelación y simulación de los cojinetes y el algoritmo de control fue empleado Matlab/Simulink, el algoritmo de control fue diseñado con la herramienta propia de Xilinx y sintetizado con System Generator también del mismo fabricante figura 9, obteniéndose un componente virtual (core) que posteriormente fue integrado al programa general del FPGA.


Figura 9 Esquema de Simulink


FIGURA 9 ESQUEMA DE SIMULINK


System Generator de XILINX añade unas herramientas a Simulink llamadas Xilinx Blockset una parte de su contenido puede verse en la figura 10, los modelos creados con los bloques de estas herramientas pueden ser sintetizados de forma automática para poder ser añadidos a un diseño superior VHDL del que solo se pueden ver las entradas y las salidas.



Figura 10 Libreria de Xilinx en Simulink


FIGURA 10 LIBRERIA DE XILINX EN SIMULINK


El lazo de control diseñado en Simulink puede verse en la figura 9, allí se incluye el filtro paso bajo a la entrada y la adaptación de las intensidades a la salida. Las constantes de control se obtienen de una memoria de doble puerto implementada en el FPGA sobre la que se escriben los parámetros de trabajo. Esto permite cambiar los parámetros sin necesidad de cambiar el lazo de control desde una aplicación de depuración la cual fue desarrollada utilizando la herramienta LABVIEW, una de las pantallas puede verse en la figura 11 donde los datos son actualizados constantemente utilizando una comunicación ethernet entre el PC y la tarjeta de control.


Figura 11 Pantalla de LabView


FIGURA 11 PANTALLA DE LABVIEW


Cabe destacar entre las limitaciones mas importantes presentadas por las herramientas utilizadas para la modelación fueron las operaciones de coma fija y los tiempos de simulación. Mientras que Simulink utiliza datos en coma flotante, los bloques específicos que genera la librería de Xilinx utilizan coma fija [2]. Implementar el manejo de datos en coma flotante en el FPGA resulta bastante complejo y utiliza execivos recursos del dispositivo.


Para resolver el problema la librería de Xilinx contiene dos bloques o pasarelas que permiten definir la frontera entre la parte de diseño que va a ser llevada al FPGA y la parte que utiliza los bloques propios de Simulink.


El diseño implementado en la FPGA esta gobernado por un reloj muy rápido, esto obliga a que simulink tenga que hacer numerosos cálculos para tiempos de simulación relativamente pequeños considerando un step size de 2,5e-08 correspondientes a 40 Mhz. Una prueba estándar de 0.5 Seg requiere 12 horas de simulación y considerando que la estabilización del eje en tiempo de arranque es de 1 S se concluye que el tiempo para simular un arranque completo es de 1 dia de simulación.


6.- Descripción del Diagrama de Bloque del Sistema General


El sistema está constituido por dos elementos principales, un FPGA con un core configurado de acuerdo a las necesidades de control, se encarga de ejecutar el algoritmo de control, de adquirir los valores de cada una de las entradas provenientes de los transductores de posición y los encoders además de manejar las variables controladas desde un conversor digital analógico, una CPU de 32 bits destinado a las comunicaciones con el sistema de supervición exterior y de gestionar la descarga del programa que define la configuración y funcionamiento del FPGA. El CPU funciona con un sistema operativo que le permite gestionar eficientemente sus propios recursos. El diagrama de bloques puede observarse en la figura 12.


Figura 9 Diagrama de Bloques del Sistema General


FIGURA 12 - DIAGRAMA DE BLOQUES DEL SISTEMA GENERAL


Entre los elementos manejados directamente por el FPGA se destacan:



  • Los contadores encargados de sincronizar las adquisiciones.

  • Los conversores analógicos digitales.

  • Los conversores digitales analógicos.

  • Las entradas y salidas digitales.

  • La interfaz intriseca destinada a las comunicaciones con el CPU.


El sistema de control incluye los modulos como interfaz de aquisición, un conversor analógico digital de 16 bits y para la interfaz de salida un conjunto de conversores digitales analógicos de 14 bits [2]. Ambos dispositivos están configurados dentro del core del mismo FPGA en conjunto con los periféricos de entrada y salida. Las características de ambos conversores determinan la resolución intrínseca de los sensores de posición y las salidas hacia los amplificadores de corriente de las etapas de potencia.


El sistema de control ofrece interconectividad utilizando dos canales de comunicación, uno vía RS232 y otro vía ethernet [2]. El canal RS232 se comunica con un ordenador en modo terminal, su función principal es la de depurar el diseño hardware y software de la propia plataforma. La red local se comunica con un ordenador auxiliar en el que se ejecuta un programa de monitorización desarrollado en Labview. La interconexión con la plataforma puede verse en la figura 13.


Figura 10 Canales de Comunicacion Conectados a Plataforma


FIGURA 13 - CANALES DE COMUNICACIÓN CONECTADOS A PLATAFORMA.


7.- Referencias

[1] http://www.tekniker.es/lineas_estrategicas/lineas_estrategicas.php?subsec=20&subsecn2=23, consultada 10/01/2008.

[2] J. Alayo, E. Fernández, E. Arceredillo, F. López, R. Calvo, Sistema Reconfigurable para el Control de un Cabezal de Levitación Magnética. Fundación Tekniker, SAAEI 05, 6 pag.


[3] MCF5282 ColdFire Microcontroller, Manual de Usuario, Rev2.3 11/2004.


[4] http://www.uclinux.org/ports/coldfire/, consultada 10/01/2008.