Announcement

Collapse
No announcement yet.

SPICE Simulation Challenge

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • dbanner
    replied
    Alternatively, shifting the tx frequency ever so slightly up or down will carry the Rx coil out of balance as well. This might also be tantamount to a target in the tx field. Perhaps some mathematical relationship can be figured out between target conductivity and amount of shifting of tx frequency(theoretically, since the tx frequency doesn't shift or does it, hmmmm). The polarity would be simply choosing between left or right( increase or decrease in freq.) For ferrous/non ferrous. Maybe from this a model can be developed which more closely behaves like a true coil.
    There, that's two more cents worth.

    Leave a comment:


  • dbanner
    replied
    Whether redistribution or absorption, the Rx coil is falling off it's null perch either to the left or to the right. The cancelling field is either insufficient or too much, depending on kind of target presented within the tx field.
    This is tantamount to the resonance of the Rx coil shifting ever so slightly(actually shifting the resonance of Rx coil takes it away from balance even though no target is presented in the tx field.) This might provide some clue as a possible road to explore.
    There you have it, my two cents worth of idea. Incrementally vary the resonance to simulate different targets, not it's inductance. Maybe something like a series capacitance.

    Leave a comment:


  • Qiaozhi
    replied
    Originally posted by Davor View Post
    I can't test your solution properly, as I don't have much time. But I believe you are on the right track. I think Tec once mentioned ferrous targets increase coils' inductances, and that makes sense. Permeability is not an electric-modelable phenomenon, so it should be modeled behaviourally. However, just by increasing the coil's inductances It is unlikely to observe ferrous behaviour.
    I agree. Non-ferrous targets exhibit redistribution, and ferrous targets exhibit absorption, which accounts for the difference. This is going to be very difficult to model correctly. Attempting to account for the differences by tweaking the coil inductance will not give the same result, as this is not what happens in reality. If that was the case, then VLF detectors would be not any more sensitive than a BFO.

    I'm experiencing trouble getting this method of target modelling to work with a mono coil on a PI.
    Any suggestions welcome.

    Leave a comment:


  • green
    replied
    Noticed spice has a ferrite bead. Tried it in my PI simulation. Rx signal didn't change phase during Tx on with the simulation like a bead does with my tester. Acts the same as an inductor. Anyone know if it should act different than an inductor in spice, maybe I'm using it wrong?

    Leave a comment:


  • Davor
    replied
    Hi, long time...

    I can't test your solution properly, as I don't have much time. But I believe you are on the right track. I think Tec once mentioned ferrous targets increase coils' inductances, and that makes sense. Permeability is not an electric-modelable phenomenon, so it should be modeled behaviourally. However, just by increasing the coil's inductances It is unlikely to observe ferrous behaviour.
    I made a model of a ferrous target, and it is in a topic Target models for simulation. It is beautiful, and it produces a proper impedance plane response, and it is wrong
    However the impedance plane LOOKS fine, its frequency response in impedance plane is opposite from what it should. So for a single frequency it could be used, but beyond that the model is useless.

    A few hints... Spice won't allow coupling to add up beyond 1. So when you couple a lot of things with different coupling coefficients, it will usually work fine if each of them is under 0.5.
    With that in mind, there is no problem "splitting" a coil into a few pieces connected in series, and having separate phenomena coupled to different pieces. Say, you may have a vari-L model of a varying inductance in series with an actual coil that can be coupled magnetically via K statement. I was about to try that approach. I have no idea what the layout should be though.

    A good reason for separating permeability influence is the observed influence of geometry with ferrous vs. non-ferrous targets. While former works best when perpendicular to the coil plane, non-ferrous work best when laying flat.

    tl;dr - Id'd do it already if I had idea.

    Leave a comment:


  • Qiaozhi
    replied
    In Ltspice it is possible to simulate a simple balanced coil using two inductors with a coupling coefficient (K). A metal target can then be created using a paralleled inductor and resistor, so that the time constant () of the target is defined by L/R. By adding suitable coupling coefficients between the TX inductor and the target, and likewise for the target and the RX inductor, it's effect on the RX signal can be determined.

    However, there are a couple of problems here. Firstly, this approach does not provide any distinction between ferrous and non-ferrous targets. Secondly, the manner in which the RX signal is phase-shifted for various targets, and the changes in amplitude, means that this method is only appropriate for DD coils.

    In order to simulate a concentric coil, you can add a third (nulling) loop that is electrically connected to the TX loop, and inductively connected to the RX loop with a suitable coupling coefficient. In this case you must be careful how you define the coupling coefficients, otherwise Ltspice simulation will fail with the "non-physical winding possibility" error message. With this topology, all targets give a phase-shift left and an increase in amplitude, but still no distinction between ferrous and non-ferrous.

    Carl suggested the use of a core model, if that was available in Ltspice. In fact, Ltspice does have a hysteretic core model based on a model first proposed by John Chan et al, but extended with the methods in US Patent 7502723. But ... sadly ... the Chan model, as implemented in Ltspice, does not support mutual inductance. In other words, you can only use the Chan model if you have a single-winding inductor, which is not at all useful in this case.

    To cut a long story short, the only available approach seems to be finding a method of providing mutual coupling of the various inductors without using the built-in coupling coefficient (K). Then it might be possible to attach the core model to the target inductance. To test this theory I placed a zero-volt voltage source (i.e. a short-circuit) in series with the TX loop, and linked this to a CCCS to inject the TX current into an inductor that represents the mutual inductance between the TX and RX loops. The value of the mutual inductance is calculated as:



    The voltage generated across the mutual inductance is then transferred to the RX loop using a VCVS with a gain of Km (where Km represents the coupling coefficient between the TX and RX loops). The result is a balanced coil arrangement that does not use the built-in coupling coefficient (K). Simulating this setup provides the same result as the original configuration.

    A nulling coil was then added to the mix, using the same method, but with the TX current injected into the mutual inductance associated with the nulling coil in anti-phase. Initially Knull was set to unity, and Lnull was swept around a range of values to find a suitable balance point. Once a suitable point was established to within 1uH, the balance was fine tuned by adjusting Knull. The final value of Knull was found to be 0.9, which seems a reasonable value for a nulling coil wound on top of the RX loop. The nulling coil inductance was found to be 581uH.

    In the case of the TX and RX loops, these are magnetically coupled. In the case of the nulling loop, this is electrically connected to the TX loop and magnetically connected to the RX loop. However, for the metal target, this is magnetically connected to both the TX and RX loops, so the model is somewhat more complicated, requiring the use of two mutual inductances. The TX current is injected into Lmt1 (the mutual inductance between the TX loop and the metal target) and the voltage generated across Lmt1 is transferred to the target inductance / resistance combination. Next, the current flowing in the target is transferred to Lmt2 (the mutual inductance between the metal target and the RX loop) and the voltage generated across Lmt2 is transferred to the RX coil. This setup gives similar results to the original setup, but still without any discrimination between ferrous and non-ferrous targets.

    At this point I added a core model to the target by replacing the inductance value with the details of the hysteresis loop and the core geometry. Having estimated (guessed) the values associated with the target, I tested the simulation. Unfortunately the results were less than perfect, and failed to produce any difference between ferrous and non-ferrous targets. This seems to be because the inductance value of the target is derived from the core parameters, and there is still a requirement to know the actual value of the inductance in order to calculate the two mutual inductance values. Thinking this may be the root of the problem, I then inserted the core parameters for a ferrite bead model that I found here → http://ltwiki.org/index.php?title=The_Chan_model

    The parameters are:
    Ferrite bead inductance (Lt) = 1.5uH
    Hc (coercive force) = 19.1 A/m
    Bs (saturation flux density) = 0.39 T
    Br (remnant flux density) = 0.15 T
    A (bead magnetic cross-section) = 3.575u m^2
    Lm (length of magnetic flux lines) = 6.9 m
    N (number of turns) = 1
    Lg (gap) = 0

    Although we have all the information required, the simulation results still did not match reality..

    Eventually I had to abandon the use of the core model, and created a simple ferrous target with the addition of a series capacitor. The complete simulation is attached.

    This is a stepped simulation with 9 separate targets, as follows:

    1. No target
    2. Aluminium foil
    3. Bronze
    4. Nickel, brass
    5. Aluminium
    6. Gold (bulk)
    7. Copper
    8. Silver
    9. Iron

    The simulation makes extensive use of the table function to connect the different models. Note that the last target (iron) phase-shifts left (like all other targets) but decreases in amplitude when compared to the residual RX voltage when no target is present. Also, if you sufficiently increase the coupling coefficient (Kmt) for iron, the RX signal will flip over and start to increase in amplitude. This is the same as happens in reality when a large chunk of iron gets close to the coil.

    In conclusion, this methodology allows both ferrous and non-ferrous targets to be simulated with a balanced coil arrangement, with the ability to demonstrate ferrous / non-ferrous discrimination. The model may not be perfect, but at least it provides a basis for further development if necessary. It may also be possible to simply revert back to the original coupled inductor version, but using the new ferrous model. At the moment I don't know the answer as I haven't tried it yet. I just wanted to present this here for your delectation, and give others to chance to play around with the Chan core model.

    For my next trick ... I need to get this working for a mono coil.
    Attached Files
    Last edited by Qiaozhi; 04-11-2019, 03:37 PM.

    Leave a comment:


  • Qiaozhi
    replied
    There may be a way to "impress" the non-linear Chan core model onto a linear core inductance with multiple windings, and get around this limitation.
    But I need to think it about it somewhat first.

    However, in the meantime, I've modified the original simulation slightly. Apparently, when you define a mutual inductance that is less than unity, LTspice splits this into two separate parts:
    1) A completely non-coupled "leakage" inductance equal to (1-K)*Lx.
    2) A completely coupled "mutual" inductance equal to K*L.

    Hence, in this particular simulation, with K1 set to 0.29 we should set Knull to 0.71 (as LTspice seems to be considering Knull as a leakage inductance). In which case Lnull should be set to 996uH to achieve the correct balance. In fact, the result is even closer to reality. Also, Rx need to be rotated by 180 degrees.
    Attached Files

    Leave a comment:


  • Qiaozhi
    replied
    Big problem ...
    "Mutual inductance statements aren't supported between non-linear inductors."

    Leave a comment:


  • dbanner
    replied
    Great stuff.
    I am reminded of the fact that the behaviour of an IB search head presents a unique radio magnetic and inductive set of parameters.
    Modelling such an arrangement accurately is perhaps a most difficult challenge.
    Good luck.
    "........comprise a transformer with a physical non winding possibility."

    Leave a comment:


  • Teleno
    replied
    Hysteretic core model for LTspice. Perhaps close to what is needed.



    Leave a comment:


  • Qiaozhi
    replied
    Hi Teleno,

    The results look more realistic than before. However, I can't help thinking that this is more of a "fudge" than actually what happens in practice. Although the target affects the coil inductance to some extent, the small change I measured was with a large iron bolt in contact with the coil.

    In reality, the differences between ferrous and non-ferrous targets has more to do with the phenomena of absorption and redistribution.
    Non-ferrous conductive targets will have eddy currents generated in the surface, which (according to Lenz's law) will generate their own opposing magnetic field. The produces an imbalance that can be detected by the RX loop. In addition there is a phase shift produced when compared to the applied TX field, and the amount of phase shift depends on the conductivity of the target. Different targets also have a resistive element that causes some of the transmitted energy to be absorbed. Likewise this can be detected by the RX loop.

    I suspect that a core model may be the only way to go.
    More later ...

    Leave a comment:


  • green
    replied
    Originally posted by Qiaozhi View Post
    SPICE Simulation Challenge




    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.


    What I get with my PI. Don't how to simulate ferrous targets either. Simulation kind of compares with my detector circuit with a 143usec TC target(clad quarter). Simulation straight line decay linear log chart(signal amplitude similar at beginning of coil on and target decay after coil off) where quarter is not straight line decay until after 150us so signal is higher at beginning of decay compared to coil on amplitude. Think ferrous simulation should look similar to what I get with my detector. Simulation_143us target and 1ns target(no target).

    Not awake again! scope pictures labeled wrong for Rx coil size, should be reversed.
    Attached Files
    Last edited by green; 04-05-2019, 06:01 PM. Reason: added sentence

    Leave a comment:


  • Teleno
    replied
    Originally posted by Qiaozhi View Post
    Thanks Teleno.

    I can see what you're trying to achieve in your simulation, and the theory behind it. In particular, the "table" syntax is interesting, as I've never used that in LTspice. This is a very useful feature which allows multiple values to be stepped in unison. I could have used that several times in the past. By the way, there's also an undocumented feature of LTspice called "ako" (A Kind Of) alias that allows you to substitute different models into a simulation to make comparisons. I can visualize many ways to combine "ako" and "table" for some fun and games.

    My first comment is that (for a concentric coil) the FE amplitude should be lower than the residual voltage with no target, and the non-FE should higher. However, the simulation shows that both targets have a higher amplitude than the residual, and the FE target is greater than the non-FE.

    My second comment is that an increase of 300uH in the loop inductances seems rather high. To test this in practice I took a Tesoro concentric coil and measured the inductance change with a rusty 33mm long bolt placed directly onto the coil. The change of inductance in the TX loop could not be measured, and the RX loop inductance increased by 20uH. In conclusion, I think this is an interesting "fudge", but the results don't really match reality.

    My next step is investigate the LTspice core model as suggested by Carl.
    In my sim I had the bucking coil change with mu in the same proportion as the Tx and Rx coils, which is probably less since the coupling with the target is much lower.

    Ive modified the parameters as follows:

    .step param Mu list 1 2
    .param Ltx table(Mu,1,6m,2,6.03m)
    .param Lnull table(Mu,1, 600u, 2, 601u)
    .param Lrx table(Mu,1, 6.5m, 2, 6.5325m)
    .param Ltgt table(Mu,1, 1u, 2, 1u)
    .param Rtgt table(Mu,1, 1R, 2, 2R)

    Inductange change with ferrous target: 0,5%
    Null coil change with ferrous target: 0.15%
    Fe and non-Fe having the same shape, same inductance, same resistivity.

    This is what I get (blue trace = Fe):




    The amplitude without a target is 7.6mV, so I believe this better mimics your real life tests.
    Attached Files

    Leave a comment:


  • waltr
    replied
    Another great thread. I have also tried getting the target models to show what I see on real PI detector.
    I will be trying suggestions.

    Also working on a new PI detector that uses IB coils and a PIC32 to sample and analysis both TX on and TX off wave forms. Hoping to do FE discrimination from the TX on.
    I haven't yet started a thread on this but plan to in the near future.
    Good simulation models will be helpful.

    Leave a comment:


  • ivconic
    replied
    Supply rails are actually +5v and -6.2v.
    ...
    Quite good decision Q. !
    You can develop proper math on this and form quite good basics for some emulator, eventually later?
    And usually what's done good in math; can be easily ported to mcu later.
    Do i see some ambitions here... !?


    Leave a comment:

Working...
X