Para variar la velocidad de los motores y por tanto de la base de robot móvil
autónomo, hemos empleado una técnica conocida como "Modulación en Anchura de
Pulsos" (o PWM, del inglés "Pulse Width Modulation"). Con esta técnica conseguimos
que la velocidad del motor varíe en función de la duración del ciclo de trabajo
de una señal que se envía al "motor driver".
Desafortunadamente, un determinado ciclo de trabajo de la señal PWM no se corresponde
con una determinada velocidad, pues el rendimiento del motor para una determinada señal
PWM depende de otros factores (peso de la carga, pendiente del terreno,...). De hecho,
dos motores iguales no trabajan a la misma velocidad para la misma señal PWM debido a
diferencias en la construcción de los mismos. Por tanto, no podemos garantizar una
determinada velocidad a partir únicamente de la señal PWM.
Para solventar este problema se ha implementado un algoritmo de control PI en lazo cerrado
que a partir de la velocidad de las ruedas (medida en los encoders) varía el ciclo de trabajo
de la señal PWM para intentar aproximar la velocidad medida en instantes sucesivos a la
velocidad deseada. En la figura 01 se puede apreciar el esquema del lazo de control PI empleado.
El esquema anterior se puede programar mediante el siguiente algoritmo que se ejecuta
de forma periódica:
e3 = bias_deseado + vel_real_izquierda - vel_real_derecha
error_integral = Ki * integra(e3)
e1 = vel_deseada - (bias_deseado / 2) - vel_real_izquierda -
error_integral
e2 = vel_deseada + (bias_deseado / 2) - vel_real_derecha +
error_integral
varia_potencia_motor_derecho(e1*Kp)
varia_potencia_motor_izquierdo(e2*Kp)
|
donde
integra() se consigue simplemente con un acumulador y la periodicidad se consigue
configurando el planificador para que llame a este algoritmo (función
do_speed_ctrl()) de forma
periódica (100ms).
Uno de los pasos más importantes en el uso de estos algoritmos de control se centra en buscar los
valores apropiados para la constante de proporcionalidad,
Kp, y
la de integración,
Ki. El resultado, una vez que el sistema está
en funcionamiento, se puede apreciar en la figura 02. Obsérvese que a bajas velocidades el control
de velocidad no es todo lo eficiente que se desea. A estas velocidades, si la mecánica no es buena
(como es el caso) se presentan grandes problemas a la hora del control.