Whew. Haven't done an entry for a while so figured I'd update here and the web site later. BattleBots 6.0 has come and gone, and my new speed controller aquitted itself nicely altough there was one casualty. However, unlike previous events KillerB was moving the entire match.
I have learned a remarkable amount about higher power switching than I thought I ever would. This is what makes robots so fun, you can go as deep as you'd like in any of mechanics, software, or electronics and just keep going deeper and deeper and deeper.
Things I learned about first hand were ripple current and source impedences.
Ripple current is that A/C current component that a capacitor across a PWM switching circuit "sees" when the PWM circuit is operating. An engineer from Agilent started me down the right path (he designs servo controllers) and it opened an interesting door for me.
When you're running PWM you expect that the inductance of the motor and its coil resistance will create a low pass filter such that the motor "sees" a voltage that is proportionally smaller than the full switching voltage. That's pretty basic, but the A/C voltage is there too and its amplitude is proportional to the width of the pulse as well, except that it peaks at 50% duty cycle and goes down if you are greater or less than 50%.
Why that is, is related to the circuit configuration, but the interesting bit is that this A/C voltage is generating a current in your filter capacitors (the ones that are trying to keep the motor surges from destroying your switching elements) and that current can be substantial when you are flinging 100 - 200 amps around. So substantial that the first time we fired up the speed controller on the robot the 10uF capacitors on the speed controllers exploded!
After replacing them with higher voltage rated capacitors (I hadn't clued in yet) they exploded again. Then I switched to a higher value capacitor (100uF @ 63V) and the steel leads vaporized! [The capacitor actually survived] Finally in desparation at 3AM of the day of our first fight I swapped in some 10,000 uF capacitors that I had from Digi- key. These were configured as "RCD" (Resistor-Cap-Diode) snubbers. I had some 5 ohm 5 watt resistors for the resistors. On the initial tests it worked great! But the resistor was getting so hot it was bubbling. Never a good sign! So on my second snubber I used a 10 ohm 10 watt resistor (big mistake!). At the end of our match on Saturday one controller was dead, the other was fine (yes we had tested it but nothing stresses things like the battlebox). The difference? One resistor.
The resistor is there to "burn off" the surge and convert it into heat. However if it doesn't burn it off fast enough (ie with a low enough resistance) then when the next surge hits the previous one is still lingering in the capacitor. Uh-oh, there goes your FETs if you're right at the edge as I was in terms of margin. (40V FETs on a 24V controller) By swapping the FETs for 55V ones (that gave more margin) and with 4.7ohm 10 Watt snubber resistors. The world is a much happier place! While I dislike learning this stuff under duress, at least it will stay with me for a while!