Traction and Traction Control Coding

Traction force is needed to transfer the motor force to vehicle acceleration. The predictive analysis of a 1.449s race time assumes direct force transfer. Where the rubber meets the road is not so direct.

The force between the tire and road surface is the car's weight. The weight at the rear tires is proportional to the motor section behind the center of mass.

Traction force is equal to the vehicle's force times the friction coefficient of the material contacting the road. For example, the friction coefficient for a basic street tire is 0.7. So, the rear wheel traction force is

Ft = .250kg x .7 = 0.175

A traction force of .175 is generated at the road surface.

Traction force must be greater than the propulsion force, or the wheels will spin.

With a 4.73N propulsion force at each wheel of Proto-1 and .175N traction force, the wheels will spin!

Traction Control Coding

You can't start with full throttle. Instead, the throttle must be incremented not to exceed traction force, .175N or less, until the maximum propulsion force of 4.73N is reached. So,

4.73N / .175 = 27.02 increments or 27 rounded down.

As you learned or will learn, throttle range for coding is 1000 for zero throttle to 2000, which is maximum throttle. Assuming both scales are linear, mapping the force increments to this throttle range, we have a range of 1000 with 27 increments, 1000 / 27 = 37.03 or 37 rounded. This increment can be coded to generate a non-skid acceleration curve, theoretically.

The 'for' command can be used to loop through incrementing of numbers. The syntax is:


	for ( init; condition; increment ) { 
   statement(s);
}
    

Where:


	for (throttle = 1000; throttle < 2000; throttle+=37) { 
    BLDC1.writeMicroseconds(throttle); // Send signal to ESC.
    delay(10);                         // 27 increments * .01s =.27s run time
     }
	

Of course, these calculations do not take into account variation in material and environmental conditions. Much more R&D is needed.

Review this code. You will be using it later in eDragster development.