f Proyecto: Sistema de navegación por inercia de cohete ~ Ingenieria a nivel industrial

Visita mi canal de youtube

domingo, 16 de julio de 2017

Proyecto: Sistema de navegación por inercia de cohete

Introducción

¿Era eso ... un proyectil? ¿un cohete? Un misil [XXXXX]? Era un sistema de guía de paracaídas controlado dinámicamente buscando su objetivo.

El propósito de este proyecto fue diseñar un sistema de guía de paracaídas controlado dinámicamente utilizando un microcontrolador Atmel ATmega32. Se construyó un conjunto de hardware de aviónica y se programó software además del vehículo de lanzamiento de cohetes modelo de tamaño mediano. Para este proyecto, tratamos de demostrar un sistema de control de orientación asequible que llevó y aterrizó una carga útil científica en un sitio específico. Para lograr esta tarea construimos un cohete y unimos el microcontrolador a una serie de sensores para obtener datos de vuelo. Los datos del sensor determinaron donde el cohete está en todo momento (y fue responsable de ajustar la carga de eyección para el paracaídas en el apogeo). Después de abrir el paracaídas orientable por encargo, se usaron dos motores paso a paso para guiar el cohete a su destino (donde comenzó).



Fondo

Durante las últimas décadas, se ha invertido en la investigación y desarrollo de varios sistemas de control de paracaidismo para mejorar la precisión de las caídas de carga. Los paracaídas de carga, a menudo utilizados por las organizaciones militares y humanitarias para suministrar cargas útiles como alimentos, municiones y equipo, son esencialmente no dirigibles. Una vez que la carga es liberada de la aeronave, no hay manera de controlar su trayectoria de vuelo, que depende en gran medida de las diversas condiciones atmosféricas. Los organismos de defensa y los programas espaciales han estado tratando de construir sistemas de control de paracaídas de carga no tripulados que sean asequibles y altamente precisos para sus cargas útiles científicas. Estos sistemas a menudo utilizan receptores GPS, compases magnéticos, sensores de navegación, IMU, y sistemas de rastreo de RF junto con paracaídas, pryos, airbags inflables y / o diseños aerodinámicos de deslizamiento.



Metodología

Mediante el uso de acelerómetros y giroscopios, pudimos determinar la aceleración, la velocidad, el posicionamiento y la velocidad angular del sistema de liberación, los cuales fueron calculados en tiempo real por el microcontrolador. Utilizamos tres acelerómetros de alta precisión de 1 eje de 8 g (probados en Freescale) y un giroscopio de velocidad de 150 grados / s (tomados de Analog Devices). Los acelerómetros se utilizaron para determinar las aceleraciones xyz en relación con la posición actual del cohete. El girocompás nos proporcionó la velocidad angular. Con estos cuatro sensores, pudimos determinar nuestra verdadera ubicación y rumbo. La rotación con respecto al tono y el rollo se consideró insignificante, que agregó poco valor, pero la gran complejidad a poner en ejecución. La dirección está hecha por dos motores paso a paso, que controla los toldos del paracaídas dirigible por encargo. La dirección es similar a un cielo-los buceadores que controlan un paracaídas del parafoil del aire del ram-aire togging los dosel izquierdos y derechos para girar y girar, para conseguir al sitio deseado del aterrizaje. Los motores paso a paso utilizarán la retroalimentación del sistema de control de navegación para controlar la dirección de la carga útil. Al aterrizar los datos se extrajeron de la EEPROM del microcontrolador y se analizaron utilizando MATLAB.
Las matemáticas y la ciencia detrás de todo

Desde el aspecto físico, la dinámica de los paracaídas que afectan la guía y control es un sistema de dos cuerpos conectados por líneas de suspensión. Aunque el peso del paracaídas puede ser pequeño en términos de material físico y peso de carga útil, en realidad actúa como si tuviera una masa mucho mayor debido a la inestable aerodinámica "masa aparente y términos de inercia". (Documento AIAA, PV1995-1537).

Para este proyecto se utilizó una rampa simplificada de ram-air. Los paracaídas de aire comprimido complicados se utilizan para el paracaidismo por los zambullidores del cielo. La forma rectangular con voltear toldos le da un gran control horizontal. No hay control vertical (depende únicamente de la gravedad y el viento). Todos los conductos de aire de ram-air están diseñados para flare por "stalling" a grandes entradas de conmutación. Si estos niveles de entrada se mantienen, las oscilaciones de lanzamiento a menudo se acumulan. La figura 1 muestra un paracaídas dirigible de aire ram-air típico con los ejes del modelo y las fuerzas definidas. Existen varios programas comerciales que pueden calcular el modelo de seis ejes de la carrocería.

Calculando la fórmula para este sistema dinámico de control de retroalimentación era demasiado difícil de hacer. Hay simplemente demasiadas variables (coeficiente de arrastre, centro de gravedad, centro de presión, servo respuesta en función del par, la velocidad de la corriente, la inclinación actual en el paracaídas, etc.). Sin embargo, como tenemos los datos en vivo y la capacidad de memoria para rastrear el sistema desde el lanzamiento, podemos actualizar constantemente nuestra posición actual y los encabezados. Los datos que tenemos son aceleración en los ejes x, y y z junto con la velocidad angular alrededor del eje z. La velocidad relativa y la posición se pueden obtener mediante la integración. La verdadera aceleración, velocidad y posición se obtienen a través de una traducción de rotación usando álgebra matricial.


