First of all, what a great resource for the CD community! I’m very thankful for the thoughtful research that went into to this paper, and that you released this for everyone to benefit from.
I have a few (scratch that, lots of) questions about your methods and findings.
First, given a desired sprint distance (ie, a distance which high gear is optimized for), how does this translate into an actual distance that we can plug into your calculator? Usually, we want a robot to be stopped, or close to stopped at the end of our sprint distance. If we want to go from stopped to, let’s say 15 feet, you don’t realistically accelerate for all of that distance, so it would be inappropriate to design for the highest speed possible at 15 ft, or lowest time to 15 feet. On the other hand, an FRC robot does not need equal times to accelerate and decelerate (like a spaceship would), so it would be wrong to design around a time to 7.5ft or max speed at 7.5ft. Would you just go with a “medium-ish” guess of acceleration for 12 feet and deceleration for 3 feet? Is there some more analytic way to determine the “max speed distance” given the desired sprint distance?
Second, which do you more design around, time to distance, or time to speed? You mentioned that you wanted time to speed as well as time to distance, so you didn’t end up with a ratio that accelerated too slowly. Does this mean that first find the best gear ratio for time to (sprint) distance, and then check the time to speed to see if it looks OK? Or do you work to optimize time to speed as well as time to distance?
My third question has to do with your battery voltage calculation method. Could you solve for battery voltage with a differential equation, given motor speed and load? Or is your iterative method of calculation a better simulation of the real world? Ie, does current drawn in one microsecond determine battery voltage in the next microsecond (which determines current drawn, and around the cycle goes), or is this just a situation where a calculus approach is just overkill?