Wednesday, November 10, 2021

Solenoid power stage topology followup - Preliminary decay mode investigation.

This is the "partial fullbridge" topology (2 mosfets and 2 diodes) from the previous post roughly prototyped.

 

And the overall setup. The test solenoid is a Takaha CH12840062. This in stock form is a total slug and definitely not the greatest choice of blaster bolt drive noid, incidentally.

I just used random crap I had around - some IRLR7843s for the switching devices, 1N5819 diodes, and for the highside drive I used a discrete bootstrap driver as in traditional ESCs. A tiny bit of code on a mega328 to drive the power stage, take a switch input and spit out a drive waveform (in this case generic 50ms on/50ms off).

 

Anyway, so this is what the voltage across the winding is doing with the regenerative fast decay case:

(10ms/div, 5V/div)

Exactly what we expected - it flies up to the DC bus level (mostly charged 4 cell pack) for the 50ms on-time, then flies down and is caught to negative (DC bus + 2 schottky diode drops).

Note that the total current decay time is not really the 30.4ms I had the cursors on. That is the duration of the negative voltage transient on the winding - but current is only really flowing when the voltage is below negative DC bus i.e. during the flattish, ~10ms long period right after switch-off. The exponential rampy part at the end happens after the diodes have mostly stopped conducting entirely and the voltage decays back down (up) through parasitics. The small but existent step up at ~30ms after switch-off is an artifact of the power stage switching to slow decay mode by the low-side fet being turned on at 30ms after switch-off (random value I picked). With a bootstrap high side driver in this arrangement the low side must be on at some point whenever otherwise unimportant (like this) during the off-time to present a path for the high side bootstrap capacitance to charge.

Now what happens if we run that again, but in SLOW decay mode - exactly equivalent to the typical circuit with a flyback diode across the winding? (20ms/div this time as I had to back off to see all of the decay time!)


Here I did that by keeping the low side fet permanently on, so we're doing high-side switching and the flyback diode is the one coming from ground up to the switch node. I of course did that because the high side driver is bootstrap and we can't keep the high side on as the cap will slowly discharge through parasitics.

What we're expecting here is DC bus level for the on-time and then one diode drop below ground (small, because this is a schottky) whilever winding current is still flowing through the flyback diode. And that's exactly what we get.

Note how long that negative period lasts! Here's that a bit closer (500mV/div):


 

That weird low frequency ringing in the setup that went down to -2V on the switch node wants our attention, but here the ~120ms of actual decay time is the shocking matter...

And yes, the solenoid immediately felt PROFOUNDLY more sluggish to release during these shots.

Now what happens far as trying to cycle quickly?

I have had this noid cycling (unloaded) very reliably at 10Hz with the 50/50ms timing using the regenerative fast decay setup:


No problem. Now, this is the same noid, the same timing parameters, the same otherwise hardware, the same battery powering the setup at the same voltage (immediately swapped between modes)... the only variable here is the decay mode which is now slow (aka, standard flyback diode configuration).

Okay; so I would say there might indeed be an issue here!

Now, this noid is a 6.2 ohm coil that is probably more turns and more inductance than typical sub-3 ohm blaster bolt solenoids and is also a bit lacking on return spring hence is making a more dramatic example of this than usual, but clearly something major is afoot here with this decay mode thing and the notion that a simple flyback diode is a hindrance to fast-cycling solenoid actuators. This will be very interesting to apply this topology to more known-quantities like the FTW Hyperdrive and quantify the timing margins gained over the flyback diode approach.

Sunday, November 7, 2021

Thoughts on solenoid power stage topologies

 ...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