Para un lanzamiento típico, los valores iniciales mientras están sentados en la plataforma de lanzamiento serán 0 g para los ejes x e y, -1 g para el eje z y 0 velocidad angular. Antes de cada lanzamiento, todos los sensores fueron recalibrados. Una vez que se lanzó el cohete, se actualizó la aceleración del eje z, junto con su velocidad de z dependiente de la integración y la posición z. Durante el proceso de lanzamiento se esperaban cambios mínimos en la velocidad x, y y angular. Cuando la velocidad z pasó de positiva a negativa, se disparó la carga de eyección (asumiendo que se cumplían todas las condiciones de inhibición de seguridad). Una vez que salió el paracaídas, la aceleración, la velocidad y el posicionamiento del eje z se descuidan, ya que hay controles mínimos sobre la velocidad de descenso. Los verdaderos valores x e y se obtienen después de una rotación de translación usando el giro de velocidad. (Consulte la sección Software para los algoritmos de cálculo - vea la sección del verelet)

Se utilizaron dos motores paso a paso para controlar la fase de descenso. Cada uno de los motores controlaba uno de los toldos. Usando el algoritmo de control paso a paso (vea la sección de Software), el motor paso a paso arrancará en uno de los toldos apretando y soltando el motor. El motor arrancado actuará como el pivote para el movimiento de giro. Por lo tanto, al tirar, el encabezado se ajustó consistentemente, dirigiéndose hacia el sitio de aterrizaje objetivo.

Impacto social

El cohete que se construyó cumplió con la regulación de la FAA y la NAR. El cohete para este proyecto no pesó más de 1.500 gramos (53 onzas) al despegar y no contendrá más de 125 gramos (4.4 onzas) de propulsor o 320 N-sec (71.9 libra-segundos) del impulso total. La Tabla 1 muestra las dimensiones de campo requeridas para cada clase de motor utilizado.


Para la demostración, se cumplieron todos los parámetros anteriores. El cohete utilizado fue de 52 onzas y el impulso total de para Estes E9 motor fue de 121,7 Ns. Este proyecto cumplió con todas las leyes de la Administración Federal de Aviación (FAA) que rigen el uso del espacio aéreo y cualquier otra ley federal relacionada con el uso del espacio aéreo, material combustible / inflamable, códigos de seguridad, directrices y procedimientos para construir, probar y volar el modelo Cohetes Los procedimientos y normas de seguridad de la Oficina de Alcohol, Tabaco, Armas de Fuego y Explosivos (BATF) y la Asociación Nacional de Cohetes (NAR) se utilizaron para el diseño de vuelo y operaciones.

Aunque hubo ciertas preocupaciones ambientales con la construcción de un cohete que incluye los efectos de los humos de los diferentes productos químicos que vamos a utilizar (epoxi, fibra de vidrio, pintura en aerosol, etc); Sin embargo, todas las fases de la construcción del rocketry fueron terminadas en un sitio fuera del campus que resuelve todos los requisitos apropiados de la ventilación. Toda la construcción terminada en el laboratorio era eléctrica.

La barra de lanzamiento fue construida con una guía de "carril y la estación de lanzamiento se encuentra a más de 50 pies de distancia de la plataforma de lanzamiento.

Este proyecto tiene varias preocupaciones de seguridad; Sin embargo, hay muchos pasos de mitigación que habrán implementado para reducir el riesgo al mínimo. En cuanto a las consideraciones legales, hemos derivado la mayor parte del código por nuestra cuenta, modificado versiones de proyectos antiguos, o obtenidos de sitios con licencia pública general. Dado que no se utilizó ningún RF en este proyecto, por lo tanto, no hay que tener en cuenta las regulaciones de la FCC. Además, seguimos las normas Cornell y los códigos de construcción cuando hacemos nuestra prueba de caída en Duffield 340.
Compensaciones

Había varias cosas removidas de nuestro sistema desde la propuesta como compensación. Debido a un presupuesto limitado, no obtuvimos los servos originales; Sin embargo, con los engranajes apropiados, pudimos obtener un par de cantidad operable con motores paso a paso para controlar el paracaídas.

La intención original era utilizar un acelerómetro de +/- 8 g para el eje z y un acelerómetro de 3 ejes de alta precisión de baja g para poder tener una precisión muy alta. Debido al alto costo de estos acelerómetros de 3 ejes de alta precisión, estábamos limitados por las muestras disponibles. De las muestras disponibles, sólo pudimos obtener las del paquete LGA o QFN. Parte de la razón fue que teníamos dificultad de soldadura de clavos a un paquete LGA-14 con cable de calibre 32. Podemos tener entradas / salidas en cortocircuito para 2 de los 5 acelerómetros soldados (porque se sobrecalentó cuando lo conectamos); Y los otros 3 acelerómetros no proporcionaron datos razonables.

Debido a la posible inexactitud, se pretendía obtener un sensor barométrico para verificar los datos de altitud; Sin embargo, debido a la restricción de tiempo, nunca pudimos construir y probar el hardware para ello.

