I just purchased some pinball machine solenoids and was experimenting with them; DC resistance is about 30 ohm, they actuate at about 30 volts, and they hold at about 6. I tried controlling them with 10A relays and found that the a relay sometimes latched arced even though I have flyback diodes, so I looked at the solenoid voltage with a scope. One side of the solenoid is connected to the positive supply via relay and a PTC fuse; the other side is grounded. The scope is directly across the solenoid.
It appears that the when the solenoid is active the voltage flies up to over +200 volts. Not the reverse voltage that would appear when releasing a solenoid with no flyback diode–forward voltage. I would guess that the coil is effectively magnetizing the slug, and that when the slug then moves into the coil it generates back EMF; because the coil is crossing more lines of force at it gets closer to the slug, the back EMF is not limited to the driving voltage as it would be with a conventional motor. Would such back EMF imply that the solenoid current would be dropping to zero during the stroke? Is such behavior typical for solenoids?
If such behavior is typical for solenoids, it would seem that all of the "useful" energy, except what might be needed to hold the solenoid (if desired), would be imparted before the current dropped to zero, and one could reduce energy consumption enormously by watching current usage. I would guess that if mechanical factors prevent the slug from moving quickly, the current might not drop all the way to zero, but watching for the derivative of current to go positive-negative-positive should still provide an identifiable "optimal turn-off" point. Are there any solenoid-driver circuits that exploit this? Certainly end-of-travel contacts could help provide such behavior, but those add mechanical complexity. Are all-electronic solutions practical?