|
|
|
![]() |
|
|||||||
|
||||||||
An example of improper gear ratio selection, and a possible solution to model robot battery voltage to improve simulation accuracy. Also includes my thoughts on drivetrain gear ratio selection.
In this paper, I describe four things:
-The problem faced when choosing the wrong ratio
-Data collected to verify and solve the problem
-Simulation of battery voltage to back up the data
-My thoughts on drivetrain gear ratio selection
I have also attached my modified spreadsheet which models battery voltage. I hope it is useful to you. Credit for the spreadsheet goes to John V-Neun for his excellent 2004 spreadsheet. I just added a little bit.
RobotSimulation-BatteryVoltageModel.xls
RobotSimulation-BatteryVoltageModeling_RevB.pdf
24-12-2012 23:19
apalrd
A few weeks ago, JVN told me I should write a paper on this. So, after promising it to the CD community, I finished collecting all of the log files and assembling the paper. I hope you all like it. Consider it my Christmas present to Chief Delphi forums.
As always, I'm open to questions and comments, and always looking for ways to improve my design methods.
24-12-2012 23:51
apalrd
Aaaand I shouldn't post things at 11:30 PM.
The first graph labels are wrong. The orange graph is 2.56:1, the blue graph is 4:1. I'll update the PDF.
25-12-2012 00:16
AllenGregoryIV
Andrew,
Thanks for putting this together, I was just thinking about this problem, and this is going to be very helpful. This is a very nice Christmas present indeed.
Allen
25-12-2012 10:28
Al Skierkiewicz
Andrew,
Nice paper! If you look at the battery voltage graph and compare to acceleration you will get an idea on what might be taking place. As the load changes, the current drawn by the motors change, and so to the voltage drop across the internal resistance of the battery. Of course, teams should also be aware that using other motors in the robot (at the same time as driving), also modifies the voltage drops and available current. The length and wire size also have a great effect on the current available to the motors. Longer and smaller diameter wire, adds significant resistance to the individual motors. At 100 amps, #10 wire will drop 0.1 volt per foot. So if the motor is wired with two feet of wire, the drop will be 0.4 volts since you must take into account both the red and black paths. If a team uses #12 for the motor path, double that loss.
25-12-2012 10:57
marccenterAndrew,
Merry Christmas.
I was wondering if your model takes into account gathering a game piece? In a robotic arm application, the manipulator could take a trapezoidal profile to accelerate, cruise at steady speed, and then decelerate to zero speed. This is important because the robot manipulator does not desire to ram into it's final position and
damage the manipulator. This velocity profile would seem to match a FRC robot obtaining a game piece. Would this change your model characterisitics significantly and hence your ratio match?
BTW, thanks for "thinking out of the box" for your analysis. Off to breakfast.
25-12-2012 11:35
ParkerFAndrew,
Thanks so much for posting this technique. I've been working a lot this semester on getting a better understanding of drivetrain design. This has definitely furthered my knowledge and I intend to apply this as a part of my 'lessons learned'.
Again, thanks for sharing!
-Parker
25-12-2012 12:25
apalrd
|
Andrew,
Nice paper! If you look at the battery voltage graph and compare to acceleration you will get an idea on what might be taking place. As the load changes, the current drawn by the motors change, and so to the voltage drop across the internal resistance of the battery. Of course, teams should also be aware that using other motors in the robot (at the same time as driving), also modifies the voltage drops and available current. The length and wire size also have a great effect on the current available to the motors. Longer and smaller diameter wire, adds significant resistance to the individual motors. At 100 amps, #10 wire will drop 0.1 volt per foot. So if the motor is wired with two feet of wire, the drop will be 0.4 volts since you must take into account both the red and black paths. If a team uses #12 for the motor path, double that loss. |
25-12-2012 17:56
AllenGregoryIV
What other ways have people optimization power flow? I remember reading something about Jim Zondag figuring out a way to optimally charge the minibot batteries before matches in 2011 anything like that for standard FRC battery?
What about resistance added by Anderson connectors going to the motors or other quick disconnects?
Any specific type of 10 AWG wire better than others in terms of power loss?
Do these actually make a noticeable difference in performance?
25-12-2012 18:01
Ether|
Any specific type of 10 AWG wire better than others in terms of power loss?
|

25-12-2012 18:33
apalrd
|
What other ways have people optimization power flow? I remember reading something about Jim Zondag figuring out a way to optimally charge the minibot batteries before matches in 2011 anything like that for standard FRC battery?
|
25-12-2012 18:39
Ether|
Since the use time was so short, we were trying to push the charge (and surface charge) as high as possible, as quickly before a match as possible (to reduce fade of the surface charge).
|
25-12-2012 19:59
apalrd
I don't remember doing any, although I wasn't working on that project directly. We did a lot of minibot pole tests, and our lead minibot mentor worked on it during the day a lot (he's good at highly iterative machining projects like that).
25-12-2012 21:28
BJC|
Did you run any minibot pole-climbing tests to compare climb times using a given battery fresh off the charger vs the same battery 10 minutes after coming off the charger?
|
25-12-2012 22:02
Ether
Thanks for the detailed explanation Bryan
26-12-2012 08:14
Al Skierkiewicz
|
Al, at 400a, what are the losses of a #6 vs #4 battery cable? We always keep the length short (never adding length to the 12" COTS cable and using a ~6" wire between Main Breaker and PD), and wondered if switching to #4 on one or both ends would help.
|
27-12-2012 00:09
DampRobotFirst 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?
27-12-2012 00:37
apalrd
First, the design distance ('Ref Distance' on the calculator) is used as the time it takes to accelerate to that distance from stopped. I don't include decel time, just accel time. You would still be moving when you reached that distance. I did not write the majority of the calculator, it's JVN's.
Second, Time to Distance. Time to Speed is used to validate acceleration targets, to make sure shorter-distance movements might possibly be acceptable.
Third, this method was the easiest method to implement. It has some noise, especially at the start, so I filter the voltage. It seemed to work well enough.
The reason I calculate it iteratively is because voltage is needed to calculate torque in the mechanical portion of the calculator. So, I calculate voltage from the last iteration current, for use to calculate this iteration's torque. The voltage change per iteration is so small that I don't really need immediate accuracy.
04-01-2013 13:10
JesseKThanks for sharing Andrew. It's something I've never considered in my spreadsheets since it was an unknown assumption. I took my lunch hour and did algebra to come up with a solution for x(t) because the "Battery Voltage Gain Filter" strikes me as wonkish (though that filter is an interesting way to fix the problem). The result was based on some constants that are pre-computed via the motor & robot properties, yet the point is that (luckily) a solution exists for the non-linear differential equation:
Results on Wolfram|Alpha
It's not exactly pretty, and solving that solution for t (so time can be a function of gear ratio) is causing WolframAlpha to blow up... so more work will have to be done. Yet it does allow for more straightforward calculations of pretty much everything (including voltage) without the need for circularly-dependent equations that need several hundred lines at high resolution to get accurate.
Pretty equations for constants A, B, C, D & E to come tonight or early tomorrow.