So a mentor brought up an interesting point the other day when discussing the issues with 6CIM drive and brownouts - it basically went as follows:
“Using as much of the 14AWG wire as possible results in greater resistance which drops the voltage at the motors and limits the current they can pull, which helps with browning out. It’s like a poor man’s voltage ramping.”
I’m still trying to wrap my head around this. Intuitively it seems that when the voltage at the motors is lower you just end up with a lower free speed and lower stall torque/current… which I don’t think is actually beneficial. Not to mention that your wires also heat up more.
So it isn’t really voltage ramping then is it, more like voltage limiting? And that can be imitated with speed controllers… so really does it just make sense to switch it out with the 12 AWG instead? But then solder joints and extra connections… ack. Thoughts?
Yeah, this doesn’t make any sense. Why cap your voltage artificially and permanently when you can cap it in software? And that’s assuming that it will produce the desired effect exactly as described, which I also highly doubt.
Yeah I guess it is a potential way to help with brownouts by limiting the overall max current draw of the bot, but definitely not the best way.
Out of curiosity though, what do your teams do about this when you get new CIMs? Leave the 14AWG wire on or dump it for some fresh 12AWG wire? I am sure someone has gone through this analysis and there is a “world-class” way of doing it
My teams don’t cut off the existing wire or anything like that, but any extensions are 12 AWG. The drop across the connector is probably not worth cutting the 14 wire super short and replacing it with 12 as soon as possible or anything like that.
I’m not on a world-class team with 1000% optimal electrical practices, so your mileage may vary.
This is a bad solution and you should definitely do it in software due to the voltage limiting characteristics you mentioned.
I’m pretty curious as to how much it would even help though. Resistance of 14 AWG wire is 2.5 ohms / 1000 ft. Say you use a 10 ft. stretch of wire for 0.025 ohms of resistance. At stall, a CIM draws 133 amps indicating an approximate resistance (ignoring any impedance effects) of 12V/133 amps which I am going to ballpark at 0.1 ohms. These values are within an order of magnitude so it seems likely that this would have a measurable affect.
I will mention that if these CIMs are being powered off a 40a circuit, as one would normally do with a drive train, they are required by the rules to be 12ga, the CIM leads do not count.
Yeah those values are kind of close now that I think about it… then again 10 ft of motor wire is on the high side (really high side IMO)… and the CIMs only have like 2-3 ft attached to them.
Our motor to speed controller distance is only about 1.5 feet, so we will probably just go ahead and use the 14AWG already attached to avoid an extra connector or solder joint. I don’t think the effect will be too noticeable since such a short distance? An extra anderson is apparently an extra milliohm or so… which kinda offsets the whole replace with 12AWG thing.
Even if it did have the desired affect, the software route would still be superior as you’re limiting output by providing less energy… Versus limiting output by intentionally burning more energy.
I wouldn’t call it voltage ramping, maybe voltage handicapping.
Wires on your robot are not the magical wires used in an electrical schematic. Their resistance is not zero. Same with terminals and crimps used.
Wire resistance is typically described as resistance / unit length at a specific temperature for a specific material. If the wiring is sized appropriately, ambient temperature is typically used. If the wiring is expected to get hot, more advanced calculations need to be done.
If you used Ohm’s law, you would find that increasing the wiring resistance necessarily decreases the current in your robot circuit, but at the cost of efficiency. A higher percentage of your power is converted to heat in your wires instead of mechanical power used to move your robot. Like a double whammy, the robot drive train will use less power total, and then a larger percentage of the power that is available is wasted.
A better solution to avoid browning out would be to design your gear ratios and pick your wheels so that the wheels will slip instead of stall the motor, and use a 6 wheel drive with dropped centers so your robot will wobble instead of scrub the wheels.
*What efoote868 said, and then as a last resort you can slew-rate-limit your driver commands (which is very easy to do, and does not mess up any downstream feedback controllers).
You’ve got that backwards, you would be limiting output by intentionally consuming less energy.
The Mentor referred to in the initial post is correct and the physics support that, increase the resistance of a circuit and the current will drop. The lower the current drawn from a battery the higher its output voltage will be.
Now adding that resistance will mean that more of the electrical energy put out by the battery will be converted to heat instead of mechanical work and maybe that was what you meant by “burning more energy”.
In the real world the decrease in current running the full length of the 14ga motor leads vs trimming them as short as possible, connecting them directly to the motor controllers and then using the required 12ga between the PDP and motor controller will not be enough to reliably prevent brownouts unless you are on the very edge of browning out otherwise. Conversely eliminating as much of the 14ga wire as possible will probably not cause a noticeable increase in performance on the field.
Was it the CIM’s original wire, or wire you added?
Was this during a match, or practicing at home?
2a) If at home, how long had the robot been running? (I’ve read reports of particularly long and hard driving sessions creating enough heat to melt an SB-50A connector, which is accepted as fine for FIRST applications.)
You’re measuring stall current. No matter the gauge of wire, it’s going to brown out, because if it doesn’t, that sustained current will trip your main breaker.
The resistance value you’re measuring is the motor’s internal resistance at stall. 0.1 ohms is fairly normal for this.
Now, back to the topic:
The resistance per 1000ft of wire for 14 AWG is 2.525 ohms, and for 12 AWG it is 1.588 ohms.
A single 2.5" CIM draws 2.7A of free current. From the CIM Motor Spec Sheet from VEX, at normal load it draws about 27A. This will be our figure. CIM Motors come attached with 1.5ft of 14 AWG wire, so we’re going to use this value instead of something ridiculous like 10ft. Adjust to suit your needs.
For a 1.5ft section of wire, the resistance of 14 AWG is 0.00378, and for 12 AWG it is 0.00238, both in ohms. Plugging this into V = IR with a 12.8V supply (typical for a battery) and our CIM motor “normal load” of 27A, we get a voltage drop of 0.1V for 14 AWG, and 0.06V for 12 AWG. We have to double this, since we’re running both +ve and -ve wires (red and black), effectively doubling our wire run length. This gives a voltage drop of 0.2V for 14 AWG, and 0.13V for 12 AWG. These values are really close and honestly doesn’t make a huge difference to brownouts. Not to mention, brownouts won’t limit your free speed and torque, they’ll just switch it on and off until the problem is rectified. If you hold at 100% throttle, it’ll keep browning out until you adjust. Brownouts are NOT a limiter, and shouldn’t be treated like one.
I’ve attached a spreadsheet that includes all the math above, and you can change the values. Enjoy.
I’d like to better understand your reasoning for multiplying the voltage drop of wires on a single motor by the number of motors. It seems to me that the motors (and motor current) should run in parallel through the 12 and 14 gauge wire and not in series. Unless I’ve misunderstood?
I’d also like to mention that determining the equivalent circuit for an entire robot is not a trivial matter, and it’s highly dependent on temperatures of individual components. Generally it’s best to try to maximize the amount of power available to go out the wheels and minimize the loss in the circuit. And if there end up being any issues, fix it with software ;). Don’t handicap your robot with a lossy circuit.
They do indeed run in a parallel configuration. I think this was a mistake in my wording. You will only see a single voltage drop regardless of the amount of motors you have assuming you have a constant-voltage power supply. Because your battery is not constant-voltage, though, you will see a larger drop proportional to your motor count.
I’ve corrected my post and spreadsheet to account for this, my bad.
It is of course no easy feat to calculate all this accurately, but the understanding as to how it works can be very helpful. Of course, relying on power loss due to heat to resolve power consumption is not a good idea, and generally will be lossy anyway since you’re losing what you gained due to heat. A software fix for this is the best option.
OK, to weigh in here on CIM motors in particular. The #14 wire that is attached has a higher temperature rating than most #14 wire you will buy for your robot. That is why an early post mentioned that their #14 melted when used with a CIM motor.
The resistance of the wire is real but the load for that wire is the motor. At 100 amps (an easy method for calculations) a #10 wire will drop 0.1 volt/ft. #12 will drop nearly 0.2 volts/foot and #14 will drop 0.4 volts/ft. That is for both the red and black wires please. So it is a simple matter to go right to the motor curves to see the effect on the motor power/output/efficiency.
In order to see the effect on the whole system, one needs to consider that all current flows through the #6 wire, the PDP and the battery. The battery has an internal resistance of approx. 11 mohms. This is the same effect as adding in 11 feet of #10 wire. If you are in stall (all motors are in stall when they have power applied but are not moving, i.e.starting) for a six motor drive then the potential is to draw near 600 amps. 600 amps will drop more than 6 volts inside the battery. The brownout is therefore going to occur simply due to the voltage drop across the internal resistance of the battery. You can add voltage drop of the PDP (very low) the main breaker, (very low) and the #6 wiring (typically about 0.003 ohms) and you will see that the power supply for the RoboRio is being starved and that is where the brownout really does it’s damage. It the Rio goes away, all robot function ceases.