- Max transition DOWN noted: -1.38v dip @ -194V/s rate. (Application of 2250w load)
- Max transition UP noted: +460mV raise @ +284V/s rate. (Removal of 2250w load)
I am most concerned about overshoot and am pleased to report the controller responded by capping the UP transition to 445mV over 'target', and brought it back to under 30mV in two sample cycles (261mS ).
This got me to thinking about a condition called Load Dump (where the battery is disconnected while charging) and how the controller would respond. Load-dump is characterised by a large raise on voltage over a short time (typical specs seem to 'define' it as around 100v with Tr = 5-10mS). There are three ways the controller might be able to detect a load-dump condition:
- Normal regulation functions (ala the response to the load transition above)
- VBat > VBAT_ERROR error trap, causing controller to fault out.
- VBat > Crowbar hardware trap, causing fuse to blow.
Obviously the methods increase in their side effects, so I was wondering if I could add a step between 1 and 2 - looking at dv/dt to decide if there was a Load-Dump occurring Then we could take a less dramatic action then blowing the fuse (a method #3), perhaps by setting the Field_PWM = 0 and re-entering RAMP phase.
First step was defining what a Load-Dump is... Turns out this has been done before. In fact, there are may transient conditions in a 12v system that need to be considered (Mostly from the side of what an electronic device needs to be able to survive in an auto). One the best documents I have located on this is: ST Micro's "AN553: Protection Standards Applicable to Automobiles" (here). And here is a nice table documenting what we can expect:
The ones of interest right now at Power cut-off (disconnecting a large load, like I did above), switch bounce (noise generated from switch bounce of a load), and Load dump. And the question is: Can we recognize these conditions by looking at dv/dt and decide how to handle them nicely? (Rather then the steps 2 or 3 above which rely only on the absolute voltage levels?).
First need to define dv/dt for each of the three conditions Looking deeper in the referenced App Note (and other sources) each of the events have a Vp of around 100v, but dramatically different characterized rise times:
- Power Cut-off: Tr = 1uS
- Switch Debounce: Tr = 5nS
- Load-dump: Tr = 5-10mS
However, perhaps we can recognize Load Dump and do something. There seem to be several 'standards' in existence that 'define' the shape of a load-dump, in looking at several of them I select the following:
- Voltage raised from 14v to 85v
- Over a time period of 7.5mS (Half way between 5 and 10mS)
That gives us a dv/dt of (85-14)/7.5e-3 or around 10,000v/S, which scales into 10V/mS.
So, at 10V/mS what can we do from within the program? Not much...
The INA-220's are sampled in lock step with the stator - at 2600RPMs this is about every 35mS on my system. This would allow a 350V rise to occur before the system would even be able to recognize something was happening - clearly well past when the crowbar steps in.
Bottom line: The controller really does not have the responsiveness needed to 'recognize and address' a load-dump other then what already exists. So will not be adding in any 'load-dump' routines. It does handle EXPECTED transients nicely (See above), and will handle unexpected transients (like Load-dump) - probably by blowing the fuse. But then, if there is really a load dump I suspect a $0.10 fuse will be the least of the concerns. . . .