jueves, diciembre 20, 2007

Paso 16: Modelo matemático de la planta*

1 Introducción
El objetivo de éste apartado es el desarrollo, análisis y posterior simulación del modelo matemático del sistema. Para ello, debemos contar con un planteo lo más riguroso posible de la planta real, pero sin caer en un esquema que resulte complejo de implementar más adelante.

Por éste motivo, se toma el conjunto de ecuaciones que describen la dinámica del sistema para linealizarlas y aplicar herramientas de estudio para sistemas lineales, como la ubicación de los ceros y polos, calcular ancho de banda, ganancia de contínua, tiempo de subida y tiempo de establecimiento.

Finalmente, se contraponen la simulación del modelo lineal al modelo no lineal, con el objeto de verificar la linealización de las ecuaciones para pequeñas oscilaciones del péndulo.


1.1 Modelo Matemático
Por razones de espacio y tiempo, no detallaremos todos los pasos dados para hallar el modelo lineal invariante en el tiempo del sistema, sino que nos limitaremos a expresar el modelo matemático en espacio de estados. Cuando tengamos una versión definitiva del documento, publicaremos el texto completo.

Las variables de estados quedan expresadas como,


Modelo lineal e invariante en el tiempo definido como,


1.2 Características del sistema lineal a lazo abierto
A partir del modelo desarrollado, es preciso simular el comportamiento de la planta, con el fin de verificar que las ecuaciones que la describen son coherentes con la realidad.

Inicialmente, el estudio se basa en la dinámica de la planta a lazo abierto ya que la ubicación de sus polos y ceros en el plano complejo implican un ancho de banda, ganancia de continua, error de régimen permanente y demás características, que definirán el tipo de estrategia de control a emplear.

A continuación puede verse la simulación implementada en Simulink


1.3 Parámetros de simulación
Las constantes que se emplean en el modelo de la sección 1.1, especifican las matrices A, B y C de la ecuación de estados. Se deberá tener en cuenta que muchos de los valores expuestos aquí son arbitrarios y su único fin es el delograr una primera aproximación al sistema físico construido.

Va=24 Vcc Tensión nominal
mc=1.5 kg Masa carga
mt=20 kg Masa carro principal
R=0.065 m Radio polea
Jmp=5e-5 kg·m2 Inercia motor-reductor-polea
n=35.55 Reducción
L=1.2 m Longitud de la barra
Tm=0.16 seg Constante de tiempo motor-reductor-polea
Ra=3 ohm Resistencia armadura
K=0.03 Nm/A Constante par motor

Numéricamente,


1.3.1 Ancho de banda
Otra propiedad importante de la respuesta transitoria del sistema está dada por el ancho de banda. Con éste índice podemos saber qué frecuencias se filtrarán, como así también tener una noción de la sensibilidad de la planta a la variación de sus parámetros ([Kuo96], p.544).



-------------------------------------------------------------------------------------------------------------------------------------------
* Versión reducida e incompleta

lunes, agosto 20, 2007

Paso 15: El nombre de la Bestia

Todo proyecto, por inútil o preciado que sea, merece una etiqueta, un nombre que lo distinga, que permita identificarlo y decir: ¡Ahí está la cosa!. Hasta el momento, nos hemos referido al proyecto como Proyecto, con P mayúscula, y eso lo hacía algo del montón a pesar de considerarlo un bien invaluable desde hace más de un año (sí, más de un año).

Es así como, sin demasiadas discusiones ni intervenciones, hemos dado en llamar al Proyecto como BORA. Entonces sí, ahora podemos señalarlo e identificarlo por sobre el resto de los proyectitos que pululan por ahí, con algo de recelo y un poco más de orgullo.

Poniéndonos serios, BORA es un acrónimo que define los pilares fundamentales de nuestro trabajo final de carrera, y con ello nos referimos a "Control de Oscilaciones Bidimensional en Tiempo Real por Visión Artificial".

En el transcurso de los próximos días y semanas, iremos publicando información que abarcará los temas que definen al proyecto con el objetivo de servir como guía a futuros proyectos relacionados con el nuestro.

