www.esaeta.com.ar
Balfour, Alan
Couto, Hernán Pablo
Fineschi, Matías Daniel
Giudice, Pablo Javier
Matus, Juan Luis
Gaviglio, Ignacio
Características Electrónicas:
Microprocesador HCS12 Freescale
Control de potencia basado en el controlador IR2210 y transistores Mosfet IRFP250
IMU de 3 grados de libertad de Sparkfun. Contiene el giróscopo ADXRS613 (yaw), y el
acelerómetro de dos ejes ADXL203.
Comunicación inalámbrica vía X-Bee Pro.
Display gráfico de 128x64 con controlador T6963.
3.3. Baterías
SAETA se encuentra alimentado por cuatro baterías de plomo – acido de electrolito absorbido,
de 12V – 7,5Ah, las mismas se encuentran conectadas en serie paralelo de manera de erogar 24V –
15Ah.
Figura 3. La base de tiempos se obtiene del módulo Output Compare, configurado para ejecutarse cada
10ms (100Hz) e iniciar una nueva conversión en cada llamada. Cuando termina se ejecuta la rutina de
interrupción y se guardan los valores medidos en una posición de memoria compartida con la rutina control()
que se encarga de analizar los datos y mover los motores.
Figura 4. Detalle del esquemático que muestra cómo se conecta uno de los motores a los transistores de
potencia.
De todos modos, los acelerómetros son muy susceptibles a vibraciones y al propio movimiento
de SAETA, con lo cual su medición resulta muy ruidosa. Esto es un problema muy importante a
tener en cuenta para un sistema de control. Con lo cual para solucionar este inconveniente se
utilizo un giróscopo (el cual mide la velocidad angular de SAETA, es decir la variación temporal del
ángulo de inclinación), el cual se lo integra para determinar la posición, y mediante un filtro de
Kalman se lo combina con la medición de los acelerómetros. De esta manera se obtiene una
medición mucho más precisa y menos ruidosa de la posición angular del sistema.
Para el prototipo se utilizo una placa de Sparkfun que cuenta con 2 ejes de acelerómetro, y 1
eje de giróscopo. Los primeros están formados por un ADXL203 el cual consiste en un
acelerómetro de dos ejes (x,y). En cuanto a los giróscopos contamos con un ADXRS613 de 1 eje. En
la siguiente figura se muestra una imagen de dicha placa.
Según las hojas de datos de los acelerómetros, estos tienen una sensibilidad de 1000mV por
cada G de aceleración (incluyendo la gravedad). Como en dicha aplicación solo se quiere medir la
proyección de la gravedad, se estará trabajando en un rango de 1000mV. Este hecho es un
problema ya que el fondo de escala del micro controlador es de 5V, con lo cual se estaría
aprovechando solamente el 20% de la resolución de conversión. Para evitar este problema se
diseñaron amplificadores restadores (para restar el valor mínimo), y así aprovechar el mayor rango
posible del AD y tener una mejor sensibilidad. En la figura 4 se muestra el circuito esquemático
utilizado en dichos amplificadores.
Un detalle no menor a la hora colocar el IMU sobre el dispositivo mecánico, es la posición del
mismo respecto al eje de rotación del sistema. La posición de esta debe estar alineada con el eje
de rotación para que la indicación de los acelerómetros no sea errónea, es por eso que se la coloco
lo más cercana a dicho eje.
Para determinar el ángulo de inclinación se usan las señales provenientes del acelerómetro y
el giróscopo. Por si solos, ninguno de los dos dispositivos es capaz de dar una señal lo
suficientemente apta. Por un lado, podríamos integrar la señal proveniente del giróscopo y
obtener asi el valor del ángulo de inclinación. Si bien es teóricamente correcto, en la práctica los
giróscopos tienen un valor de deriva (error en estado estacionario) que produce que a largo plazo
el valor medido se aleje del real. Por otro lado, realizando la operación arco tangente entre las
dos componentes del giróscopo produce que la medición sea muy ruidosa aunque no presenta el
fenómeno de deriva. De este modo podemos resumir que el giróscopo es bueno para darnos un
valor de referencia poco ruidoso mientras que el giróscopo puede servir como forma de eliminar
la deriva.
Una forma que existe de combinar estas mediciones se denomina “filtro complementario”.
Puede resumirse como una ecuación de recurrencia de la siguiente forma:
Donde el valor es una medida de cuan confiable es la medición del giróscopo. Está también
relacionada con el tiempo de respuesta del sistema en cuestión y en nuestro caso fue elegida en
0,99 definida en forma teórica por la bibliografía disponible y corroborada en forma empírica.
Debe remarcarse que es una fórmula recurrente porque depende del valor anterior del ángulo.
Es necesario remarcar que durante el proyecto se utilizó también el filtro de Kalman para
combinar la lectura de los dos sensores, pero se optó por el filtro complementario por una
cuestión de facilidad de ajuste, baja necesidad de cálculo y facilidad de implementación.
El módulo remoto tiene una salida serie que es conectada al puerto COM2 del
microprocesador, dónde se envía la información a través del SCI la cual consta de 22 bytes (3 floats
y 5 enteros) más un byte del terminador. Se configuro la velocidad de transferencia en 57600bps,
con el objetivo de tardar el menor tiempo posible en la transferencia de datos y así no quitar
tiempo de procesamiento al sistema de control y al filtro de kalman.
También se diseño una interfaz en Matlab, donde se puede seleccionar la velocidad de
transferencia de datos y el puerto a utilizar. Una vez conectado, se recibirá la información
deseada:
- Ángulo de inclinación: Opciones filtro de Kalman, complementario o arcotangente de los
ejes del acelerómetro.
- PWM de los motores: valor de 0 a 255, motores izquierdo y derecho.
Estos valores se irán graficando en las curvas en tiempo real con la opción de variar la escala de
tiempo. Asimismo, permite enviar las constantes PID e ir variándolas desde la computadora,
pudiendo observar su resultado en el comportamiento de SAETA, lo cual lo vuelve una
herramienta muy útil a la hora de verificar su funcionamiento y rastrear posibles fallas, de forma
inalámbrica. También se puede hacer un ajuste fino sobre el sistema de control, y verificarlo con
las curvas de inclinación y valores de PWM.
Una imagen de la interfaz se muestra en la figura 16.
La alimentación del sistema se basa en 2 baterías de 12V conectadas en serie, para lograr una
tensión de 24, y así poder suplir a los motores con su tensión nominal.
Por otro lado se diseñaron reguladores de tensión para contar con salidas de 9V, 5V y 3.3V. La
primera de 9V es para alimentar el modulo Xbee inalámbrico únicamente. La salida de 5V
proporciona alimentación al microprocesador, los amplificadores de las señales del IMU, la luz de
fondo del display grafico y la lógica de las placas de potencia formadas por los integrados IR2120.
Este nivel de tensión se logro con un regulador LM7805. El nivel de 3.3V se utiliza para alimentar el
IMU (giróscopos y acelerómetros) y se obtuvo mediante un regulador LM317, que mediante un
juego de resistencias, se puede variar fácilmente su tensión de salida.
Por otro lado, hay que suministrarle al display -15V para la iluminación de los pixeles. Para
lograr este nivel de tensión se implemento una fuente switching del tipo buck-boost con el
integrado MC34166. El circuito esquemático se obtuvo de la hoja de datos y se hicieron
modificaciones para que la tensión de entrada sea de 24V y la salida de -15V.
Figura 9 Circuito esquemático de la fuente switching implementada para la alimentación del display.
El dispositivo SAETA se puede modelar como un péndulo invertido sobre una base móvil como
se observa en la figura 5.1.
Para implementar dicho control existen diversos caminos a seguir, como por ejemplo un
control PID, realimentación total de estados o hasta incluso controles no lineales.
Previo a optar por un control se procede a desarrollar un modelo matemático del sistema
basado en el modelo físico de la figura 5.1. Dicho modelo se linealiza alrededor del punto de
equilibrio =0, obteniéndose las siguientes ecuaciones:
En nuestro caso particular, se implementó efectivamente una variación del PID clásico, que
puede resumirse en la siguiente ecuación:
El diagrama de polos y ceros del mismo se presenta en la figura 5.4, en la cual también se
presentan las variaciones de dichas singularidades de acuerdo con las variaciones de las
constantes del mismo.
Realizando cambios en las constantes del PID se logran diversos efectos en el sistema
realimentado, los cuales se presentan en una tabla a continuación.
Closed Loop Response Rise Time Overshoot Settling Time Steady State Error
Kp Decrementa Incrementa Cambia poco Decrementa
Ki Decrementa Incrementa Incrementa Elimina
Kd Cambia poco Decrementa Decrementa Cambia poco
Para sintonizar dicho controlador existen métodos empíricos como el de Ziegler-Nichols el cual
requiere poner a oscilar el sistema de forma mantenida usando sólo un control proporcional, para
luego con la constante usada y el período de oscilación establecer el resto de las constantes. Este
método no siempre funciona y muchas veces las constantes deben ser modificadas
experimentalmente.
Finalmente tras haber realizado las pruebas correspondientes, se determinaron las constantes
de Kp y Kd , las cuales se listan en la siguiente tabla:
Constante Valor
Kp 0,60
Kd 1,10
Tabla 1 Constantes determinadas para el sistema de control PID
Como conclusión se puede afirmar que el sistema de control utilizado, es eficaz para mantener
estable y balanceado el sistema con y sin pasajeros. En cuanto a la medición de inclinación, se
puede afirmar que el filtro complementario es una solución efectiva para la deriva que se
introduce al integrar la señal de los giróscopos, y para el ruido que presentan las mediciones de los
acelerómetros.
En relación a los motores, el juego mecánico y la zona muerta que presentan fue resuelto en
forma ingeniosa por software.
Como trabajo futuro, se planea incluir una realimentación de velocidad y posición de las
ruedas motrices, para poder mejorar las características dinámicas. También se está evaluando el
tratar de migrar la tecnología de las baterías, para adaptarse a las necesidades energéticas del
sistema.
Finalmente, podemos concluir que SAETA resultó en un trabajo muy enriquecedor por la
forma en la que se pudieron aplicar conceptos vistos en diferentes materias de la carrera.