PWM operation of DC relay coils in order to save power while holding is now common. This is at a frequency that is high enough to avoid chattering or audible noise and low enough to not have to worry about switching losses or exotic circuitry.
The in circuit coil inductance can be measured by looking at coil current and analyzing the slope. In this case if the PWM frequency is well known like say microprocessor 50% duty cycle at 8KHz and the supply is regulated 24V then you can easily get the coil inductance.
What I actually did was a self osc hysteric scheme which gave a change in frequency for a change in relay coil inductance. The Idea is that one can tell the position of the relay coil by its inductance. What I did Vs the orthodox ripple slope approach really comes down to implementation. It is all the same in that you are detecting inductance change to tell if relay armature is in or out.
I was expecting big changes like more than 3:1 but that was not the case. Why? Doesn't closing the magnetic circuit raise inductance markedly?
Sure the change was totally adequate to make a reliable decision regime for the firmware guy to do. The real odd thing was that the pulled in relay exhibited less inductance. Why would it appear to work back to front? I didn't put this into production because the big relays were not needed after all but I have concerns about the scheme performing differently on different relays. Is the concept flawed due to relay peculiarities? Can it only be used in a specific case?