En caso de que les interese un novedoso fondo de pantalla, aquí dejamos uno para su deleite.


martes, junio 26, 2007

Paso 14: Avances estructurales. Diseños, cálculos y pruebas.

En este último mes hemos estado sumergidos en desarrollos teóricos en las áreas de Control y Mecánica del sistema. Partiendo de diseños físicos de la estructura y obteniendo numérica y experimentalmente diversos valores de interés, comenzó la primera etapa de identificación de la planta. Abordaremos este tema más en detalle en las sucesivas publicaciones, pero a modo introductorio puede mencionarse que, del resultado de la aplicación de diferentes leyes de la física clásica para la translación y rotación de un cuerpo (conocidas como Ecuaciones Mecánicas) y mediante el estudio del comportamiento eléctrico de los motores (Ecuaciones Eléctricas), se obtuvo el primer modelo del sistema. Este mismo fue sometido a simulación a lazo abierto y se han sacado las primeras conclusiones.
En cuanto a los avances mecánicos, se efectuaron refuerzos mediante la fabricación de cuatro escuadras que fueron montadas en cada extremo de la estructura de perfiles reduciendo así notablemente las oscilaciones. Para su sujeción, fue empleada la misma metodología que se venía utilizando, piezas deslizantes de juego reducido por las ranuras de los perfiles, que poseen la cualidad de aumentar el cuerpo del material para la sujeción y facilitar el armado.

Tras largas deliberaciones sobre cual sería el sistema de tracción más eficiente a emplear y que cumpla con los requisitos ya mencionados aquí, nos hemos decidido por utilizar, para ambos movimientos, transmisión por correa dentada. En particular, paso 8M (un diente cada 8mm).

En cuanto al sistema de deslizamiento, para el movimiento longitudinal (aquel que transporta el puente), se fabricaron seis ruedas de Grilon acanaladas cuyo diseño hizo hincapié en que, al rolar, se evitasen acuñamientos entre la rueda y la guía, y se reduzcan movimientos axiales indeseados. Finalmente, estas piezas harán que el conjunto se desplace sobre cuatro barras de acero inoxidable como se muestra en la foto. El motivo de la elección de este material para emplearlo como guía es sencillo de deducir. Debíamos utilizar uno tal que no presente impurezas en su superficie que generen un coeficiente de roce elevado. Su costo es considerablemente reducido si se lo ha de comparar con una barra de acero templada y rectificada. Para su sujeción, fabricamos dos piezas por barra que fueron colocadas en los extremos y, mediante piezas deslizantes, fijadas a la perfilería.

Para los diseños del puente, hemos adquirido recientemente dos placas de aluminio de 15mm de espesor, en las cuales serán fijadas el sistema de ruedas acanaladas. Con una disposición de dos ruedas superiores y una inferior por lado, donde cada una ha sido montada sobre un eje y rodamiento. A modo de visualizar su terminación y rodadura, hemos montado el conjunto sobre un modelo en madera. Esta experiencia nos permitió considerar diversos factores desconocidos hasta el momento. Evaluamos medidas finales, escuadras y flexiones, entre otras cosas.

Pero quizás, el ensayo más importante para el equipo, fue una prueba de pesos. Nuestra inquietud era saber en la práctica, si nuestros motores serían capaces de mover el puente proyectado. Conocíamos mediante cálculos teóricos, el peso aproximado de éste dependiendo de los materiales que se emplearían y las dimensiones de cada uno, logrando un peso total del puente de 20Kg aproximadamente. Debido al hecho de que el motor a emplear para el movimiento longitudinal posee un número de vueltas superior al máximo permisible que consideraremos, será necesario fabricar una caja de transmisión con dos finalidades pre-establecidas: Disminuir la velocidad de desplazamiento del puente y aumentar el torque motor en el eje de la polea responsable del movimiento. Los detalles de ésta caja, que actualmente se encuentra bajo construcción, serán dados oportunamente. Lo que queremos denotar aquí es que se logrará una velocidad máxima de desplazamiento del puente de 300 mm por segundo (con el motor girando a su velocidad nominal de 90 RPM), y obteniéndose una fuerza de empuje tangencial de 5,5 Kg.
Volviendo a la experiencia de los pesos, mediante esta se comprobó que aplicándole una fuerza en el sentido del movimiento de 3,5 Kg, era capaz de desplazar un puente de 32,4 Kg (un 62% más que el hallado con una fuerza menor a la calculada).
Como se mencionó, nos encontramos desarrollando las dos cajas de transmisión del proyecto, como así también la estructura final del puente, es decir todo lo que concierne a las guías, soportes y el carro de desplazamiento transversal. Además, continuamos efectuando simulaciones en pc del comportamiento del conjunto buscando, de alguna manera, darnos seguridad en nuestros diseños e implementar un sistema de control adecuado.

