SPICE Simulation Challenge
I've spent the last few days attempting to solve two related problems.
Here's the first one:
If you've ever tried to simulate a metal detector circuit with a balanced coil, you will have noticed that the theoretical behaviour deviates somewhat from practice.
Let's take a Tesoro coil as an example. The TX loop is 6mH and the RX loop is 6.5mH. By applying a mutual coupling coefficient (K) between the TX and RX loops of 100u (for example) the residual voltage at the RX coil and the phase offset are quite close to reality. By adding a target model (consisting of an inductor and resistor, and suitable coupling coefficients), the effect of various target time constants (tau) can be investigated. Now this is the first issue. When the targets are introduced, the phase of the RX signal always shifts to the right, and the amplitude always increases.
In tests I have performed with real Tesoro coils, DD coils shift the phase to the right, and the amplitude decreases for non-ferrous, and increases for ferrous. For a concentric coil, the opposite is true. All targets shift the phase to the left, non-ferrous cause an increase in amplitude, and ferrous causes a decrease. So the question is: "How to simulate a concentric coil construction in LTSpice with the correct behaviour?".
To start with I began my investigation with the usual TX and RX loops, but with a coupling coefficient of K=0.35 to account for the TX and RX loops being separated by around 6cm. Then I added a third (nulling) loop in series with the TX loop, but in anti-phase, with a coupling coefficient to the RX loop of 1 (since the nulling coil is wound directly on top of the RX). Result ... failure:
"The inductors Lnull, Lrx and Ltx comprise a transformer with a non-physical winding possibility. Note that it's usually less error prone to simply use a single K-statement of the form K1 Lnull Lrx Ltx 1".
I'm sure most of you have encountered this error message before.
OK ... so what to do next?
Based on a post by ODM in 2013 → https://www.geotech1.com/forums/show...end#post165029
I added a 100H inductor across the TX loop and a second one across the RX. The idea here is to decouple the magnetizing and coupling inductances by using a large enough inductance not to have any practical effect on the accuracy. Unfortunately this method did not seem to work as advertised. Try it yourself if you want to see the problems associated with this approach.
After testing several other methods, such as trying to trick the simulator by using a CCCS element to couple the nulling loop into the RX, these all either gave some unexpected [bad] result, or the same "non-physical winding" error message. At the point of almost giving up, I decided to revisit the original method and see if there was some way to get around the "non-physical winding" problem.
This time I had some reasonably good results. Using a coupling coefficient of K=0.29 for the TX and RX loops, plus a nulling to RX coefficient of 0.918, the simulation was successful. With no target present, the peak-to-peak residual RX voltage was approximately 16mV, with a phase offset of 6us (21.6 degrees). The value of the TX to RX coupling coefficient was a "guess" based on the magnetic field strength at the RX loop with respect to the TX, and the nulling loop coefficient was adjusted to provide 16mV residual voltage in the RX loop. It appears that the nulling coefficient must not go above 0.93 to prevent the dreaded "non-physical winding" error from occurring. As 0.93 was the maximum, I stepped the value between 0.9 and 0.93 to find the correct nulling point. It was interesting to see how the residual RX signal flips over as it passes the point of complete nulling, just how it happens in practice.
Obviously the simulation is unlikely to match reality exactly, as electromagnetic coupling between the loops is more complicated than SPICE can handle with the simple inductor models.
So, on to the second problem:
Davor posted a simulation of various targets (including iron) here → https://www.geotech1.com/forums/show...for-simulation
Using these targets in my own simulation (attached), all targets gave a phase-shift to the left and an amplitude increase, which is incorrect for iron. The iron target should provide a decrease in amplitude. However, this represents major progress, as the simulation is now responding correctly to non-ferrous targets for a concentric coil.
Target Vpeak Phase-shift In-phase Quadrature Degrees
---------------------------------------------------------------
Silver 48mV 5us 4mV 44mV 85
Gold 48mV 4us 6mV 45mV 82
Brass 32mV -5us 20mV 32mV 58
Foil 12mV -6us 8mV 11mV 54
Iron 10mV -18ms 9mV 6mV 34
None 8mV 6us 0mV 7mV 0
The attached LTSpice simulation is based on the Raptor transmitter and preamp running at 10kHz.
Hence I have a couple of questions for Davor:
1) How did you derive the target models?
2) What can be done to the iron model to produce the expected amplitude decrease?
Now ... in case you're wondering ... I'm investigating this because I wanted to have some target models that work correctly in a known VLF detector, and then use these same models in a PI simulation with a mono coil. Last week I was talking to a friend who told me about someone who claims to have a PI detector with a mono coil that can discriminate iron. I told him that this would be yet another example of conductivity discrimination (and not ferrous/non-ferrous discrimination) working on the same principle of highjacking the ground balance control as can be done with White's TDI. Since this method can only eliminate ferrous targets of similar size, shape and orientation (such as small nails), I asked if he had seen it eliminate iron targets of different sizes. It turns out [apparently] that he only saw an air test of the detector, and the designer admitted that there were problems when used in mineralized conditions. Clearly this would be the case if the GB function was no longer being used for ground balance. Given the number of times I've heard such claims, and not being able to see any discrepancy myself between ferrous and non-ferrous targets on a standard PI detector with a mono coil using an oscilloscope, I wanted to keep an open mind and explore this idea in the simulator. But the lack of any "working" target models is a barrier to making this happen.
The coupling coefficients for the various targets in the attached simulation are commented out. Simply uncomment them as appropriate to include any desired target.
Discuss.
Hence I have a couple of questions for Davor:
1) How did you derive the target models?
2) What can be done to the iron model to produce the expected amplitude decrease?
Now ... in case you're wondering ... I'm investigating this because I wanted to have some target models that work correctly in a known VLF detector, and then use these same models in a PI simulation with a mono coil. Last week I was talking to a friend who told me about someone who claims to have a PI detector with a mono coil that can discriminate iron. I told him that this would be yet another example of conductivity discrimination (and not ferrous/non-ferrous discrimination) working on the same principle of highjacking the ground balance control as can be done with White's TDI. Since this method can only eliminate ferrous targets of similar size, shape and orientation (such as small nails), I asked if he had seen it eliminate iron targets of different sizes. It turns out [apparently] that he only saw an air test of the detector, and the designer admitted that there were problems when used in mineralized conditions. Clearly this would be the case if the GB function was no longer being used for ground balance. Given the number of times I've heard such claims, and not being able to see any discrepancy myself between ferrous and non-ferrous targets on a standard PI detector with a mono coil using an oscilloscope, I wanted to keep an open mind and explore this idea in the simulator. But the lack of any "working" target models is a barrier to making this happen.
The coupling coefficients for the various targets in the attached simulation are commented out. Simply uncomment them as appropriate to include any desired target.
Discuss.

Comment