# Minimal pulse width to actuate a solenoid

I'm powering a solenoid from a battery, so I want to spend the minimum amount of power to get the job done. In this case the solenoid doesn't even have a return spring, so as soon as the armature has moved a couple of millimeters, the job is done. Can I measure the current draw or another electrical property to see when the armature has moved? I haven't been able to find a plot of how the current draw behaves in response to a step voltage.

As I understand it, the inductance of a solenoid's coil changes significantly as the armature moves. If it doesn't result in a clear change in the current draw as I feed it DC (or a falling voltage from a charged capacitor), would it be feasible to measure the momentary inductance by modulating the supply current with some AC signal?

If all this fails, I can certainly fall back to driving it with just a timed pulse and experimenting to see what the required time is.

• Alternatively use some form of feedback circuit - maybe a photo-interrupter to know when the solenoid has moved. Commented Aug 31, 2014 at 10:38
• If the load of the solenoid can't change, i.e. the weight of whatever is connected to the armature is constant, I see little improvement in using a closed loop. Maybe if he needs to produce a ton of these units it might be worth it but as long as it's a prototype a fixed delay is porbably the best Commented Aug 31, 2014 at 10:45
• How about a linear actuator in this case? Since it's just a simple DC motor it's just some few load tests to derive it's parameters. Commented Aug 31, 2014 at 13:33

The energy you need for the move of the solenoid core depend on several factors, such as:

• mass to move, its way, initial friction and time to move.

As you see there are too many variables and these could be voltage and temperature dependent.

Thus a feedback is needed to signal that the move is accomplished. This could be a reed or Hall-switch or optical switch and could be quite an effort and maybe if you can define the maximum force needed it is simpler to have a driver circuit with fixed current profile. Since the initial force needed is highest(due to friction) an intelligent solenoid drive can be applied. You find more details here: http://www.ichaus.de/wp8_whitepaper_en .

This intelligent drive can also involve a microcontroller if needed.

First I don't know much about the details of solenoids. But I think what you describe is possible. (In theory.) When the solenoid is down, the magnetic loop is closed and the inductance should rise. You could AC couple a little signal into the coil, measure the current and there should be a drop when it closes. (Coil inductance vs coil resistance.) You'd have to pick the right frequency.. that means knowing the various L's and R's of the coil. In practice I'm not sure how well it would work. Because during this AC measurement you'll be banging on the coil with a big pulse to close it. Do you have any idea of the time frames involved? What the L/R time of the coil? How long are the pulses? How much synergy (battery current) will you be saving?

One of the common ways to operate solenoids is to store energy in a large capacitor, then dump that energy into the solenoid when needed.

There are many benefits to this.

1) the battery doesn't have to supply all the current to the solenoid. This can keep your circuit working because the battery voltage doesn't sag.

2) you can use a dc-dc boost converter to increase the available energy for operating the solenoid.

The downside is the extra cost and extra size.

One way of driving a solenoid actuator is indeed with a boost converter. But the reason for that is a bit different than described. It allowsproviding short pulse of high current (and voltage to overcome BEMF of moving actuator!) and then remain with low hold current that is just enough to keep the actuator in place. It's an open loop operation! The capacitor is big enough and the pulse is wide enough not because they are accurately calculated, but because they have descent margins.

If the energy is really so critical, you may want a closed loop operation, which is similar to driving a motor. It will require feedback (current sense) and a PI controller. You will be able to make a current loop, which will go through three states: idle, drive, hold. Idle- obviously do nothing. Drive- apply high current to move the actuator (will make exactly the pulse that is required, not wider). Hold- reduce the current to minimum. The trick is to go to the Hold state, once voltage outputted by Drive state is minimal.

This is clearly most energy efficient way, although i seriously doubt that anyone uses it.