Decidimos utilizar un algoritmo de software más complejo y utilizar un ADC externo para tener menos ruido que el ADC interno. Originalmente, se suponía que se utilizarían ADCs de 12 bits; Sin embargo, no pudimos obtener los ADC de 12-bit SPI muestreados de Texas Instrument para trabajar con nuestro sistema; Sin embargo, pudimos conseguir el ADC de 8 bits para trabajar. Más tarde pedimos 12-bit ADCs de National Semiconductor de la misma serie. La restricción de tiempo nos impide pasar por todas las fases de la filosofía "Test Like You Fly", nos quedamos con los ADC de 8 bits, perdiendo cierta precisión en nuestros cálculos de datos.

Un paracaídas del drogue sería ayuda particular para la operación. Sin embargo, debido a que el hardware no puede manejar una inclinación de 180 grados (tono) cuando el conducto principal sale, el paracaídas cárter se retira del sistema. Una vuelta de 180 grados me invertiría todo el eje en nuestros cálculos y el girocompás de la tarifa es clasificado en solamente 150 grados / s. Sin una tolva, existe el riesgo de eyección de un paracaídas principal de alta velocidad que puede provocar el desgarramiento del paracaídas o enredos de las cuerdas. Además, sólo hay un paracaídas, por lo tanto, un fallo de punto único que llevamos a la pérdida de toda la aviónica si el cohete de hecho se reduce de forma balística en caso de no expulsión (véase el sistema de recuperación para la mitigación del riesgo). Cuando no hay canal inclinado, el paracaídas principal fue movido a la etapa superior, resultando en un cohete menos estable. La longitud del cohete se ajustó para compensar esto en algún grado.



Sistema de entrega

El sistema de entrega era un cohete modelo de una sola etapa. El cohete tenía 3 pulgadas de diámetro y 4 pies de alto. Debido a las restricciones del lugar de lanzamiento, el motor utilizado era un grupo de motores E9 de uso único de Estes. El cohete fue diseñado para alcanzar una altura de apogeo de aproximadamente 300 pies.

A una altitud preestablecida (programada para que el apogeo sea detectado por el microcontrolador), el canal principal saldrá. El sistema de control de paracaídas controlará entonces el servomotor para guiar la carga útil a un sitio de aterrizaje objetivo.




El cohete está dividido en cuatro secciones. La nariz contendrá la cantidad calculada de arena para lograr la relación correcta de centro de presión y centro de gravedad. La parte superior alberga la rampa principal, un pequeño escudo térmico y sus cargas de expulsión. La sección de aviónica contiene todo el sistema de control electrónico y mecánico. La etapa inferior incluye el airfame inferior, el montaje del motor, la guía de lanzamiento / guía de rieles y el juego de aletas. Las secciones están conectadas por medio Kevlar choque cords.

Usando el programa Rocksim de Apogee, el cohete fue diseñado y construido. El centro de masa y masa total se introdujo pero en el programa después de la construcción para obtener datos de lanzamiento más precisos. Haga clic aquí para ver los archivos y simulaciones del cohete Rocksim. Haga clic aquí (1 2 3 4) para los datos de lanzamiento simulados.
Sistema de Orientación

Aviónica

La Aviónica alberga todos los sistemas electrónicos. El fuselaje tiene 3 "de diámetro y todos los componentes electrónicos se montarán en una bandeja (3/16 pulgadas de tilo). La bandeja se desliza sobre dos roscas paralelas, que se atornillan al mamparo en cada extremo. El mamparo superior tiene dos pequeños agujeros en los que salen dos cables de choque de Kevlar microbraídas (conectados al servomotor por las aletas de la copa principal). Además, el mamparo inferior también tiene un tornillo I para montar el Kevlar de tamaño medio para absorber la mayor parte del peso (y choque). El kevlar de tamaño medio se conectará directamente a la estructura principal (central) del paracaídas. El trenzado micro será conectado flojamente a los toldos exteriores del paracaídas. También hay dos pernos a los cuales están conectadas las líneas de carga de eyección (primaria y secundaria).



De la bandeja tiene la placa de PC, la pantalla de estado y la placa de alimentación, la tarjeta SD, la tarjeta de temporizador aislada, la batería de 9V electrónica y el motor de pasos de dosel izquierdo. El lado B de la bandeja tiene la tarjeta del sensor, la tarjeta de control del motor, la batería aislada del motor 9V y el motor paso a paso derecho del dosel. Utilizamos autoCAD para planificar el diseño de toda la sección de aviónica. Este fue un paso importante porque todo tenía que encajar en un tubo circular de 3 pulgadas. Y había componentes que tenían que ser montados en cierta orientación (como los acelerómetros y giroscopios). Haga clic aquí para ver el archivo de diseño de AutoCAD

La placa de PC del profesor Land contiene la electrónica para ATMega32L. Todas las otras tarjetas están conectadas a la placa de E / S para la interfaz entre sí.

La pantalla de estado y la placa de alimentación alojan la pantalla LCD para mostrar las coordenadas del cohete en relación con el sitio de aterrizaje. El LCD fue utilizado principalmente para depurar antes del vuelo; Fue deshabilitado y eliminado durante el vuelo real para ahorrar energía y peso. Hay varias luces LED en este tablero. Un conjunto muestra que las baterías están encendidas (una para los motores y otra para la electrónica). Otro conjunto muestra la señal de seguridad para armar las cargas de expulsión (tanto primaria como secundaria). También hay un corazón de ritmo LED para mostrar el programa está encendido, así como su estado actual. También hay 5V (LT1529-5) regulador de voltaje en este chip.