jueves, mayo 10, 2007

Paso 13: Sobre el control, los controladores y lo controlado

Cuando empezamos éste proyecto habíamos dado por descartado el uso de PCs para realizar el control de la planta o sistema. Sin embargo, luego de haber analizado repetidas veces la arquitectura de control empleando microcontroladores, nos encontramos con severas limitaciones de cálculo, por lo que pensamos en otras variantes al esquema propuesto inicialmente.

En el comentario anterior (Paso 12), hicimos una reseña de los tres sistemas operativos de tiempo real que teníamos a disposición y cuál terminamos adoptando. A continuación, damos un breve repaso por los distintos temas que abarcamos hasta la fecha.

Tiempo Real
La búsqueda fue orientándonos a una herramienta de código abierto u open source, de tiempo real, con buena y accesible documentación, etc. Hasta que dimos con RTAI (Interface de Aplicación de Tiempo Real) y comenzamos a investigarlo y experimentar exhaustivamente, con algunos muy buenos resultados.

Dado que contamos con escasa (nula) experiencia con Linux, buscamos versiones booteables o LiveCDs que incluyan RTAI para evitar la recompilación del kernel y aprender comandos básicos de Linux evitando su instalación definitiva en la máquina.

Una de las mejores versiones que encontramos fue una distribución Knoppix 5.0 con RTAI 3.4 y kernel 2.6.17, que incluye la biblioteca Comedi y varios ejemplos de aplicación. Ésta se puede encontrar en PmWiki y en http://www-lar.deis.unibo.it/people/gpalli/files/rtai_knoppix.iso

Cuando cumplimos unas cuantas horas de vuelo, probando y errando, instalamos el sistema operativo y comenzamos el desarrollo del control, o los primeros esbozos.

Un esquema de la arquitectura de control se puede ver a continuación, donde una computadora realizará el control propiamente dicho, mientras la otra captura las imágenes de video y envía, por el puerto serial, la posición estimada de los objetos bajo la plataforma.


Fig. 1: Esquema de control en Tiempo Real con RTAI.

Placa Adquisidora
El control por sí mismo no tiene sentido si carece de comunicación con el exterior. Para ello es necesario la placa adquisidora, que se encarga de obtener la señal de los sensores y enviar órdenes a los actuadores, para que la acción tenga efecto.

En nuestro caso, nos conformamos con una placa adquisidora de origen nacional, marca microAXIAL, modelo ADQ12-B.

Entre sus características, podemos contar con:

- Conversor de 12 bits.
- 16 canales desbalanceados y 8 diferenciales, 10 useg de conversión.
- 8 salidas y 5 entradas digitales.
- Contador de 16 bits y Pacer de 32 bits.
- 2 entradas de interrupciones enmascarables.

Lamentablemente, los recursos disponibles impiden tener un driver para ésta placa que sea compatible con RTAI, por lo que habrá que diseñar uno a partir de la biblioteca ofrecida por Comedi (Linux Control and Measurement Device Interface).

Aun así y a fin de evitar semejante embrollo, desarrollamos todos los ejemplos iniciales con la dirección de memoria del puerto a la que apunta la placa, a través de las funciones outb() e inb().


Programación
La mejor forma que encontramos para aproximarnos a la estrategia de control final, fue desmenuzando las diferentes tareas a ejecutar por el controlador en:

Salidas Discretas: PWM y pulsos.
Entradas Analógicas: Posición angular.
Entradas Discretas: Encoders.
Control.
Comunicación.

