I finished a rough draft of the next version of the code, for the 1000amp controller. Now it closes a precharge relay. Then after verifying that the caps have precharged, it closes the main contactor. Since the current into a capacitor is i = C*dv/dt, and C is about 0.026 F worst case (20% more than 0.022 F), just check the voltage at fixed intervals, and when the change in voltage is sufficiently small, that means the current flowing in is sufficiently slow, so it's safe to close the contactor. It also will check that the voltage is sufficiently large, so that it isn't a short circuit situation.
Also, there's a programmable max voltage. It is self protecting, so that if you are driving it really hard at a very high voltage, and a voltage spike exceeds the max voltage, the max motor amps is scaled back for a certain amount of time (maybe a couple minutes. I'm not sure yet). That will get the spikes under control because the spikes are proportional to the motor amps. It will re-enable the max motor amps after a little while, in case the voltage was high because of a high intial surface charge, which is common with lead acid.
Um... Also, I'm adding a "if pwm duty is sufficiently large (or is increasing, I don't know yet) and current is zero, then fault".
|