La tarjeta SD aloja el soporte de la tarjeta SD (HR846CT) y el circuito step-up / step-down para interconectar correctamente con la tarjeta SD a través de SPI. En última instancia, este tablero fue quitado porque no podíamos conseguir el interfaz que trabajaba completamente. El regulador de 3.3V ya no era necesario tampoco.

El tablero aislado del contador de tiempo es un tablero comercialmente del estante (ST236 del cohete del adepto) diseñado para la aplicación del rocketry. Tiene un mecanismo de disparo para detectar el lanzamiento (e iniciar un temporizador). Envía una expulsión de la señal de paracaídas a una hora preestablecida. Para nuestra demostración de lanzamiento, este temporizador se estableció en 9 segundos (el tiempo esperado para alcanzar el apogeo fue 5.981 segundos). Esta placa tiene su propia batería GP-23A, por lo que debe estar libre de interferencias de la electrónica de otros. Este es el mecanismo de disparo de paracaídas de expulsión de respaldo.

El Sensor Board alberga los tres aceleradores de +/- 8g (MMA1220D), el giroscopio de velocidad (ADXRS150) y el circuito de ADCs. Los acelerómetros están montados ortogonalmente entre sí para cubrir los tres ejes. El girocompás también está montado para detectar la velocidad angular deseada en el plano XY. Dos ADC de 8 bits conectan los datos analógicos de los sensores a los pines de entrada de la placa de PC.

La tarjeta de control del motor contiene los optoacopladores (LTV847), matrices queridas (ULN2003) y MOSFET de carga de inyección (BUZ73). Los optoacopladores aíslan la alta expulsión de corriente y los circuitos del motor del resto de la electrónica. El array querido controla los motores paso a paso utilizando la salida aislada generada desde la PC Board. Los MOSFETs usan la salida aislada para cortar la batería de 9V a través del emparejamiento eléctrico (Aerotech First Fire Igniter) para disparar la carga de expulsión.
Acelerómetros

Los acelerómetros de +/- 8g son proporcionados por Freescale, que cuentan con condición de señal, un filtro de paso bajo de 4 polos y compensación de temperatura, y un offset de cero-g. Los utilizados eran de los paquetes SOIC-16 que eran fáciles de soldar con la tarjeta del adaptador del DIP. El rango de voltaje de operación fue de 0 a 5V. Y la salida también abarcan ese rango, por lo que no era necesario un circuito step-up / step-down. La sensibilidad es de 250 mV / g, lo que proporcionó una precisión justa para nuestras necesidades. El acelerómetro se conecta a la PC Board ATMega32 a través de un ADC de 8 bits.

Giroscopios

Hemos podido obtener las tarjetas de evaluación ADXRS150 de Analog Devices. El girocompás puede detectar hasta +/- 150 grados por segundo. La sensibilidad es 12.5mV / degree / s. Era relativamente fácil soldar y fijar a la bandeja de la electrónica. Y debido a que también tenía un rango de voltaje de operación de 0 a 5V, no era necesario ningún circuito adicional aparte del ADC de 8 bits.

Motores paso a paso

Los dos motores paso a paso unipolar se controlan a través de conectores de 4 pines y se accionan utilizando la matriz de alto voltaje de alto rendimiento Darlington de ULN2003. Un motor paso a paso gira cuando sus conductores (conectados a los electroimanes) se activan secuencialmente en un patrón alterno para girar el rotor (Stepper Motor Animation). El patrón exacto se describe en el apéndice. Los grifos centrales de cada devanado están conectados a la batería aislada de 9V. Esta es la misma configuración encontrada en un proyecto anterior de ECE 4760 - Wall of Pong (Primavera de 2007).
Sistema de recuperación

Parachoques Parafoil / Ram-Air

Varios paracaídas fueron construidos y probados. El requisito era para ellos era que tenían que disminuir el cohete a una velocidad de descenso aceptable para asegurar la supervivencia de la aviónica y que tenía que ser dirigible por los motores paso a paso. El paracaídas circular no proporcionaba suficiente control a menos que las cuerdas fueran tiradas en varias pulgadas. Debido a la restricción del hardware, sólo podemos hacer hasta 2 pulgadas de tracción.

Hicimos nuestro paracaídas parafoil basado en las direcciones encontradas en este sitio.

Un paracaídas parafoil complicado de fantasía fue diseñado y cosido en el Martha Van Rennselaer Salón Estudio de Diseño de laboratorio. Proporcionó la buena dirección; Sin embargo, para el cohete diseñado (demasiado pesado), la velocidad de descenso era demasiado rápida. Hacer ese paracaídas más grande no era una opción factible porque tiene que ser embalado en el tubo de la etapa superior del diámetro 3 ", que lo restringió es tamaño.

Paracaídas real

El diseño final del paracaídas era un simple rectangular grande. No proporcionaba tanto control como el paracaídas del parafoil; Sin embargo, era algo dirigible y proporcionó la tarifa aceptable del descenso.

Sistema de respaldo





