...Specifically, in the context of bolt actuators.
In the nerf hobby up to this point, we have generally had exactly one answer to this question - the classic single-ended arrangement with an antiparallel diode (same as when you want to switch a DC motor on and off, or do one-quadrant variable speed drive of one). "Don't forget the flyback diode!" Here's the sort of thing I'm talking about:
Where signal, rail and output names are obvious. It's usually low-side switching like this, because we like N-channel power devices, and we like relatively low level, ground-referenced gate drive voltages.
Or sometimes, as in Narfduino boards and other multipurpose power stages, it's a halfbridge. Same difference - the antiparallel diode in the above is just taking the place of the missing high-side device, whose copackaged diode would otherwise be serving this purpose (providing a path for the winding current to continue flowing at switch-off). We could also be doing synchronous rectification with a halfbridge, also fundamentally the same thing minus the diode loss.
--Is this a new concern? --But isn't driving solenoids just like driving DC motors? (Etc.)
In short no. With motors - even DC ones - the winding itself is not a DC device, it subject to an alternating current at some fundamental (commutation) frequency, and so by design for a motor that is going to turn at some given speed and thus have each winding current ramping up and down at some dozens to thousands of Hz anyway, there cannot then be any significant concern with current decay time at switch-off having any major influence on how the system responds.
By contrast - many solenoids are comparatively large inductances for which ramping the current in the coil up and down might be significant compared to the cycle time. The current slew rate of a solenoid is directly the force slew rate, and in many applications the time required for current to ramp down in a coil simply shorted by a forward-biased diode or synchronous rectifying switch adds electromagnetic inertia associated with the stored energy in the inductance to the system's mechanical inertia, and slows down, for instance, the opening of relay contacts, the closing of an injector or valve, or so forth - and in those cases, limits the system's frequency response significantly (and for relays, accelerates contact wear due to arcing during the slowed opening). For a blaster bolt actuator, this is an open question whether it really matters "that much", which comes down to whether the comparatively massive solenoid plungers involved might be a dominant constraint. But of course it is highly desired to end forward force as abruptly as possible, so as to get the bolt back open to pick up the next round as quickly as possible (hence the focus on return springs and their selection). So, slow decay on a noid might be questioned regardless as a low hanging fruit.
The most likely candidates
Tons of power stage topologies have been created as dedicated coil drivers. Some of them are downright elaborate (mainly to provide both fast decay for switch-off and slow decay while doing PWM control for continuous conduction and low losses), but two stand out to look at here which are appropriate and not over the top of what would fit or be afforded in a blaster.
This is a common one.
The basic idea is to insert a bias voltage in the flyback path so that the inductor has a load to push against to absorb the energy quicker than just the coil resistance and assorted other parasitics. A TVS diode is often used for that purpose as it is designed to absorb abusive power pulses and have a predictable clamping voltage available in various increments. A MOV has been put in there similarly. Even a string of regular diodes in series to build up a voltage drop could be used, as could a resistor as long as the voltage at the output node under peak flyback current is considered, though that wouldn't be optimally effective.
With both the regular rectifier diode and the TVS, the latter can obviously be unidirectional rather than the bidirectional shown. Also, having both means the TVS breakdown voltage does not need to be higher than the supply.
This would be simplified version for when the TVS breakdown voltage is always higher than the supply.
Now, this idea comes with a downside that is a non-problem for everyday relay drivers but might be a major design problem for blaster bolt actuation. Blaster bolt drive solenoids are downright monsters as they go. They might be running peak currents of 20 amps in some setups. Accordingly they are going to not only have that much flyback current to be clamped (and now clamped by a device which has to take that with a large voltage across it), but the inductive energy to be disposed of on each cycle will be large - and when a dissipative device is used in the flyback path to speed up the decay, that device now relocates to itself some power dissipation that would be mostly in the (thermally massive) winding with the usual antiparallel diode circuit. This is perhaps not desirable in a compact bit of blaster management kit.
So here's another strategy seen on occasion:
This might look like a funny halfbridge with some extra diodes at first, but it's not. Let's rearrange it a bit:
...And now it's apparent what's going on - this is analogous to a fullbridge in the same way that the traditional single-ender with flyback diode is analogous to a halfbridge in that active devices which are not needed in forward mode are replaced with their vestigial diodes.
The advantages might be clear just seeing it (or not) - one, the inductance now sees the DC bus as a bias voltage to push current into when decaying, so the current can ramp down a lot faster. Two, since that current burst is pumped into the DC bus on each switch-off and no intentional dissipative element is used, some of the energy is recovered and the overall losses reduced rather than simply moved around.
Disadvantages are that we just multiplied output devices and diodes by 2 and required a high-side gate driver - but that might be a tolerable overhead. Also, compared to some of the exotic ideas involving high auxiliary voltage rails, DC-DC converters, storage caps, etc. and the TVS-based ones, the voltage is limited to DC bus, so the slew rate performance couldn't be as high in theory, but in practice I doubt we would be seeing noid drivers designed with 100V fets and ~40V flyback clamping anyway, instead closer to the 14-20V DC bus in a light blaster configuration, so it seems promising.
Methods I didn't address
Active clamping, because modern mosfets should not be operated in the linear region. This is mostly confined to specialized monolithic devices meant to drive coil loads about an order of magnitude less in required current than a blaster feeding noid.
Avalanche breakdown of mosfets as an intended way to dump the energy, because I don't care if Nexperia says it's OK, considering intentionally doing that makes me ill. And because there is probably too much stored energy for most fets thus rated anyway.
Alternative arrangements of the TVS version that don't really achieve anything other than expanding loops (etc.) such as having the load hung off the bus and the TVS from the low-side switch drain to ground.
Anything to do with PWMing or current controlling a noid. That stuff is tangential (though has specific requirements of power stage design) but mostly is just irrelevant to a blaster because the entire purpose of doing so is to account for the fact that a fully traveled noid produces the maximum force and a load requires less force to hold than accelerate. In a blaster there is no reason for the bolt to hold forward at all, thus for current to continue at all after the solenoid has fully traveled. Closed-loop control of a noid on that end amounts to "hitting the end of travel shuts off the driver immediately" no matter the implementation.
Anyway
Off to buy some solenoids and test some stuff. I finally have a scope of my own so next time I post about this I'll have scope shots of how bad the decay issue really is or isn't with this specific sort of noid.
Note
Don't read anything into the fet or diode part numbers. That's just a LFPAK mosfet and a SMA schottky that were close by in EDA. That fet is probably more than fine as long as 30V is sufficient blocking voltage for the bus (about half that is 4S), that's a 1.4mohm device from my older inverters for 22xx series flywheel motors. The diode being rated for only 3A average rectified (though adequate pulse rating) might indeed need to be something bigger depending on what the actual inductance of the 35mm and Hyperdrive are.
Further reading
https://e2e.ti.com/blogs_/b/industrial_strength/posts/tips-for-solenoid-driving
https://www.eevblog.com/forum/projects/solenoid-driver-design/
https://electronics.stackexchange.com/questions/438644/solenoid-fastest-possible-release-for-how-long-should-reversed-polarity-be-app/438657
https://www.nexperia.com/applications/interactive-app-notes/IAN50003_driving-automotive-solenoids.html
https://www.maximintegrated.com/en/design/technical-documents/app-notes/6/6307.html
I’ve been thinking about doing a solenoid build with an FJ-z05 and was hoping you could answer some questions about the fast decay method. First, what diodes would you recommend? You say here that the diodes might need to be beefed, but you used something weaker in your initial testing post. Or perhaps alternatively, how would I best go about selecting diodes? Just pick a schottky with some decent ratings for If, Ifsm, and Vrrm? Second, if I were to implement this using an LM5109 like you say you are in E-core, where does the HS line go? The datasheet says to put it on the negative of the bootstrap capacitor and the source of the high side FET, but their block diagram has the FETs in a different configuration than what you’re doing here, so I wasn’t sure. Third, any other wiring hiccups I should be aware of? What I’ve done essentially is take the block diagram from the LM5109 datasheet and run the HO and LO lines through some gate resistors to the GATEH and GATEL nets in your last diagram, with the HS line also going to the Q7 source. Fourth, for programming, is it just both gates high to fire and both low to retract?
ReplyDeleteThanks!