Hasta el momento, los resultados obtenidos con RTAI nos permiten tener, cómodamente, un período de interrupciones de 100 useg (10 KHz), aunque puede ser reducido aún más.

Otras pruebas en las que funcionaron tres tareas de tiempo real en un mismo módulo, arrojaron un tiempo mínimo de interrupciones de 40 useg (25 Khz).

Ahora podemos enfocarnos en el diseño definitivo del control mientras terminamos de construir los carros que van montados sobre la estructura y que conforman la planta, o el sistema, a controlar.

martes, mayo 08, 2007

Paso 12: Algunos cambios y comentarios previos

Comprendemos que la página ha tenido escasa actualización desde marzo pero el proyecto en los últimos dos meses ha ido consumiendo cada vez más tiempo hasta abarcar el 90% de nuestro día aprovechable.

Sin embargo no son pocas las cosas que han sucedido, y ello tiene que ver con cambios sustanciales en el desarrollo del trabajo y las ideas que tenemos al respecto.

En primer lugar, desde principios de marzo sumamos la fuerza de un tercer integrante: Fabián Andrés Dipane.

Una sesión con el equipo completo.

Con él vamos a tener un importante aporte en el diseño y construcción de la mecánica del sistema, como así también en la electronica y programación que falta terminar. Próximamente, Fabián irá agregando comentarios a la página explicando detalles sobre el proyecto.

En segundo lugar, nuestra idea de emplear microcontroladores de 8 bits fue reemplazada por el uso de un Sistema Operativo en Tiempo Real (RTOS, en inglés) junto a una placa adquisidora de marca nacional. Las principales implicaciones de éste cambio tuvieron que ver con el estudio y familiarización con el nuevo sistema operativo, además de un comprensión intensiva y extensiva de los paquetes de tiempo real existentes.

De ésta forma, buena parte de febrero se invirtió en la búsqueda y selección del sistema operativo en cuestión. De allí surgieron 3 variantes posibles:

- QNX
- RTLinux
- RTAI

Finalmente, encontramos en RTAI la opción más sólida al poder acceder a una herramienta en constante desarrollo y, sobre todo, GRATUITA. Además, cuenta con RTAI-Lab, un paquete para desarrollar controles con diagramas de bloque sin tener que salir del ambiente Linux.

Con todo ésto en mente, los dos meses que siguieron a febrero fueron destinados casi por completo a la finalización de la estructura de la planta y al estudio de RTAI como plataforma de programación.

sábado, marzo 17, 2007

Paso 11: Estructura de Perfiles de Aluminio Terminada

En una entrada anterior, les comentamos sobre el viaje realizado a la ciudad de Rosario con el objeto de adquirir los perfiles de aluminio que se emplearían para confeccionar la estructura. Sobre ella se montarán los rieles para el desplazamiento lineal del conjunto, transmisiones, motores, actuadores y cámaras. Mencionamos además, ideas de costos en comparación con materiales importados y manifestamos también ventajas y desventajas. Ahora bien, lo que quizás no teníamos en cuenta a la hora de emplear este tipo de materiales, sería el costo de los accesorios para su ensamble. Para dar una idea estimativa, entre uniones, escuadras, tornillería, zócalos, patas y tapas, el precio igualaría el monto de los 18 mts de perfiles. El problema era claro, y la solución también, fabricar nuestras propias uniones y accesorios.
Surgieron varios diseños, sin embargo no lográbamos aquel que cumpla con ciertos requisitos propuestos, fue entonces cuando hallamos el sistema definitivo. La idea tomaba como base la confección de piezas capaces de deslizar sin juego en las ranuras de los perfiles y que unas a otras (empleando tornillería allen por su grado de apriete), habrían de combinarse de manera de obtener uniones firmes, que mantengan escuadrado al conjunto, cuidando en todo momento un buen nivel de terminación.
Fue así que, en la segunda semana de Febrero, comenzó la confección de las mismas. Sobre un total de 48 piezas fabricadas, 6 procesos de mecanizado en torno, limadora, agujereadora radial, lijadora banda y convencional, sierras y Blasting y 54hs de construcción, finalizó ésta etapa con resultados por demás exitosos.
Sin considerar los perfiles, la estructura cuenta con un total de 80 piezas, cada una de ellas enumeradas por conjuntos para obtener un correcto y fácil ensamble. Para dar por acabada ésta etapa, deberán de construirse por estos días, 4 escuadras y 8 piezas para su sujeción.
A continuación les mostraremos distintas imágenes de algunos procesos empleados:
Torneado: Partiendo de una varilla roscada, se efectuó el frenteado del plano a emplear, para luego, con una mecha de centro y la contrapunta, realizar el agujero guía de mecha.