Este es un sistema de fallas único. En el caso de un despliegue sin paracaídas, el cohete bajará de forma balística; Sin embargo, se utilizó un triple sistema redundante para el cohete. El software está diseñado para desplegar paracaídas en apogeo. Un temporizador de lanzamiento también disparará el paracaídas si no se alcanza el apogeo después de 7 segundos. Un sistema completamente aislado (usando el Adept ST623) disparará el paracaídas después de 9 segundos.

Almacenamiento de Datos / Procesador

Originalmente se suponía que los datos se escribían en la tarjeta SD; Sin embargo, debido a algunas dificultades, nunca pudimos conseguir que funcione completamente. Terminamos usando la EE PROM de la MCU para el almacenamiento de datos.



Diverso

Interruptores de seguridad

Hay dos interruptores rotativos (diseñados para la aplicación de cohetes por Aerocon). Están montados externamente en la estructura del avión de la sección de aviónica. El cohete no está energizado hasta que esté montado en la plataforma de lanzamiento. El interruptor de alimentación se enciende por primera vez. El LED de encendido debe aparecer y el LED de la pulsación parpadeará a 1 Hz. Se comprueba el LED de seguridad en el brazo (sin señal de carga de eyección) antes de girar el interruptor de carga de eyección para armar el cohete.

Consideraciones de aislamiento

Todos los dispositivos ruidosos (motor y alta carga de inyección de corriente) están aislados de los sensores sensibles. Hay condensadores entre las líneas de alimentación y señal para reducir el ruido.

Herramientas de depuración

La pantalla LCD proporcionó la posición x, y y z cuando depuramos y probamos el hardware. Cuando eso no era suficiente, dos líneas de señal (Rx y Tx) se pueden conectar al STK500 para usar hyper-terminal para depuración adicional.

La interfaz USART se utilizó para conectar la tarjeta PC a la STK-500 y la computadora para programar el microcontrolador y para analizar datos de vuelo después del lanzamiento. Se utilizará una pantalla LCD (16 caracteres por 2 filas) para mostrar las coordenadas xyz de la carga y la distancia al sitio de lanzamiento. El tubo del cuerpo de la aviónica tendrá una ventana de plástico transparente de 3,5 "x 1" (pulgada radial) para examinar las lecturas de la pantalla LCD (y otras luces de estado del LED). La siguiente ilustración muestra un ejemplo del formato de los caracteres LCD.
X  :  1  5 .   4 8       Y :   0  9  2  .   4 2
Z  :  0  9 .   6 0       D :   1  0  4  .   7 6
Habrá LEDs en la tarjeta de visualización de estado. Uno será el LED de ritmo cardiaco (a la velocidad de 1 parpadeo / segundo). El LED de alimentación de cada batería. Finalmente, habrá un LED seguro para armar para cada carga de eyección de paracaídas.



Dificultades

Como se mencionó anteriormente, la soldadura de los paquetes de acelerómetro de 3 ejes (QFN y LGA) era extremadamente difícil. Al final decidimos utilizar 3 acelerómetros de un solo eje (SOIC)

Tuvimos muchos problemas con el circuito step-up / step-down para establecer una interfaz adecuada con la tarjeta SD. Probamos los dos diodos de la serie con una resistencia del tirón a 3.3V de la señal de 5V MCU. Intentamos usar dos circuitos seguidores de emisor NPN donde el primer transistor invirtió la señal y el segundo transistor lo devolvió, pero a 3.3V. También probamos el TTL dos transistores en la serie push-pull configuración. Todos estos circuitos funcionarán siempre y cuando la tarjeta SD no esté enchufada. Una vez que la tarjeta está conectada, la señal caería por debajo del rango de 0,75 * Vdd para la señal alta adecuada. Un problema era que estábamos utilizando la fuente de alimentación de voltaje variable en la estación de trabajo (que usaba un transistor con una configuración de potenciómetro). Otras veces, estábamos dibujando demasiado poca o demasiada corriente. Nuestro regulador de 3.3V es un 3Amp, que debe ser suficiente para nuestras aplicaciones. Al final, nos dimos cuenta de que el esquema original era que todo el circuito estaba construido alrededor y soldado era incorrecto. El pin VCC y uno de los pins que se interconectan con la MCU. Ese error fue corregido y el circuito fue construido; Sin embargo, no tuvimos tiempo para montar y probar el sistema antes de nuestra demostración de lanzamiento.

También tuvimos algunos problemas al organizar los componentes en las tablas de soldadura para que todo encaje. En un momento, la pantalla LCD, el estado del LED, el regulador de voltaje y la tarjeta SD estaban en la misma tarjeta. Estaba demasiado lleno de gente al alcance ya la depuración cuando un problema despertó. Resolvimos esto usando tableros más pequeños.

Cuando estábamos depurando con hyper-terminal, tuvimos algunos problemas al tener toda la sección de aviónica para comunicarnos con ella. Tomó como awhile antes de que descubrimos que tener sólo Rx y Tx no era suficiente. Debido a que la aviónica corrió en las baterías, no había un terreno común entre nuestro hardware y el SDK500.
Diseño

El software se dividió en tres secciones principales: recopilación de datos, procesamiento de datos y procesamiento de motores. Cuando se inicia el programa, las primeras primeras llamadas se inicializan para configurar el programa. Inicializar primero configura el UART para enviar datos a hiperterm. Esto fue útil durante las pruebas y para ver los datos recopilados. Todos los pines necesarios fueron configurados y las variables inicializadas a los valores iniciales. Si el pin D5 está conectado a tierra, el programa entra en un estado de volcado de datos. Aquí los datos se envían a hyperterm y se formatean para su uso en MATLAB. El programa entonces se cuelga aquí para siempre con un LED muy rápido parpadeante. Si D5 está conectado a VCC suponemos que el cohete está en modo de lanzamiento y todos los datos anteriores se borran.

