Calcular la velocidad a partir de los recuentos del codificador

0

Estoy usando la biblioteca de codificadores de Arduino para realizar un seguimiento de los recuentos de codificadores de mi motor. Necesito calcular la velocidad del motor para poder compararlo con una velocidad objetivo y someterlo a PID.

He pensado en un enfoque:

1) Calcular recuentos por paso de tiempo: digamos que tenemos un paso de tiempo de 100 ms y deseamos una velocidad de 50 cm / s. Determine la velocidad en unidades de paso de tiempo, 50/10.

Para calcular la velocidad a la que se desplaza el motor, simplemente calcule cuántas cuentas desde el último paso de tiempo, lo que dará velocidad en unidades de tiempo, que se pueden comparar directamente con la velocidad deseada;

speed = counts - prevCounts;
prevCounts = counts;

La ventaja que puedo ver con este enfoque es que no requiere que realicemos una división (es decir, velocidad = (cuenta - prevCounts) / 0.1) en cada paso del tiempo.

¿Es esto sensato? ¿Hay algún defecto en mi método?

    
pregunta M-R

1 respuesta

1

Parece que es correcto siempre que estés calculando todo en tiempo de paso de unidad porque todo lo que hace es escalar las unidades.

    
respondido por el Yogesh Mahajan

Lea otras preguntas en las etiquetas