Posteriormente se hizo un orificio de 50mm de profundidad con una mecha de 6,75mm para, finalmente, roscar en 5/16". Esta pieza una vez terminada se alojará dentro del perfil previamente roscado y será utilizada para la unión de dos piezas.

Limado: Tras la adquisición de una barra de hierro de 1" por 1/2", se empleó la limadora para su desbaste y la confección del destalonado necesario para obtener un tipo de pieza que deslice, sin juego, por las ranuras de los perfiles de aluminio. El proceso consistía en rebajar la cara mayor 7mm, luego realizar trazados a lo largo de la barra y finalmente efectuar los rebajes donde alojarán, una vez terminadas y montadas las piezas, las cabezas de los tornillos de sujeción. El inconveniente a la hora de emplear este tipo de máquina es la necesidad de obtener un adecuado paralelismo entre la herramienta y la pieza.

Una vez que se obtuvo la pieza, la misma fue marcada y agujereada en dos etapas en una máquina radial. La primera parte consiste en la realización del orificio pasante de los tornillos, y en la segunda parte, confeccionar el alojamiento de las cabezas de los mismos. Finalmente la pieza fue cortada para obtener de ella las uniones. Además, para un número más pequeño de partes, fue necesario una tercera etapa de agujereado y posterior roscado.

La imágen siguiente muestra el sistema de unión y su cuidada terminación:

Y he aquí la estructura montada:

La estructura de perfiles cuenta con un largo propuesto de 2,10 mts, ancho 1,57 mts y alto 1,28 mts (dependiendo de la regulación de altura de las patas). Estas dimensiones no son arbitrarias, ya que lo que realmente nos interesa, son las medidas efectivas de desplazamiento (2 x 1,5 x 1,2). Como se ha mencionado, por estos días estaremos construyendo las escuadras restantes, como así también el sistema de desplazamiento lineal. Mientras tanto, el equipo se encuentra investigando diferentes entornos de tiempo real para el manejo del movimiento planar.

Un gran reconocimiento

Ha pasado tiempo desde la última vez que publicamos, no obstante hemos avanzado de manera significativa en estos meses. Muchas novedades, logros y giros inesperados ocurrieron, o estamos atravesando, por estos días. Pero antes de hacerlos partícipes de los mismos, queremos o al menos es nuestra intención, dedicar esta publicación a un amigo que, de manera constante y desinteresada, colabora con nosotros brindándonos su experiencia y vastos conocimientos sobre diversos temas que este proyecto involucra. El agradecimiento de hoy es para Gastón García Franchi.

Esta persona actualmente está desarrollando, en conjunto con otro muy amigo nuestro, Víctor Daniel Medina, su proyecto final de carrera. Una propuesta innovadora y por demás interesante, que encierra y combina temas poco frecuentes abordados en trabajos anteriores. Su proyecto, no será uno más, como pionero, servirá de guía para muchos otros que quieran emplear dicha tecnología en la universidad, y entre ellos nos encontramos nosotros.


Actualmente, además, es ayudante de la materia Computadores II, cuyo profesor es nuestro Director de Proyecto, el Licenciado Germán Osella Massa.

Por la ayuda en la cursada, por lo de diciembre, por las horas de asesoramiento en chat, por estar.... siempre, mil gracias Gastón por todo.

Desde aquí les deseamos el mayor de los éxitos con ese, Gran Proyecto.

viernes, enero 26, 2007

Paso 10: Programador armado