Como se ve en el diagrama de estado en el apéndice si no estamos descargando los datos vamos a un estado de espera. Utilizamos el LED de latido para decirnos en qué estado estamos. Lento está esperando, medio está volando, y rápido está cayendo. Cada 1ms entramos en una alarma de temporizador y cada 100ms obtenemos nuevos datos de los tres acelerómetros de 8g, y el giroscopio. Esto se hace mediante el uso de dos ADC de SPI de 8 bits que utilizan código modificado de Profesor Tierra. Estos datos son entonces desplazados a través de un desfase codificado en tiempo real obtenido de nivelar el cohete. Las siguientes x e y se convierten en los ejes estacionarios x e y mediante la traducción del ángulo giroscópico. Esto se hace usando la ecuación siguiente, donde ax y ay son con respecto al eje estacionario y x e y son con respecto al eje giratorio del cohete:
ax=x*cos(Θ)-y*cos(90- Θ)
ay=x*sin(Θ)+y*sin(90- Θ)
El seno y el coseno se calculan mediante una función que establece theta de 0 a 90 grados y utiliza una tabla de búsqueda almacenada en flash. A continuación, se establece un indicador de listo para procesar los datos. Todos los datos se procesan a través de una función externa llamada updateData. Esto se hace porque la adición de flotadores y la multiplicación toman cientos de ciclos por lo que queremos minimizar el tiempo en la interrupción. En primer lugar, los datos de aceleración se convierten en ft / s2. Entonces si todavía estamos esperando el despegue comprobamos si az> 0. Si es así, asumimos que hemos lanzado y estamos en el estado FLYING desde que superamos la gravedad. Si no estamos esperando el despegue, entonces integramos la aceleración a la velocidad y la doble para obtener el desplazamiento. Esto se calcula mediante el algoritmo verlet de
Xn=Xn-1+Vn-1*dt+1/2*An-1*dt2
Vn=Vn-1+1/2(An+An-1)*dt
El almacenamiento de la recopilación de datos se almacena en la EEPROM debido a fallos para que el SD funcione correctamente. Debido al tamaño limitado de EEPROM (1024 bytes), se pueden almacenar mucho menos datos aquí. Para maximizar la cantidad de datos almacenados primero convertimos los flotadores en punto fijo 12: 4. Esto hace que cada punto de datos sólo 16 bits en lugar de 32, lo que nos permite almacenar aproximadamente el doble de datos. Debido a que la EEPROM es limitada y no podemos almacenar todos los datos recogidos sólo almacenamos el desplazamiento y una marca de tiempo. Esta recolección de datos se realiza a dos velocidades diferentes. Después de despegar almacenamos datos a una velocidad alta. Luego almacenamos datos a una velocidad más lenta después de que se ha recogido un número máximo de muestras. El número total de muestras que podemos almacenar es (1024-8 bytes) / (2bytes * 4samples) = 127 muestras. Los otros 8 bytes se usan para almacenar momentos críticos en las cosas que sucedieron, tales como despegue, caída y despliegue de paracaídas.

La máquina de estado cambia a FALLING cuando estábamos volando en un punto y la velocidad z se vuelve negativa. Este es el apogeo de la lucha. Esto sólo puede ocurrir después de 3,5 segundos desde que los motores de cohetes duran 3,1 segundos. Si el cohete está en el aire durante más de 7 segundos, soltaremos el paracaídas de todos modos. Este número está por encima de la estimación calculada para el apogeo y los servidores son redundantes si el sistema de guía interna falla. Después de esto esperamos 2 segundos y tiramos las líneas en el paracaídas enseñado. Un tercer sistema redundante es un temporizador externo que disparará el paracaídas después de 9 segundos.

Si estamos en estado de caída y un temporizador de motor expira, tratamos de navegar a donde comenzamos. Giramos el cohete si los vectores de aceleración y desplazamiento van en la misma dirección. Para intentar eliminar los movimientos bruscos al ir en la dirección correcta, ampliamos el rango de valores aceptables. Para girar, tiramos de un lado del paracaídas y luego lo soltamos. El motor paso a paso se controla a través de su propia máquina de estado como se muestra en el apéndice. Esta máquina del estado fue ideada del proyecto de la pared de Pong de la ECE 476.
Dificultades

La parte más complicada de crear el programa era probar secciones y hacerlas tomar menos ciclos de reloj. Las pruebas fueron difíciles porque el uso de hipertermia durante las pruebas de laboratorio añade otro proceso intensivo de ciclo. Se realizaron muchas pruebas utilizando datos estáticos para que las conversiones intensivas en ciclo no fueran importantes. Esto nos permitió verificar que las partes del programa trabajado, como la integración numérica.

