Sei sulla pagina 1di 12

Diseo de un robot balancn

Jader Alvarino
Jalvarino28@unisalle.edu.co
Leonardo Ciendua
cleonardo31@unisalle.edu.co

Resumen- El presente informe, presenta el diseo e implementacin del robot balancn, donde se evidencia el diseo
y construccin de la estructura, asi como el diseo de los controladores para estabilizar el sistema.

Palabras claves: robot balancn, Pndulo invertido,


I.

OBJETIVOS

Disear la estructura mecnica, mediante el software Solidworks

Estudiar el modelo matemtico del sistema

Seleccionar los diferentes actuadores y sensores del robot.

Disear distintos controladores para el sistema

Implementar el diseo propuesto

II.

METODOLOGIA

El proceso de diseo y construccin, se abord mediante el siguiente paso.


Primero se realiz el diseo estructural del robot balancn por medio del software Solidworks, el proyecto
parte de una estructura previamente construida, validando igualmente que con dos ruedas el sistema sea lo
suficientemente estable en lazo abierto, lo cual fue verificado
Con lo anterior planteado y visualizado mediante el software de Solidworks, se continua con obtener las
diferentes partes fsicas que componen la morfologa de robot, las cuales fueron la base donde soportara los
diferentes componentes, los motores, las ruedas, los sensores, la batera, y la tarjeta de potencia para
controlar los motores como la tarjeta de control.
DISEO EN SOLIDWORKS
El diseo obtenido por medio de Solidworks es el presentado en la figura 1, en el cual se observa, la
seleccin, del sistema de locomocin por ruedas, el cual se compone de dos ruedas fijas laterales, esta
descripcin se presenta en la figura 1 y 2.

Figura 1. Diseo de robot balancn

Figura 2. Sistema de locomocion y disposicion de las ruedas del robot

ELEMENTOS SELECCIONADOS
RUEDAS
Debido al entorno de trabajo del robot se seleccionaron ruedas lisas para una mxima traccin y bajo
deslizamiento, las cuales tienen un dimetro de 21 cm, como se observa en la figura 3, se considera esta
configuracin para una mayor estabilidad del sistema, puesto que hay mayor rea de contacto con el suelo

Figura 3. Imagen ruedas de traccin

MOTOREDUCTOR
La traccin del robot se realizara por medio de dos motoreductores figura 4, trabaja a una tensin de 12
voltios dc y en las pruebas de movilidad se halla su consumo con una corriente de 0.6 amperios cada
motoreductor, tambin se prob que acoplados con la base puede trasladar una carga de hasta 9 kg de forma
estable, su caja reductora presenta una relacin de reduccin de 1:62.

Figura 4. motoreductor de 12 V DC, relacin de reduccin 1:62

BATERA RECARGABLE
La fuente de poder recargable es la batera DAHUA de 12 voltios dc, 2.2 amperios, ofreciendo un servicio de
20 horas figura 5.

Figura 5.imagen bateria DAHUA

TARJETA DE POTENCIA
ARDUINO MOTOR SHIELD (ARDUMOTO)
Para controlar independientemente el sistema de potencia requerido de los motores se utiliza, la tarjeta
complemento para arduino Ardumoto, vista en figura 6, diseada para controlar dos motores DC basndose
en un puente H L298 capaz de proveer hasta 2A por canal. El control OUT1/2 est conectado a la lnea 12
para direccin y a la 3 para velocidad (PWM A) El control OUT3/4 est conectado a la lnea 13 para
direccin y a la 11 para velocidad (PWM B).

Figura 6.imagen tarjeta de potencia

Figura 6. Acople del encoder con el motoreductor


MODULO ACELERMETRO MMA7361
Este modulo en su interior tiene el integrado MMA7631 el cual es un acelermetro analgico de 3 ejes (x,y,z)
el cual soporta una fuerza mxima de hasta 6g.
Es un dispositivo capacitivo, que posee compensacin bajo temperatura y auto seteo.
Posee un sensor de cada libre el cual podra ser til para dispositivos que requieran realizar una tarea si esto
ocurriera (por ejemplo los discos rgidos de la marca IBM poseen este dispositivo para sacar rpidamente los
cabezales del disco si este llegara a caer al piso, de esta forma no generan roses y no se pierde informacin).
Lo que podra interesarnos son sus tres salidas anlogas que sern de 800mV/g.

Figura 7. MODULO ACELERMETRO MMA7361

