Robust Position Sensor
Linear variable differential transformers are linear position sensors that are used in harsh industrial or aerospace environments where reliability and/or performance requirements exceed the capabilities of potentiometers. LVDTs have no sliding electrical contacts to corrode or wear. The only moving part is a more or less inert chunk of iron. The unit can be sealed from harmful environmental elements.
Better than Potentiometers?
We simmers get pretty good performance from potentiometers for a very reasonable price. They turn up in joysticks, yokes, rudders pedals and throttles, just to name a few. But there are a few applications that could use more than simply “good” performance: throttle quads that don’t track throttle to throttle due to pot linearity issues, and military fighter style side stick controllers that don’t move enough to actuate a pot well.
LVDTs can be very accurate with a high degree of electrical linearity. They can be designed to have very long strokes, or to be sensitive to very small position changes. They are not inherently expensive. They are actually quite simple devices. It’s just that when they’re sealed in stainless steel and certified for aerospace use… Well, you get the idea.
LVDTs would seem to have a place in our hobby. The challenge is to overcome the cost.
Simple: 3 windings and a moveable core
An LVDT is a transformer with a single primary winding and two identical secondary windings. The transformer core is moveable. If the core is centered, it provides equal coupling between the primary winding and each of the secondary windings. As a result, each secondary produces the same voltage. As the core is moved, the coupling with one secondary grows and its voltage increases. The coupling with the other drops so its voltage decreases. The output windings are generally wired together so their voltages cancel. With the core centered, the net output voltage is nulled. The voltage increases as the core is moved from the null position.
The “Linear” in the name refers to the linear motion of the core. Turns out, an LVDT is electrically linear too. The difference in the two output voltages varies quite linearly with the movement of the core. Linearity better than 2% full scale comes without any particular effort in building an LVDT. When care is taken to construct the device symmetrically, linearity in the range of .1~.2% full scale results.
Because they are so simple, I decided to build an LVDT and measure its performance.
A prototype homemade LVDT
This one was built using (mostly) hardware store items. The bobbin is a 3½ inch length of 5/32” diameter brass tubing from the hobby section. The core is a 2 inch piece of 1/8 inch diameter steel rod. A piece of 1/16 inch diameter brass tubing was used as a handle to move the core. The shield surrounding the unit is a small piece of thin gauge galvanized sheet steel sold as an emergency roof shingle replacement. The three windings are separated by aluminum washers cuts from a bit of scrap. They’re glued in place with 5 minute epoxy. The wire (#34 AWG) came from an electronics store.
I wound the wire onto the core using an electric drill. I made no attempt to count turns. I just filled up the space on the bobbin. I estimate there are 500~700 turns per winding. I did, however, take some effort to get the same number of turns on both secondary windings. I wound them at the same time using two spools of wire.
The wire did not go on particularly evenly. It’s tough to hold the drill with one hand and try to guide two wires onto the bobbin at the same time with the other hand.
It actually works quite well!
Given my casual construction efforts, I am surprised the LVDT performs as well as it does. (Linearity depends upon symmetrical construction.) Over a 1 inch core movement, I get linearity within 2% of the full range output.
I excited the LVDT with a 1KHz, 2 volt signal. I measured the differential output voltage at tenth inch intervals of core movement. I used Excel to fit the data to a straight line, then calculated errors from that straight line for each measurement. At the extremes of core movement where the core was completely out of one secondary, the error rapidly climbed, but was less than 2% of the full scale output.
LVDT geometry determines sensing sensitivity
You can change the dimensions of the windings to customize an LVDT to a particular application. If you have a 3 inch travel of a throttle, you could make an LVDT with the secondary windings each spread over a 3 inch length. The linearity would be beneficial in applications that require several throttles to track.
The primary does not need to be any longer than needed to get sufficient wire on the bobbin.
You can also make the secondary windings very small. You still need the same number of turns or you'll loose sensitivity. You’re not drawing significant current from them so you can use very fine wire. The length of the secondary winding bobbins can be quite short. This would make the LVDT quite sensitive to small movements. You might find this very useful if you plan on making a military-style side stick controller that has little movement.
Some thoughts on LVDT electronics
LVDTs are generally wired so the voltages on the secondary windings cancel each other. (“Differential”, right?) When the core is in the center position, the output voltage nulls to very nearly zero. The voltage increases as the core moves away in either direction from the null position. The difference is that when the core moves one direction the voltage is in phase with the voltage on the primary. When the core moves the other direction, the voltage is out of phase.
One can buy integrated circuits designed specifically for use with LVDTs. Chips like the Philips NE5521 contain everything needed to generate a voltage proportional to an LVDT's core position.
I tend not to use these specialized chips (well, at least initially) for a couple of reasons. First off, I'm impatient. I don't want to take the time to order a specialized part. I want to do it NOW. Often it turns out that using generic parts is less expensive, if a bit more complex, than using the specialized part. Taking the build-it-up-from-generic-parts approach leads to a better understanding of a circuit's functionality. Finally, generic parts tend to be more readily available than specialized ones. I really dislike running across an intriguing circuit and not being able to build it for lack of an esoteric part. I try not to do that to others.
A common approach taken by the specialized chips is using a synchronous demodulator to convert the LVDT AC differential output voltage to DC. Fundamentally, this multiplies the output voltage with the input voltage and filters the result. This is certainly doable, but offers its own challenges.
A simple approach easily taken by the hobbyist is to individually convert the AC from each secondary to DC, then subtract them. Converting to DC is done using a “precision rectifier”, a circuit that uses an op-amp to remove the effects of the forward voltage drop of the diodes that actually do the conversion. The subtraction is done with another op-amp. Since you can get a quad op-amp for less than $0.30US and 1N4148 diodes are a few pennies apiece, this approach is pretty reasonable.
Since I originally wrote this, I have build circuitry based on this idea. It works quite well. Even using randomly selected components and knowing that would result in some imbalance in the circuit operation, I saw only a small increase in non-linearity. I will admit to spending more than expected on the op-amps. I think I paid $0.79US for each of two chips.
If you’re hacking a USB game controller of some sort, you can possibly just push a 0 to 4 volt signal into it in place of one the existing pots. The workability of that will depend upon the particular USB device you hack.
An Easy Circuit For Use With LVDTs
Here is a little circuitry you can use to experiment with LVDTs. Don't be put off by the number of op-amps. They come four on a chip, and a chip costs less than a dollar.
The circuit functions by taking the absolute value of each LVDT secondary separately. This is done by a clever op-amp and diode combination (not my design, unfortunately) that uses the op-amp to eliminate the forward voltage drop of the diode.
The two absolute value signals are combined. Notice that the diodes are reversed between the two circuits. One circuit takes the absolute value while the other takes the negative of the absolute value. When combined, the two signals are effectively subtracted. The top right op-amp performs this function plus providing a little gain.
The combined signal is passed through a passive low pass filter (the 3.3K resistors and .1 ufd capacitors) before being further amplified and offset. The SPAN pot provides a degree of gain adjustment while the OFFSET allows you to shift the zero point.
And How Well Does It Work?
For exact performance (whatever that means) the 10K resistors in the absolute value circuits should all be the same value. The 20K resistors should be precisely twice the value of the 10K resistors. It's the ratio that is important rather more so than the actual value.
So, if you happened to have a supply of super-exact 12K resistors, you could use them in place of the 10Ks, and replace the 20Ks with two 12Ks in series.
I didn't do that.
I purposely used regular tolerance (5%) carbon film resistors to see what the effect would be. I know by using an oscilloscope that the absolute value circuits are not balanced quite right.
Nonetheless, I'm getting quite reasonable performance. Using the roughly made LVDT described on the LVDT page, I'm seeing a peak deviation from linearity of about 2.6% of full scale. No parts selection, no balance adjustment and a LVDT already known to be a little short of perfect.
So, if YOU build an LVDT and take care to position the windings evenly, and use an ohm meter to select the 10K and 20K resistors, you should expect to see linearity better (perhaps much better) than 1% of full scale.
The LVDT should be excited with 2 or 3 volts at about 1 kHz. If you don't have a signal source, here's an easy one to build. This is a buffered state variable oscillator. Once again, op-amps are cheap...
If you are experimenting with more than one LVDT at a time, simply duplicate the buffer and connect it to the same node as the first.
This circuit can run off the same voltage regulators as the first circuit.