Hubo muchos fracasos que nos hicieron cambiar nuestro diseño. No pudimos trabajar con muchos dispositivos SPI. Hemos intentado acelerómetros digitales para reducir el error y darnos más bits de precisión. También intentamos utilizar un ADC de 8 entradas y 12 bits. Por alguna razón desconocida, no hemos sido capaces de interactuar con ninguno de estos correctamente. Esto desperdició mucho tiempo, y al final los dejamos caer para los sensores que trabajaron. Otros fallos de hardware incluyen el uso de un acelerómetro analógico de 3 ejes. Esto nos permite seleccionar un nivel máximo de g para una mayor precisión del senor y nos daría resultados de datos redundantes para el eje z. Al final decidimos simplificar el diseño y utilizar el mismo acelerómetro en 3 ejes.

Debido al programa de intensidad computacional, decidimos cortar la forma de 3 giroscopios con uno en cada eje a un giroscopio en el plano XY. Con el supuesto de que el cohete no se inclinó mucho, redujimos la cantidad de cálculo a la lectura convertida al eje estacionario XYZ.
EN-Pruebas de laboratorio

Hemos probado cada sensor por separado. Era difícil probar los acelerómetros así que usamos una prueba simple de medidas de + 1g, -1g y 0g. El 0g que asumimos era el centro y calculado que 1g era exacta a 1bit. Para probar el giroscopio lo giramos lentamente e integramos el resultado. Marcamos una pieza de papel y usamos un transportador para medir su exactitud. Nos pareció bastante exacta como muestran en la tabla de abajo:


Los resultados de las pruebas muestran que todos los equipos electrónicos funcionaron como estaba previsto. Intentamos probar la electrónica lo más posible en el laboratorio. Sólo tuvimos una oportunidad para conseguir un derecho de lanzamiento; Hemos ideado muchas pruebas para demostrar que las secciones funcionaron, así como un flujo general adecuado. Este video muestra el cohete esperando un tiempo mínimo y luego disparando una carga de eyección como se muestra por el amperímetro. La corriente era bastante grande y duró bastante tiempo para teóricamente disparar una carga. Este video demuestra y explica el cohete pasando por todos los movimientos de un lanzamiento. Como se muestra en el video, el cohete espera una aceleración ascendente antes de entrar en vuelo. Este cambio hace que el LED de latido cambie de lento a medio. Después de una cantidad mínima de tiempo, el cohete entra en el estado de caída como se muestra por el LED de parpadeo rápido del latido del corazón. Después de un pequeño retraso esperando que el paracaídas se despliegue, los motores giran para tirar de la cuerda en el paracaídas. Entonces un motor (dependiendo de donde el sistema pensó que era) los vientos de la cadena en 5 ciclos y libera a su vez. Finalmente, probamos el paracaídas primero en una botella de agua, y luego en el cohete real. Como se muestra en este video, el paracaídas se abre con éxito y disminuye el decente del cohete a un ritmo razonable.



Iniciar Demo             

Durante la instalación tuvimos que hacer ajustes menores, como reducir la longitud del cable para encender los motores a fin de aumentar la cantidad de voltaje caído a través del primer encendedor de fuego. Debido a la longitud de los cables, tenía mucha más resistencia que los cuatro encendedores en paralelo. Por seguridad nos quedamos más atrás, entonces la guía mínima de 50 pies establecido por la FAA. También lo lanzamos como un lugar remoto para disminuir la probabilidad de causar daño a algo o herir a alguien en caso de un fracaso. El cohete no fue tan alto como se esperaba. Estimamos que fue entre 150 y 200 pies. Esto está significativamente por debajo de los valores simulados. La carga de eyección de paracaídas se disparó cuando el cohete comenzó a caer. Creemos que el paracaídas nunca se abrió porque no tenía tiempo suficiente. El cohete sólo subió la mitad de lo estimado y no estaba en el aire tanto tiempo como se esperaba. Creemos que fue el microcontrolador quien disparó el cargo de expulsión porque un segundo cargo de expulsión se disparó en el suelo. Esta segunda carga de eyección fue de unos 9 segundos después del inicio del vuelo, ya que el temporizador estaba ajustado a. Esto significa que el microcontrolador disparó la primera carga.

Un problema importante con el lanzamiento es que creemos que un motor falló y disparó en el cohete también. Esto ayudaría a explicar muchas cosas que salieron mal. Explica el hecho de que el cohete no fue tan alto como se esperaba. También hubo evidencia visible de que dentro del cohete la placa final del tabique se rompió y quemó. También la electrónica cerca de los motores claramente quemado junto con la madera que lo rodea. Esto sólo ocurrió en un lado de la madera. Por suerte, la electrónica LCD fue todo lo que se vio afectado. Esta placa también tenía los reguladores de voltaje en él, pero después de pruebas de lanzamiento demostrado estos todavía funcionaba normalmente. Un motor después del vuelo parecía diferente que el resto; La boquilla ignífuga faltaba en ese motor en particular. Vea las fotos bajo los medios.



Debido a un error no obtuvimos video, pero sólo sonido. También debido al aterrizaje áspero la fuente de alimentación al microcontrolador se soltó. Esto fue evidente por un alambre roto. Creemos que los datos del APÉNDICE se corrompieron debido a esto. Debido al hecho de que los datos comenzaron con 0's y tuvieron algunos números al final, pensamos que una vez que el cohete golpeó el suelo, se restableció varias veces, ya que no tenía una fuente de alimentación estable. Por lo tanto, no podemos sacar conclusiones sobre la validez de nuestros datos. Llegamos a la conclusión de que el microcontrolador en general, trabajó como lo hizo disparar la carga de eyección en el paracaídas en el momento adecuado. Como esperó mucho tiempo en el estrado concluimos que pasó por la máquina de estado correctamente (WAITING-> FLYING-> FALLING) y no pudo haber sido debido al azar. Esto implica que los sensores trabajaron y estaban dando valores razonables.
Datos brutos