La tensin de alimentacin va desde los 2,2V a los 3,6V. En este caso al tratarse de un modulo es posible
alimentarlo con 5V ya que posee su regulador de 3V3 el cual tambin nos provee una salida de esa tensin

IV. MODELO REAL


A continuacin se puede observar la construccin real del sistema, que incluye materiales de
ingeniera como nylon para las bases y aluminio en el caso de las varas redondas que dan
soporte a la base superior:

Figura 8.Estructura robot, vista lateral 1


Como se observa en la siguiente imagen, se utilizo el compas con el que cuenta el iphone 5s calibrado en el plano horizontal para
calibrar el sensor acelerometro que utilizamos:

Figura 9.Caracterizacin del sensor

Luego de ensamblar los diferentes componentes descritos anteriormente se procedi a caracterizar el


sistema, mediante matlab para lo cual se hizo uso de la lectura de datos del sensor vs la salida de potencia
del motor donde se observaron variaciones desde -30 hasta +30, anexo se encuentra el cdigo
implementado en Arduino para enviar los datos de potencia vs ngulo medido por el acelermetro por
puerto serial, para lo anterior se implement el cdigo mostrado a continuacin:

Datos de potencia (rojo) vs. Posicin en grados (azul).


clc;
clear all;
load ('Datos1.txt');
%[a,b]=size(Data);
[a]=size(Datos1);
j = 0;
for i=1:2:a
j=j+1;
x(j)=Datos1(i);
end
j = 0;
for q=2:2:a
j = j+1;
y(j)=Datos1(q);
end
y=y';
x=x';
%Acomodando los valores de potencia y Velocidad

A partir de los datos se obtuvo la funcin de transferencia del subsistema del motor, por medio de la
herramienta matlab ident, en donde se tom la funcin de transferencia con un polo y un ceros, en donde
se tiene un porcentaje de proximidad del 95%.
La siguiente es la funcin de transferencia para este sistema:

La respuesta en lazo abierto del subsistema se grfica y observa en la siguiente figura, en donde el sistema
se estabiliza aproximadamente despus de 6000 seg, estabilizndose en una valor aproximado 1, en donde
se aprecia que el sistema es estable y con un tiempo lento de respuesta.

Figura 9. Respuesta de la F.T. del motor a un escaln unitario.

PI EN TIEMPO CONTINUO
El paso siguiente consisti en disear un controlador para mantener el sistema estable, se realizaron dos
tipos inicialmente, un PI en tiempo continuo y el segundo un compensador en tiempo discreto.

Diseo del Controlador

Partiendo de la funcin de transferencia de la planta

Y teniendo en cuenta que la ecuacin para un controlador PI es:

Donde la reduccin se obtiene la siguiente ecuacin:

Simplificando,

Se requiere que el sistema para una entrada de tipo escaln tenga un error de estado estacionario 0, un
overshoot mximo de 15% con un tiempo de respuesta menor a 1 segundo. Para garantizar que el sistema
sea estable con el controlador, se pretende que los polos se encuentren a 45
Tomando al denominador de L(S) como ecuacin de diseo, y con base en la ubicacin de los polos del
controlador, se tiene que:

Luego se convierte la ecuacin anterior en homognea.

Mediante la ecuacin cuadrtica se obtiene las races del lado izquierdo las cuales son las contantes del
primer controlador

Simplificando

Despejando de la anterior ecuacin Kp y Ki se consiguen los valores para las constantes del controlador:
Kp=4,09521

Ki=0,02579

La figura 8, se observa la respuesta de la posicin del motor con el controlador diseado anteriormente.
En donde el overshoot del sistema es menor del 15% y un tiempo de respuesta de 80 ms.

Figura 11.Respuesta de la posicin del sistema con controlador.

PI TIEMPO CONTINUO

El cdigo implementado para el PID es el siguiente:


unsigned long now = millis();
double timeChange = (double)(now - lastTime);
double error = setpoint - angleXZ; //error de angulo
double errSum = (error*timeChange);
double dErr= (error - lastErr)/timeChange;
pot = abs(kp * error + ki * errSum + kd *dErr) ;

a continuacin se establece la direccin de giro dependiendo de si el error es positivo o negativo y se le


