Before switching over to BLDC motors, I was going to use brushed DC motors with planetary gear. I did a few test runs with the brushed DC motors with a Roboclaw motor controller and was not happy with the noise from the motor/gears (the robot was doing to much noise). One advantage with the planetary gear was that they already had an suitable RPM for a lawnmower (no high speeds) around 33RPM on the shaft.
Switching over to BLDC motors resulted in a few adjustment on the robot. I needed to build a drive system that could reduce the RPM. When adjusting/reducing a gear ratio there are quite a few different methods to chose from. In my case I wanted a silent robot (as silent as possible) and decided to go with a timing belt. I chose the timing belt because there were no hard details that opposed each other that could create noise in the system.
I timing belt drive consists of pulley and belt to increase/decrease the RPM of different pulleys. In my setup I will use a timing belt with 2 pulley for each motor (differential drive). The motors will have a smaller pulley and the drive shaft will have a larger pulley, this way I can reduce the RPM at the drive shaft and finally the speed of the robot.
The BLDC motors have a quite high possible max RPM. So reducing this can be hard. It all depends on the space needed, desirable RPM, start speed and the torque needed to make the robot take of. So if the motors are not driven at the highest duty possible one can achieve lower RPM. I tested a few different settings with my VESC and a tachometer (an instrument which measures the working speed of an engine (especially in a road vehicle), typically in revolutions per minute).
Here is a chart that expresses the relationship between RPM and Duty for my motors (The RPM comes from the Tachometer and the Duty from the BLDC tool for VESC) The VESC is running FOC mode and the motors are equipped with 120 degrees internal pcb hall sensors.
Looking at the chart above I stoped at 45% Duty because I had no need for higher RPM, my application is a slow moving lawnmower.
I have not calculated the start torque of any values here (but I will) I did a quick and dirty test of holding the BLDC motor to feel how much start torque it had, for all values above it seemed fine (for Duty => 18% I could not actually hold the motor in place). At 10% Duty one could see a tiny “uneven” start. This is caused by the hall sensors and rotor position (The hall sensors where a few degrees of and it took sometime before the hall sensors found its position). To get a smoother start and better start torque I will add a high-resolution rotary position sensor with angle measurement over a full 360-degree range.
So before we continue we need to know how fast the robot will drive. A lawnmower should not be driven as a race car, a slow and even speed is the goal. I would say something around 0.4-0.8 m/s.
Now that we know that desirable surface speed of the wheels. We can calculate the desirable RPM on the Drive shaft and, in turn, desirable RPM on the motor shaft (Please note that all values are calculated with 0 weight of the robot and a 0 friction of the ground etc.).
Wheel(cm)*PI= Wheel Perimeter 23*PI=72.25cm Desirable Surface Speed*60/Wheel Perimeter meter=RPM
0.4*60/0.7225=33.31 RPM 0.5*60/0.7225=41.52 RPM 0.6*60/0.7225=49.82 RPM 0.7*60/0.7225=58.12 RPM 0.8*60/0.7225=66.43 RPM
Now we have the desirable RPM for the drive shaft. We would need to start looking at gear ratio between the pulleys. In my setup the biggest pulley that would fit for the drive shaft have an pitch diameter of 105mm and the small 12mm.
Ratio=Pitch Diameter pulley 1/Pitch Diameter pulley 2 105/15= 7 Ratio
This means the RPM will be reduces of an ratio of 7 in my setup. RPM motor shaft / 7 = RPM drive shaft.
So I could almost directly see that the MAX duty was around 10% for the BLDC motors. But lets to the calculation
407/7= 58.14 RPM
So the summary is that the BLDC motor applied Duty would be in the span of 10-15% to achieve the desirable speeds. It would properly be best to be in the lower region of the Duty at 10%.
Lets see further down the line how it all adds up.
Note: I had some problems finding a big pulleys that would fit my current setup. Motor shaft diameter, shaft diameter and the correct amount of teeth. So I designed a XR pulley for the drive shaft. this way I could get as big as possible (reducing as much as possbible)
Here is the sketch of the tooth on the XR pulley