Ya quedó listo el programador, aunque aún no fue probado. En éste momento no tengo tiempo de dar detalles sobre su funcionamiento. Sin embargo, pronto habrá un explicativo sobre la electrónica y la programación del micro para su mejor entendimiento.

Mientras tanto, dejo para su deleite unas imágenes del dispositivo. Que lo disfruten.



jueves, enero 18, 2007

Paso 9: Programador, encoder y fuentes

Esta semana se dió comienzo al diseño de la electrónica presente en el proyecto. En principio tenemos tres frentes diferentes a desarrollar:
  • Programador del microcontrolador.
  • Interface para encoder incremental.
  • Fuentes de alimentación para los diversos circuitos.

Comenzando por el programador, utilizaremos un programador serial basado en el ATTiny2313 o similar. Para ello se diseñó el circuito impreso y sólo falta ensamblar los componentes necesarios.

En segundo lugar, poseemos un encoder incremental marca Autonics modelo ENB-100, de 100 pulsos por vuelta, alimentación entre 5 y 28 Vdc, y acople directo a ejes de 8 mm de diámetro. Posee salidas A, B y Z, por lo que A y B se encuentran en cuadratura y Z es la marca de referencia.

Durante los próximos días se armará una placa para aislar eléctricamente las salidas del encoder
mediante optoaisladores (seguramente el CNY74-4), aunque luego deberemos tener en cuenta el ancho de banda de trabajo, ya que podría ser un limitante.

Entonces, utilizando un pequeño driver para el puerto paralelo por medio de Matlab, haremos algunas pruebas en el entorno de Simulink con nuestro motor de contínua para obtener, entre otras cosas, una identificación precisa del modelo del motor y algunos parámetros adicionales.

Respecto de las fuentes de alimentación, debemos pensar en algo apropiado para la alimentación de los motores ya que no podemos correr el lujo de quemarlos por exceso de corriente. Además, están los sensores, encoders y microcontroladores, por lo que un estudio detallado sería conveniente para evitar la mayor cantidad de errores posibles.

Con todo ésto por delante, el verano no sólo será entretenido sino que también, algo más bien
ajeno...

Paso 8: Adquisición de Perfiles de Aluminio

Con un retraso de dos meses, el 28 de diciembre adquirimos finalmente la perfilería de aluminio que será empleada en la construcción de la estructura de soporte de la plataforma.

Las principales dificultades que encontramos para adquirir el material radicaron tanto en la oferta como en el costo. Por un lado teníamos la opción de perfiles importados y muy costos, pero disponibles. Por el otro, pudimos dar sólo con una empresa nacional dedicada a la producción de perfiles similares hasta cuatro veces más económicos, pero cuya venta es restringida y escasa.

Tras dialogar con ésta empresa, tuvimos acceso a la compra de los perfiles. Nos recibieron muy cortesmente en su oficina de ventas (situada en la misma fábrica).
Ahora es cuestión de armar la estructura y empezar con la etapa que más nos interesa y que es confeccionar la planta, luego realizar una identificación, para finalmente implentar los controles.


A continuación, detallamos los fundamentos y características que nos llevaron a realizar una apropiada decisión.

Objetivos

Mencionamos algunos motivos que fueron planteados para la elección de los perfiles:

  • Soporte.
  • Sencillez en el montaje.
  • Vista, estética.

Aun así, encontramos ciertas desventajas, considerando que éste proyecto es meramente demostrativo y no un prototipo para su futura comercialización. Entre ellas están:

  • Precio
  • Piezas adicionales específicas de cada perfil
  • Presencia en el mercado

Se concluyó que las ventajas presentes en los perfiles de aluminio fueron significativas para su empleo, mientras entre que las desventajas pueden resolverse por caminos alternativos.

Características

Los perfiles de aluminio adquiridos son extrusionados y poseen, en su versión pesada, 1.68 Kg por metro y vienen en barras de 6.05 m. Son de sección cuadrada con 44.7 mm de lado.
Se compraron 3 barras enteras con las que construiremos el perímetro donde se contruirá las guías de movimiento, las patas de soporte y refuerzos adicionales para evitar flexiones y mantener el conjunto escuadrado.