enva una potencia igual a cero:
if (error>3){

motor_dir(1,2);
motor_dir(1,1);
analogWrite(vel,pot);
analogWrite(vel_2,pot);
} else if (error<-3){
motor_dir(2,2);
motor_dir(2,1);
analogWrite(vel,abs(pot));
analogWrite(vel_2,abs(pot));
}else if((error<3)&&(error>-3)){
pot=0;
analogWrite(vel,abs(pot));
analogWrite(vel_2,abs(pot));
}

PI DISCRETO
Se procedi luego a disear un controlador PI en tiempo discreto en miras de observar si la respuesta se
haca ms rpida y estable, para esto se procedi a hacer los clculos
Teniendo el controlador diseado, se contina con la discretizacin de las ecuaciones por medio de
retenedor de orden cero para implementarlas en cdigo c y poner el controlador en cascada a prueba. A
continuacin se muestra la discretizacin.
El retenedor de orden cero tiene la siguiente forma:

Multiplicando la ecuacin del controlador por el retenedor:

Simplificando y discretizando los resultados, se tiene la ecuacion para el controlador:

Aplicando ecuaciones de diferencias, se tiene que:

El cdigo implementado para el PI es el siguiente:

unsigned long now = millis();


double timeChange = (double)(now - lastTime);
double error = setpoint - angleXZ; //error de angulo
pot = (error*Kp)-(Ki* error_ant)+(pot_ant) ;

pot=pot_ant;
error=error_ant

Al igual que en el anterior controlador se tiene que establecer el sentido de giro de las ruedas segn las
condicines que se encuentra el robot, si el Angulo respecto a la referencia es positivo o negativo, adems
de limitar la salida del controlador hasta 250 en caso se sobre picos, como se observa a continuacin:
if (angleXZ>1){
motor_dir(2,2);
motor_dir(2,1);
analogWrite(vel,pot);
analogWrite(vel_2,pot);
} else if (angleXZ<-1){
motor_dir(1,2);
motor_dir(1,1);
analogWrite(vel,abs(pot));
analogWrite(vel_2,abs(pot));
}else if((error<3)&&(error>-3)){
pot=0;
analogWrite(vel,abs(pot));
analogWrite(vel_2,abs(pot));
}
if (pot>250){
pot=250;
}else if((pot<0)&&(error<-30)){
pot=pot*(255.0/200);
if(pot<-250){
pot=250;
}
}
Serial.print(error);
Serial.print(" ");
Serial.print(pot);
Serial.print(" ");
Serial.println(angleXZ);

delayMicroseconds(500);

V.

CONCLUSIONES

Debido a la alta inercia del sistema, el controlador no logra estabilizar el sistema, pudiendo ser el
bajo tiempo de estabilizacion de controlador.
Se comprobo el ruido en el sensor de acelerometro debido a las perturbaciones generadas cuando la
estructura tiene contacto con el suelo, incorporando inestabilidad al sistema por sus medidas
erroneas del sensor.
es necesario la calibracion del sensor tomando como referencia el compas del celular iphone, puesto
que el sensor utilizado no es de tipo absoluto.
Se debe implementar una etapa de proteccin con diodos entre el puente H y el controlador: Arduino
uno para evitar daos en la tarjeta
Se debera realizar una calibracion de velocidad para las ruedas puesto que un motor gira mas rapido
que el otro, al conectarlos al mismo voltaje.
Se evidencio que la respuesta del controlador no es suficientemente rapida para estabilizar el
sistema, pudiendo necesitar un controlador adicional en cascada.
El sistema sufre de retrasos debido a los cortos circuitos momentaneos, que se generan al invertir el
sentido de la corriente como consecuencia del sentido de giro de los motores, por lo cual es
necesario establecer un tiempo de desenergizacion del sunistro de corriente de los motores.
VI.

BIBLIOGRAFIA

[1].Smith y Corripio. Control automtico de procesos


[2]. Jhonathan Love. Process Automation
[3] HC-SR04 Ultrasonic Ranging Module Datasheet.
[4] Katsushiko Ogata. Dinmica de sistemas. 1987.
[5] Yamamoto, Y., 2008, NXTway-gs (self-balancing two-wheeled robot) Controller Design, disponible en http://
www. mathworks. com/ matlabcentral/ fileexchange/ 19147 (Septiembre 2008)
[11] Patete, A., 2002, Desarrollo de un Mmico de un Sistema de Control en Mathematica. Proyecto de grado,
Facultad de Ingeniera, ULA, Merida,
Venezuela.

Potrebbero piacerti anche