PVTOL -Eje X
Rodrigo Salazar Zugasti
ABSTRACT — Se implemento experimentalmente el control de orientacion
para un grado de libertad de un Planar vertical take off landing ( PVTOL ).
PALABRAS
CLAVE — PVTOL,simulink,
PID, estabilización, control .
I. INTRODUCCIÓN
Una aeronave VTOL es aquiella que tiene la
capacidad de despegar y aterrizar en una posición vertical.
El PVTOL representa un desafío en los
sistemas de control debido a que es un caso particular del control de
movimiento. El control de un PVTOL es motivado por la necesidad de estabilizar
algunas aeronaves de tipo VTOL como los helicopteros o algunos aviones en
particular.
La aeronave a tratar tiene tres ejes de
libertad correspondientes a la orientación del avión, el PVTOL está compuesto
por dos motores separados que producen fuerza y momentos en la aeronave; Por lo
tanto,es un sistema subactuado ya que tiene tres ejes de libertad y solo dos
entradas de control.
Figura 1. PVTOL
En la figura 1 se muestra en PVTOL con dos
hélices y elevadores, el control de altura se realiza con el impulso de las dos
hélices F1 + F2, el cambio de orientación en el eje Y se realiza mediante el
movimiento de los elevadores L y/o R , el eje X es controlado por la diferencia
de empuje realizado por los motores.
Descripción del sistema
El modelo dinámico de un PVTOL se puede
obtener mediante un aproximado con las leyes de lagrange-Newton. El sistema de
ecuaciones para un PVTOL es el que se muestra en la siguiente figura.
Figura 2. Simplificación del PVTOL.
Pero en este artículo solo vamos a proponer el control de la rotación x
del sistema por lo tanto asumimos que son cero los ejes Y y Z, entonces la
ecuacion para la dinámica de roll es :
Donde F =f1- f2 es la fuerza producida por la diferencia de empuje de
los motores, d es la distancia del centro de la masa de cada rotor y Cl0 es el
coeficiente derivativo de amortiguacion en el eje x. En este caso Cl0=0.36.
Reescribiendo la ecuación.
De donde se obtiene:
II. DESARROLLO EXPERIMENTAL
Con la utilización de simulink podemos
caracterizar el sistema y aplicarle con facilidad un PID para poder ver el comportamiento
del sistema ante la entrada de escalón.
Desde observar el sistema se nota que el
sitema tiene un polo en el origen y otro polo en -25, así que debemos
implementar un controlador
PID para poder hacer el sistema estable.
Figura 3.
Simulación en simulink.
P :100
I : 98
D :7
Para la parte fisica del sistema, se construyo
una base de madera la cual soporta el brazo de aluminio de 400mm de longitud
con una perforación en el centro que utiliza valeros para reducir la fricción, los
motores son colocados en los extremos.Por otro lado, se utilizaron motores brushless con hélices de
10*4.5 pulgadas y variadores de velocidad de 30A.
Para la adquisicion de la referencia se
utilizó un MPU6050, el cual tiene gyroscopios y acelerómetros.
Para hacer la conexión con la pc se utilizó un
arduino nano solo como plataforma para recibir y transmitir los datos de
simulink a los actuadores y del sensor de posición al puerto serial de la
computadora.
Para realizar la medición con el sensor
mpu6050 se utilizaron los siguientes calculos.
El diagrama muestra el calculo de inclinación
sensado por los vectores del acelerometro.
Posteriormente se utilizó un filtro
complementario para elminar el ruido del acelerometro y el drift en el
gyroscopio, esto es utilizando un filtro pasa bajas en el acelerometro
eliminando las fluctuaciones a corto plazo, y el drift del gyro se cancela con
un filtro pasa altas.
Para ello se utilizó la siguiente expresión:
Filtered Angle = α × ( angulo del Gyroscopio)
+ (1 − α) × angulo del Acelerometro)
Donde:
α = τ/(τ + Δt) and (angulo del
Gyroscopio) = (ultima medicion angulo filtrado) + ω×Δt
Δt = tiempo de muestra, τ =constante de tiempo mas
grande que el ruido del acelerómetro.
Por lo tanto, como se
tiene un periodo de muestreo de 0.04 s, se escogió una constante de
aproximadamente 1 s ,alfa =0.96.
Los
electronic speed controlers o variadores de velocidad dson circuitos que
reciben cierto voltaje de entrada y aparte una señar pwm o ppm la cual
transforman en señales senoidales trifasicas para poder controlar la velocidad
de los rotores.
Estos
variadores funcionan a una velocidad de 300 Hz.
Conexiones :
Esc : Electronic speed controller o driver variador de velocidad.
Arduino Mpu Esc1 Esc 2
A5 - SCL
A4 - SDA
GND - GND - GND -GND
3v3 - Vcc
D13 - PWM
D10 - PWM
PWM es el cable balnco.
Dejar el cable rojo del Esc sin conectar.
Para el control de posicion del PVTOL se
utilizó el siguiente modelo en simulink :
Se introduce el angulo de referencia que se
quiere seguir; posteriormente, se realiza la diferencia con el ángulo medido y
se divide en dos,para divirse en los dos PIDs que controlan el sistema y que se
encuentran saturados, para que cada señal vaya al motor adecuado y no pueda
enviar un pwm tan álto como para dañar el sistema;por último, el arduino
procesa las señales y las envía a los controladores de velocidad directamente.
III. ANÁLISIS DE DATOS
Primero para la obtención de los valores PID, se
procedió a sintonizar solo un motor a cierta referencia para tener una idea del
comportamiento del sistema, es decir se removió la implementación de un motor
para tener la seguridad de que el PID inicial iba a funcionar.
Los resultados de este metodo fueron como lo
esperado ya que los primeros valores de saturación estaban situados vagamente
y ocasionaron la ruptura de una hélice y un tornillo.
Después de utilizar el método de zigler-
nichols para la obtención de los valores PID, los resultados seguían siendo
oscilaciones aunque cada vez mas cortas, lo cual se intuye que el PID
implementado estaba funcionando pero necesitaba correción manual.
En la gráfica se muestra la referencia, el
sensor(amarillo) y el pwm aplicado al motor.
En cuanto a la corrección manual de
los valores PID, se tenía como referencia la gráfica que muestra los datos del
sensado y lo que se le aplica en pwm al motor, por lo que modificando el PID se
podía observar tanto fisicamente como en la gráfica, así que era más simple la
sintonización.
Claramente, al aumentar la Kd , la respuesta era muy
ruidosa por lo que no debía pasar del valor de 0.1 ya que los actuadores empezaban a
desfazarse.Por otro lado, si se aumenta la Kp la respuesta de los
actuadores era muy agresiva.
Para
la comunicación de matlab con arduino, se manda la información del angulo menos
la referencia o viceversa y posteriormente se convierte en un dato UNIT8 para
que esté limitado el valor a numeros de 0-255 .
IV. CONCLUSIONES
La aplicación de un PID en el control de
estabilidad de un sistema PVTOL fue satisfactorio ya que dicho sistema se estabiliza en una referencia
dada.
Por un lado, los valores para sintonizar el
PID son dificiles de adquirir ya que en ocasiones al mover un parámetro el
sistema puede quedar inestable; por otro lado, se nota que después de una
cantidad x de saturación superior los variadores actuan de una manera no lineal
y mas parecida su curva de respuesta a una exponencial, lo que claramente
altera el comportamiento del sistema.
Posiblemente el error se corrija al programar
los variadores de velocidad de una manera correcta, es decir que no amortigue
el cambio de velocidad y que entregue directamente la señal al motor, y así
crear una relación mas directa entre el motor y el programa en la pc.
Al
utilizar los conversores de datos en simulink especificamente UNIT8 para poder procesar las señales se pierde
información la cual crea “brincos” en el PID y los cuales se reflejan
instantáneamente en sobretiros de los motores, por otro lado existe un cierto
retardo dentro del sistema, lo cual quizás sea corregible al escoger los
valores precisos de PID.
TUTORIAL :
A todos los interesados les dejo un link donde pueden descargar los archivos de simulink y de arduino :
http://www.4shared.com/folder/uVaappUD/PVTOL.html?detailView=true&sortAsc=true&sortsMode=NAME
TUTORIAL :
A todos los interesados les dejo un link donde pueden descargar los archivos de simulink y de arduino :
http://www.4shared.com/folder/uVaappUD/PVTOL.html?detailView=true&sortAsc=true&sortsMode=NAME
- Antes de comenzar a tener problemas, instalen el modulo de arduino para simulink.
- hagan el tutorial de esta página http://www.geekmomprojects.com/gyroscopes-and-accelerometers-on-a-chip/
- Conecten todo
- Prueben motores con el archivo que subí llamado control de motor con PWM
- Limitar o saturar en simulink *PID para la salida del pwm por el puerto serial para que no se vayan a matar con una hélice.
REFERENCIAS
BASADO EN :
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/
BASADO EN :
http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-controlador-pid/
http://www.cdiweb.com/datasheets/invensense/MPU-6050_DataSheet_V3%204.pdf
http://prometheus4.com/share/quad-articles/balas_2007.pdf
http://math.ucsd.edu/~mleok/pdf/LeLeMc2010_quadrotor.pdf
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=89294
http://chrfredelasse.blogspot.mx/ (complementary filter vs kalman filter)