Como puede verse en el gráfico inferior, los datos brutos no parecen ser útiles. Parece que gran parte de los datos fueron borrados, ya que comienza con una cadena de 0s. También los tiempos no coinciden con los tiempos esperados. Finalmente parece que teníamos un error de desbordamiento de punto fijo. El gráfico superior muestra este problema fijado para los ejes x e y. Los datos del eje z parecen ser aleatorios por lo que no se ajustó. El desbordamiento de enteros fue sólo en el almacenamiento de datos es que era mayor de 2000 pies. Pensamos que 2000ft sería aproximadamente un orden de magnitud mayor que la necesidad de almacenar datos. Esto no afectó la representación interna de los datos (flotadores). Estos datos parecen un sensor sólo se queda en un g fijo como si el cohete está acostado. Como se explicó antes creemos que estos datos no son precisos debido a la fuente de alimentación del microcontrolador que se suelta en el suelo. Eso explicaría los 0 para empezar. También explica por qué los números de tiempo son tan pequeños. La cantidad de tiempo de configuración fue mucho mayor de 23 segundos como indica el tiempo crítico. Esto significa que el tiempo de despliegue del paracaídas y el tiempo de tracción no son válidos tampoco. En general, nuestros datos no muestran nada. La visual del paracaídas no eyectando hasta en el cohete cayó en el aire y la segunda explosión para lanzar el paracaídas indica que el programa funcionó como se esperaba. También [esta demo] muestra el programa funcionando como se esperaba en una prueba de laboratorio.
Raw Data:
t = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 36 38 39 41 42 44 45 47 49 50 52 53 55 56 58 59 61 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
xD = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 462 1180 2096 3299 4652 6215 8102 10073 12268 14886 17605 20622 24132 27669 31472 -29645 -25087 -20179 -14716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
yD = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6428 -8136 -9982 -11994 -13918 -15783 -17731 -19566 -21525 -23760 -25977 -28351 -31157 31462 28298 24609 20872 17160 13517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
zD = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -18793 -25649 32511 24204 14325 4107 -7039 -19952 32519 18524 2576 -13337 -30172 16401 -2297 -21901 21759 377 -21898 18892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]



Usabilidad

Debido a la naturaleza de nuestro diseño, sólo aquellos que están debidamente capacitados deben intentar construir y repetirlo. Al diseñar este sistema, fue fácil de usar y entender. Antes de intentar repetir o modificar nuestro experimento uno debe estudiar nuestro código y el hardware a fondo como un evitar cualquier preocupación de seguridad posible. Los esquemas en apéndice son correctos e incluimos una versión completamente comentada del código en apéndice. También incluimos un uso ligeramente modificado, a su propio riesgo, código que debe escribir en una tarjeta SD. Hay otros cambios menores asociados con este código, pero puede utilizarse como una referencia sobre cómo utilizar la tarjeta SD como dispositivo de almacenamiento de datos. Debido a un esquema incorrecto, no hemos podido probar este código. Estas imágenes [I y II] muestran el diseño que usamos. Esta no es la única disposición posible y uno puede ser capaz de reducir el peso de la sección de electrónica a través de una más compacta



Expectativa

El proyecto cumplió con la mayoría de nuestras expectativas. Aunque la demostración de lanzamiento no cumplió con nuestras expectativas, pudimos demostrar con éxito que los acelerómetros y el sensor de giroscopio de velocidad pueden determinar con precisión nuestra ubicación, como se muestra con pruebas y demostraciones en laboratorio. El incendio de carga de eyección, que verificó que el sistema de sensores fue capaz de determinar el apogeo. La carga de eyección secundaria disparó a los 9 segundos, que se aisló completamente de nuestro sistema. Fuimos capaces de escuchar y ver dos cargas de eyección diferentes disparando durante el lanzamiento. El motor paso a paso también se volvió cuando nos movimos en el laboratorio. Nunca pudimos verificar la dirección del paracaídas porque no se desplegó con éxito durante el lanzamiento y la caída en Duffield no es lo suficientemente alta como para verificar si el motor realmente gira el paracaídas. Sin embargo, cuando atamos en el extremo del paracaídas una pulgada más corto que el otro, vimos el giro y la rotación sobre ese punto durante la prueba de la gota de Duffield.



Posibles mejoras

Si pudiéramos mejorar este proyecto, usaríamos primero un microcontrolador más potente. Este problema es computacionalmente intensivo y necesitamos ser capaces de hacer más cálculos más rápido. Punto fijo no ayudaría en nuestro procesador, ya que sólo puede cambiar un bit a la vez que hace que la multiplicación no es mucho más rápido que el punto flotante. También usaríamos sólo acelerómetros digitales (con al menos 12 bits de precisión) a través de SPI y doble precisión para mayor precisión. Finalmente implementaríamos el sistema de 3 giroscopios para una determinación más precisa de la orientación con respecto a nuestro eje estacionario.



0 comentarios:

Publicar un comentario