Proyecto Final: Towercopter
Juan Camilo Castiblanco, Felipe Antonio Gómez, Laura Golondrino, Héctor David Pulido, Rubén Camilo Moreno
Departamento de Ingeniería Electrónica, Universidad de los Andes
Bogotá D.C., Colombia
[Link]@[Link], fa.gomez12@[Link], [Link]@[Link],
hd.pulido10@[Link].moreno1084@[Link]
Profesor: Alain Gauthier Sellier
Profesor: Luis Fernando Burbano Palacio.
I. INTRODUCCIÓN movimientos disponibles. Al tener solo un grado de
movimiento es relativamente fácil hacer una toma de
El siguiente trabajo se basará en la elaboración de un datos al colocarle un sensor.
Towercopter en una estructura montada y en la base de
esta se colocará un sensor de ultrasonido HC-SR04 para Motor Brushless: Motor eléctrico sencillo de corriente
poder detectar la altura de este y así poder determinar el continua que se mueve debido a un campo
sistema dinámico bajo el cual el Towercopter está regido, electromagnético que atrae el lado opuesto del rotor
con el fin de obtener una serie de datos los cuales van a hasta que llega a una determinada posición donde unas
ser analizados en MATLAB. escobillas en contacto con el positivo y tierra cambian la
Para poder explicar mejor este proyecto se va a dividir en polaridad para que de nuevo sea atraído el lado opuesto
2 partes. La primera consistirá en explicar cómo se hizo del rotor y así crear un movimiento continuo. [1]
el montaje de Towercopter, mientras tanto, la segunda
parte va a tratar en detalle sobre todo el proceso realizado Control de velocidad ESC 30A: Un control electrónico
en la parte de identificación y control del sistema. de velocidad o ESC es un circuito electrónico que tiene
II. OBJETIVOS el fin de variar la velocidad, dirección y, posiblemente,
también para actuar como un freno dinámico de un motor
GENERAL: eléctrico. Este control permite controlar las revoluciones
del motor cambiando la cantidad de corriente que pasa a
Encontrar el modelo y hacer el control de un través de las bobinas y, por ende, el voltaje. [2]
helicóptero torre, o Towercopter.
Tarjeta Arduino Uno: Arduino Uno es una placa
ESPECÍFICOS: electrónica basada en el microcontrolador ATmega328.
Este proporciona un software consistente en un entorno
Aplicar los conocimientos teóricos y prácticos de desarrollo (IDE) que implementa el lenguaje de
aprendidos en el curso de Sistemas Dinámicos a programación de arduino y el bootloader ejecutado en la
lo largo del semestre. placa. La principal característica del software de
Desarrollar habilidades de trabajo en equipo. programación y del lenguaje de programación es su
Desarrollar habilidades para la identificación, sencillez y facilidad de uso. [3]
modelación y control de sistemas dinámicos.
Desarrollar habilidades de toma y análisis de Sensor Ultrasonido HC-SR04: Este sensor es capaz de
datos. detectar obstáculos y calcular la distancia en la que se
encuentra dicho obstáculo. Tiene un emisor y un receptor
de ultrasonidos que trabajan a una frecuencia de 40KHz,
III. MARCO TEÓRICO. también consta de 4 pines, alimentación (Vcc), un
disparador (Trig), el receptor (Echo) y tierra (GND). Este
Tower Copter: Un tower copter es un sistema que genera una onda sónica en el emisor mediante un pulso
consta de una parte móvil, la cual es un motor con una en el disparador "Trig", esta onda al encontrarse con
hélice; junto con un marco o unos soportes laterales que algún obstáculo rebotará, volviendo al sensor y siendo
permitan a la parte móvil tener solo un eje de
registrada por el receptor, traduciéndose esta en un pulso como base, esta ayudaría a darle estabilidad al
en el receptor "Echo". [4] TowerCopter.
Para los soportes del dispositivo se hicieron unos
Control PID: El control PID es un mecanismo de agujeros en la tabla para colocar unos soportes de metal,
control que a través de un lazo de retroalimentación los cuales con ayuda de unas tuercas se fijaban a estos
permite regular la velocidad, temperatura, presión y flujo unas varillas de metal de 8 mm de diámetro. Uno de los
entre otras variables de un proceso en general. El grandes retos del proyecto fue que la base donde se
controlador PID calcula la diferencia entre nuestra encontraría el motor no se inclinara al momento del
variable real contra la variable deseada. El algoritmo de funcionamiento de este. Esto se solucionó adicionando
control incluye tres parámetros fundamentales: Ganancia dos tubos de metal con un diámetro mayor al de las
proporcional (P), Integral (I) y Derivativo (D). El varillas donde estos encajaban perfectamente con los
parámetro Proporcional (P) mide la diferencia entre el tubos de PVC dispuestos en la base del motor
valor actual y el set-point (en porcentaje) y aplica el solucionando así la inclinación que se producía
cambio, este es el único parámetro utilizado en nuestro anteriormente. Otro gran reto fue que al momento de
sistema. [5] disponer de las varillas era necesario hacer que estas
estuvieran totalmente verticales a la tabla de madera, ya
IDENT: Es una herramienta de Matlab que se utiliza que de lo contrario el dispositivo no subiría con gran
para la construcción de modelos matemáticos de sistemas facilidad debido a la fricción. A continuación, se
dinámicos a partir de los datos de entrada y salida presenta una imagen de las varillas de 8 mm de diámetro
medidos, para identificar funciones de transferencia en usadas en la elaboración del dispositivo.
tiempo discreto o continuo, modelos de proceso y
modelos de espacio de estado. [6]
PID TURNER: Es una herramienta de Matlab que
encuentra los valores de ganancias proporcionales,
integrales y derivadas de un controlador PID para lograr
el rendimiento deseado y cumplir con los requisitos de
diseño. [7]
IV. MATERIALES
Los materiales que se usaron en el proyecto fueron los
siguientes:
Motor Brushless A2212/10T 1400 KV
Hélices Figura 1. Varillas 8mm diámetro.
Control de velocidad del motor ESC 30A
Tarjeta Arduino UNO Para la implementación de la base del motor se usó
madera ligera, para ayudar al motor elevar menos peso.
Sensor Ultrasonido HC-SR04
A esta base se le hicieron dos agujeros, cada uno en un
Caimanes
extremo de esta, esto con el fin de insertar tubos de PVC
Rodamientos de 8mm de aproximadamente 5 cm de largo y 2 cm de diámetro,
Tubos metálicos de 8mm de diámetro y 40cm de estos tubos encajarían perfectamente en los tubos de
largo metal descritos anteriormente para eliminar la
Jumpers inestabilidad del dispositivo. En un principio se pensó en
Tablas usar rodamientos para las varillas de 8mm de diámetro,
Silicona pero al implementarlo surgió el problema de que estos
pesaban demasiado y el dispositivo no subía. Al agregar
V. ELABORACIÓN DEL TOWERCOPTER los tubos de PVC se solucionó esto ya que estos tenían
un peso menor.
Primero, se empezó armando la estructura de la base del El motor usado para el dispositivo fue un Brushless
TowerCopter, en la cual se utilizó una tabla de madera A2212/10T 1400 KV, el cual se diferencia de otros ya
que no tienen escobillas y su funcionamiento se debe a
que la corriente entra directamente a las bobinas de cobre
en su interior, las cuales generan un campo magnético
que interactúa con el campo magnético de unos imanes
dispuestos en la pared del motor, lo que genera un
movimiento.
Estos motores son trifásicos lo que significa que
necesitan de ser conectados a un variador de velocidad.
Según la forma en que se conecten los cables de los
terminales positivo (cable rojo) o negativo (cable negro)
el motor girará en diferentes sentidos. A continuación, se
mostrará una imagen del motor usado en el dispositivo.
Figura 3. ESC 30 A.
El dispositivo usado para medir la distancia fue el sensor
de ultrasonido HC-SR04, con el cual se tomaban los
datos de altura que tenía el dispositivo. El
funcionamiento de este se basa en que envía pulsos por
un altavoz, los cuales rebotan en un objeto y son
captados por un micrófono del sensor. Para la medición
de la distancia se cuenta el tiempo que tarda el pulso en
ir y volver, ya que conociendo la velocidad del sonido y
el tiempo de ida y vuelta poder conocer la distancia a la
Figura 2. Motor Brushless A2212/10T 1400KV.
que se encuentra un objeto. A continuación, se presenta
Como se puede apreciar en la imagen el motro cuenta una imagen del sensor usado.
con una base de metal para ser fijado en el lugar
escogido para su uso, a demás de un adaptador para
colocar una hélice con la cual impulsar en este caso el
dispositivo a una altura mayor.
Para controlar la velocidad del motor se usó un ESC 30A
(electronic speed controller), el cual es un variador de la
corriente que entra al motor, esto con el fin de disminuir
o aumentar la cantidad de revoluciones por minuto del
motor. Este dispone de tres cables para conectar al
Brushless, hay que tener cuidado al hacer las conexiones,
ya que este es un dispositivo con polaridad y que si no es
conectado debidamente puede causar un daño
irremediable en este. El ESC es conectado debidamente a
Figura 4. HC-Sr04.
una fuente de voltaje dispuesta entre 6V y 12V y para
poder controlar este es necesario la conexión de sus pines A continuación, se presenta una imagen del dispositivo
hembra a un microcontrolador. A continuación, se final.
dispone una imagen del ESC 30 A.
milivoltios, un valor alto del pulso cuyo valor fue de
1550 con el cual llega al tope de la base y por último un
valor en el cual el Towercopter sube y se mantiene en un
punto sin tocar la parte superior de la base, este último
fue de 1425 milivoltios.
Posteriormente como segunda parte para realizar la
identificación del sistema se introdujo desde el monitor
serial de Arduino un valor de 1425 milivoltios, cuando el
motor estaba en reposo, para que el motor empezara a
subir hasta llegar a una altura cercana al tope sin tocarlo
y se estabilizara, mientras que simultáneamente se
tomaban datos de la distancia con uso del Sensor
Ultrasonido HC-SR04 cada 100 milisegundos. Se
recogieron 274 datos de distancia. Estos datos fueron
pasados a una hoja de cálculo de Excel y aparte se creó
otra con los milivoltios que entrega el Arduino al motor.
Finalmente Se hace uso de la herramienta ident de
Matlab, esta herramienta nos permite obtener un modelo
matemático de nuestro sistema, para esto se importan los
datos de las hojas de cálculo siendo los milivoltios del
Arduino la entrada y la distancia la salida con un
timespace de 0,1 segundos, con esto se busca una
función de trasferencia que pueda describir el
comportamiento del sistema del Towercopter.
El programa nos entregara una gráfica que muestra el
comportamiento del sistema. La grafica obtenida fue la
Figura 5. Montaje final del dispositivo. siguiente:
VI. IDENTIFICACIÓN DEL SISTEMA
Después de construido el prototipo totalmente funcional,
se procedió a realizar la identificación del sistema, esta
se dio con el código de lazo abierto en el cual como
primer paso se observó el comportamiento del
Towercopter a diferentes velocidades, se percibió que al
enviar un pulso de 1300 milivoltios desde el monitor
serial de Arduino el motor empezaba a girar, pero a
velocidades muy bajas y por lo tanto este no conseguía la
fuerza necesaria para elevarse, así mismo se identificó
que al enviar un pulso de 1600 milivoltios el motor
llegaba a una gran velocidad, al punto que subía muy
rápido y golpeaba la parte superior de la base del
Towercopter.
En esta primera parte se obtuvieron 3 valores
importantes un valor bajo del pulso de manera que el
motor baje de manera suave, que fue establecido en 1325
Figura 7. Función de transferencia del sistema.
Luego de obtener la función de transferencia de Ident la
guardamos y nos dirigimos a otra herramienta de Matlab
llamada PID Tuner. Esta herramienta nos permite
seleccionar un algoritmo de control PID apropiado, es
decir, sintonizar nuestro sistema. Introducimos la función
de transferencia que obtuvimos en Ident, vista en la
figura 7, y le decimos al programa que queremos el PID
del sistema, después de esto la herramienta nos muestra
la gráfica mostrada en la figura 8 con tres valores, los
cuales son el Kp, Ki y el Kd los cuales hacen que el
sistema esté controlado.
Figura 6. Identificación del sistema en Ident.
Como podemos observar la gráfica que obtuvimos con
los datos de nuestro sistema tiene una forma no muy
convencional, esto es debido a que el TowerCopter no
subía perfectamente, porque había fricción y en
ocasiones realizaba movimientos oscilatorios mientras
intentaba subir, pues estaba en lazo abierto sin ningún
tipo de control. Luego de tener la gráfica de nuestro
sistema, buscamos la mejor aproximación para encontrar
la función de transferencia, la cual se consiguió probando
con las diferentes funciones que ofrece ident, para este
caso la mejor aproximación que conseguimos fue de
83.11% con 3 polos, zero y delay.
Figura 8. Gráfica del sistema en PID Tuner.
Con estas variables obtenidas en PID Turner podemos
crear el control de nuestro sistema al programar en
Arduino el código, logrando controlar el sistema. Al
probar el control en nuestro sistema, vimos que realizaba
demasiadas oscilaciones y no se lograba equilibrar
completamente, mucho menos cuando aplicabamos un 3 amperios, el Towercopter alcanza la altura máxima del
poco de fuerza para observar si se estabilizaba. Así que montaje sin ningún problema, durante las pruebas
intentamos varias veces en nuestro código para hallar el experimentales se dedujo que el sistema requiere de una
error, finalmente nos dimos cuenta que si el Ki es más fuente de energía confiable y estable dado que no todas
pequeño el ajuste será más rápido, por lo que lo llevamos las fuentes mantenían un paso de corriente consistente el
a cero. También quitamos la variable Kd, puesto que cual era requerido por el motor para levantarse. En
vimos un mejor control solo con el parámetro P, es decir cuanto al sensor, este no siempre presenta lecturas
solo utilizamos el valor de Kp. estables lo que afectará al comportamiento del motor a la
hora de ajustarse según la altura que este detecta; dicho
VII. CONTROL esto, si hay un buen posicionamiento del sensor, los
"errores" mencionados no serán significativos si es que
Para el control se usó un control proporcional (p), este se producen pues se muestra que, a pesar de que, si los
control evalúa la diferencia entre el punto establecido hay, las lecturas "correctas" son más consistentes de tal
(set point) y la variable en proceso (input), esta forma que los "errores" no alcanzan a cambiar la
diferencia es equivalente a un error del proceso. El error velocidad del motor.
obtenido se multiplica por la ganancia proporcional (kp) Cabe notar que cuando se cuándo se realizó el código del
para así establecer la salida del controlador. control del sistema, al Towercopter se le asignaba una
altura a la cual tenía que llegar, de forma de que se
P = kp(Setpoint-input) Ecuación 1. mantuviera en esa posición se quedara estable. Además,
cuando por intervención humana el Towercopter subía o
En el caso del Towercopter la variable en proceso es el bajaba, este volvía a su posición establecida en el código
resultado de un mapeo de la distancia que mide el sensor, sin presentar ningún fallo.
este mapeo se realiza con el objetivo de tener una altura
máxima y una mínima siendo estos valores
respectivamente 40cm y 6cm, por lo tanto, el input IX. CONCLUSIONES
tomara valores entre 0 y 100. El set point es una variable
que el usuario determina desde el monitor serial, este
Se logró construir un Towercopter totalmente
debe ser un valor entre 0 y 100. La ganancia kp fue
funcional, el cual describía un sistema dinámico
encontrada de forma experimental, con un valor de 10.5.
no lineal.
Con los datos anteriores se encuentra la salida del
Se construyo un código de software en Arduino
controlador teniendo en cuenta la ecuación 1, esta salida
determina los milivoltios que entrega el Arduino al el cual permitía el correcto funcionamiento del
motor lo que regula la altitud del Towercopter. sensor, y del motor. Después de hallado el
control del sistema, se creó otro programa el cual
hacía que el towercopter se quedara a una altura
establecida y volviera a ella si este era movido
VIII. RESULTADOS de su posición tenía la capacidad de regresar a su
lugar inicial aumentando o disminuyendo la
De acuerdo al procedimiento seguido durante todo el velocidad del motor.
proyecto, se consiguió obtener un montaje de un Se analizaron los datos obtenidos del prototipo
Towercopter funcional que logra cambiar su altura según para así poder hacer una primera identificación
la entrada relativa al mapeo que se realizó al identificar sobre su comportamiento.
el sistema. Se decidió utilizar solo la parte proporcional Concluimos que es muy importante la base en la
para el sistema PID dado que de esa forma el dispositivo
que estará el motor, ya que si no hay una base
se mostraba más estable a la hora de cambiar su posición estable, los problemas que se pueden presentar
según la entrada en comparación con el sistema son varios, como que al intentar subir se
utilizando las proporcionales de integración y derivación. atascaba, o si los soportes no estaban
El sistema no es completamente estable en las
completamente derechos también se atascaba y
transiciones de altura, pero en un acercamiento
otra cosa era que la base no debía vibrar
experimental, su funcionamiento logra superar las
demasiado, ya que esas vibraciones ocasionaban
expectativas de forma controlable. que el motor no subiera adecuadamente.
Como tal, el montaje, según su construcción, presenta
Las oscilaciones que se presentaban una vez
mucha vibración al encender el motor; sin embargo, este
implementado el control se causaban porque no
logra cambiar su altura sin intervención humana.
tuvimos en cuenta las variables externas a
Utilizando una fuente de 12 voltios con una corriente de
nuestro sistema, como la fricción tanto del aire [Link]
como de los soportes o las vibraciones de la
ue-es-el-control-pid/
base. Por ello, al no tomar en cuenta esas
variables el control que realizamos no va a
encontrar los errores adecuados para estabilizar [6] System Identification Toolbox. (2017).
perfectamente el sistema, además se toma en [Link]. From
cuenta que nuestro sistema no es completamente
lineal. [Link]
Para nuestro sistema nos dimos cuenta que se
lograba controlar mejor solo con el parámetro P [7] PID Tuning. (2017). [Link]. From
de un control PID, ya que con los otros [Link]
parámetros no se lograba el control deseado, esto
también puede presentar algunos errores o
complicaciones, ya que un control perfecto se
logra al encontrar una correcta sintonización de
los 3 parámetros, y si solo usamos uno, faltarán
los otros dos para eliminar debidamente los
errores.
X. REFERENCIAS
[1] Motores Brushless - Quadruino. (2017).
[Link]. From
[Link]
necesarios-1/motores-brushless
[2] ESC Controlador de Velocidad para motor
Brushless 30A. (2017). [Link]. From
[Link]
controlador-de-velocidad-para-motor-brushless-30a-
[Link]
[3] Qué es Arduino. (2017). Aprendiendo Arduino.
From
[Link]
25/que-es-arduino/
[4] Diosdado, R. (2017). Zona Maker - Ultrasonido
HC-SR04. [Link]. From
[Link]
sensores-y-shields/ultrasonido-hc-sr04
[5] ¿Qué es el control PID?. (2017). Franklin
Electric Noticias del Mercado. From