I thought I would take a crack at the question of acceleration -- how long does it take a wheeled bot to get to its maximum speed? For the idealized bot it turns out the answer is: never. On a level surface (and in the absence of friction) a bot's max speed *s* given by the unloaded RPM of the motor **p0** and wheel radius **r**.*s = p0 * r / 10*

At full speed there is zero torque on the wheels -- the full power of the motor is being converted to RPM. At a standing start, however, the motors are stalled and giving their full torque. As the bot speeds up the torque drops, and the rate of acceleration approaches zero as the bot reaches its full speed. No matter how fast the bot goes, there's never quite enough torque to get it to full speed.

Mathematically this is represented by a linear differential equation. Torque is related to velocity such that at 0 we have full torque and at speed we have zero. I'm using uppercase **T** for torque here since **t** is time. (I was using *tau *in my notes, but I don't have a *tau *key.)*T(v) = T0 * (1 - v / s)*

Acceleration (the derivative of velocity) is given by force divided by mass. Force is torque divided by radius. Multiplying it out we get:*v' = T0 * (1 - v / s) / (r * m)*

I'll spare you the tedious details, but by doing some old-fashioned calculus we can determine a closed form solution for velocity as a function of time:*v(t) = s - s * exp ( -t * T0 / (s * r * m))*

So at time zero the speed is zero. It rises rapidly after that but then levels off and becomes asymptotic to the max speed. Of course for practical purposes there's a point where it's going about as fast as it can. The bot will be at 95% when the exponent reaches -3:*-t * T0 / (s * r * m) = -3*

Solving for **t**:*t = 3 * r * m * s / T0*

Alternately if we have a desired time we can rearrange to solve for torque:*T0 = 3 * r * m * s / t*

## Bookmarks