jueves, diciembre 20, 2007
Paso 16: Modelo matemático de la planta*
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
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 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.
jueves, mayo 10, 2007
Paso 13: Sobre el control, los controladores y lo controlado
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.
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
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.
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
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
Mientras tanto, dejo para su deleite unas imágenes del dispositivo. Que lo disfruten.
jueves, enero 18, 2007
Paso 9: Programador, encoder y fuentes
- 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
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).
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
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.