Copying and pasting from the link I provided in the earlier post:
When the drive motor applies a torque to drive the wheel, this torque will also try to spin the module due to the reaction torque at the 90 degree bevel gear. If the wheels were unable to turn (such as when you are in a pushing match) and the motor were at max stall torque, the reaction trying to spin the module would be the motor’s stall torque times the gear ratio of the gearing between the motor and the bevel.
For our swerve module, we use a NEO motor for drive and then run with either 3:1 or 4:1 before the bevel and 2:1 after the bevel gear.
So, if you take the stall torque of our NEO motor @40A, times this gearing (we will take the worst case which is the 4:1), you get 2.92 ft-lb of torque trying to spin the module.
I believe that this is the highest load that the steering motor needs to react. So this is what we use to assess our steering motor options.
Taking the NEO 550 steering motor, you have 0.215 ft-lbs of stall torque available @30A. Our module uses a 33.3:1 total steering ratio (10:1 in a VP gearbox and 100:30 in the final drive ratio), so if you multiply the NEO 550 stall torque times the 33.3:1 ratio and you get 7.15 ft-lbs of torque available to resist the spinning of the module. This is 2.45 times the maximum torque from the drive motor described above. So, this gives us a decent factor of safety and ensures that we are not running the motor at excessive amperage at stall as we are resisting the torque of the drive motor. Taking the 30 Amps divided by 2.45, we get 12.25 Amps. REVs testing of the NEO550 says that it can sustain up to 20 amps continuously (over a minute) without failing, so 12 amps seems pretty safe.
Running the same math with a 30:1 ratio shows a similar result with 13.6 Amps at stall needed on the NEO 550 to resist the torque imparted by the NEO drive motor.
I defined the problem a little differently. I defined the problem as “is the steering motor strong enough to keep the wheels aligned”. There is more to the problem which is the control loop tuning. I think everyone will acknowledge that there is a limit to how fast you can spin the motor and be able to control it with a control loop. Brushless motors have really opened up a lot of new frontiers in this area since the built-in encoder that is needed to control the motor gives you a more direct feedback loop for control. We switched to the NEO550s for steering primarily because we could control using the motor’s encoder (rather than the absolute encoder) which gave us much more stable control loops. With a brushed motor running a control loop on the absolute encoder (with all the associated backlash deadband between the motor and the encoder), it was not really possible to spin the module much faster than about 200 rpm and have a stable control. With BLDCs we were very stable in 2020/2021 at 330 RPM and many others have been demonstrating stable operation at even faster rotation speeds. Since control stability was no longer the “barrier” preventing faster rotation, we spent some time trying to understand the motor strength barrier to make sure we were not going to run into that. Hence the problem definition that led to math in the post quoted above.
There is an inverse tradeoff between current draw versus responsiveness. In the extreme, if the gear ratio of the steering motor were set to 1000000:1, the current draw to hold position would be vanishingly small, but the response speed would be unacceptably slow as well. As you decrease the ratio, current draw goes up and responsiveness becomes quicker. If you are trying to optimize for low current draw, you will chose the slowest rotation speed that you find acceptable. If you are trying to optimize for responsiveness, you will choose a faster rotation speed with the accompanying increase in current draw to hold position. So, you can’t really optimize for maximum responsiveness AND minimum current draw. You actually need to trade them off. But the math above gives you what you need to perform those tradeoffs - it gives you current draw for a given gear ratio (I trust that you know how to calculate free rotation speed for a given gear ratio).