Could some electronics suru here clarify this a bit ? A planar inductor has a frequency dependent resistance(skin, proximity effecrs). Can the small signal S parameters for such an inductor be measured using stabdard SPICE small signal(.AC) analysis ? At each frequency in a specified frequency range, the series resistance is different. Does this new resistance at each frequency have effect on the S parameter estimation.
SPICE S parameter for frequency dependent circuit components question
Nov 19, 2021
Last reply: 4 years ago
12 Replies
Like these?
formatting link
I've smoked these in a pulse application, at way below rated RMS current. Skin loss! I had to wind my own, which I hate to do.
formatting link
Certainly an s-param table should account for changes in losses vs frequency.
Calculating the skin effect losses to put _into_ the S parameters needs an EM solver, though, assuming that is what the OP needs. Spice doesn't do that.
Cheers
Phil Hobbs
On a sunny day (Fri, 19 Nov 2021 13:08:52 -0500) it happened Phil Hobbs snipped-for-privacy@electrooptical.net wrote in snipped-for-privacy@electrooptical.net:
I am sure you know ohmic losses are i^2 * R. So if you have a 1 Ohm resistor, and have 1A during 1 second you dissipate 1 Watt during that second.
1^2 * 1 * 1 = 1But if you have, in same resistor, 2A during half a second and zero A during the other half, then you have dissipated 2 Watt during that second, while the average current is still 1 A.
2^2 * 1 * .5 = 2 If you have in same resistor, 4A during 1/4 second and zero A during the rest of that second, then you have, in same resistor, dissipated 4W during that second while the average current is still 1A. 4^2 * 1 * .25 = 4Wetc. Pulses, beware!
pfffff
Probably really flat, like etched on a PCB or on SiO2 etc.
<
formatting link
>
A few are missing, like Keysight EMPRO or
formatting link
Spice is also not the first choice for S-parameter handling.
---------
Now that I'm at it, I have made a test board on JLCPCB's
7628 4 layer process. <
formatting link
>
Somewhere I've written down that 50 Ohm on the top level should be 11.55 mil. My test line is 12 mil wide as drawn in Altium. I don't have any idea how much they correct for underetching etc.
<
formatting link
>
It hits quite closely, somewhat more closer to 11 mil would probably be exact. My SMA-decals are much too fat for the 4 layer process.
From x=0.5 to 3.5 divisions is the internal 50 Ohm line in the 54754A TDR plug in. Around division 4 is the SMA of the test board. It is a capacitive load.
Divisions 4.5 to 7.5 is the 12 mil line on the multilayer. There is no real difference to the plug-in-internal
50 Ohm line.Then follows the smaller dip of the unpopulated SMA-connector and then the full reflection at the open end.
The LMX2594 10 MHz-15 GHz synthesizer worked immediately :-) The USB-to-SPI dongle board cannot tell the difference between the eval board and the test board. I have not yet written a single line of software.
Cheers, Gerhard
Yes. You'll need to use LAPLACE = {something}. LAPLACE does not have the troubles in .AC that it does for transient simulation. I have to say that I don't bother messing with this for the non-ferrous core coils anymore. I mean the "chip surface mount RF coils."
About 15 years ago I was playing with it, and had a test file for a CCI 1008HQ_R10_ coil testing different LAPLACE usage, because I was not sure I understood it. As follows: =============================================
*1008HQ_R10_multi.mod *Used to test various models of the 100nH 1008HQ inductor *ABS(s) 1008HQ_R10_abss Upper- R1 R2 Limit
- PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
- 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10_abss 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( abs(s)/(2*pi) ) ) ) R99 2 5 1G .ENDS
- Upper
- R1 R2 Limit
- PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
- 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( -1*sqrt(-1)*s/(2*pi) ) ) ) R99 2 5 1G .ENDS
- -j 1008HQ_R10_negj Upper
- R1 R2 Limit
- PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
- 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10_negj 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( -1*sqrt(-1)*s/(2*pi) ) ) ) R99 2 5 1G .ENDS
- R1 R2 Limit
- PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
- 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10_skinEff 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( s/(2*pi) ) ) ) R99 2 5 1G .ENDS
- R1 R2 Limit
- PartNumber (OHM) (OHM) C(pF) L(_H) k (MHz)
- 1008HQ-R10 14.0 0.160 0.210 100.00 1.31E-004 1400 .SUBCKT 1008HQ_R10_skinEffSqrt2 1 4 R1 3 4 14.00 R2 1 2 0.1600 C1 2 3 0.210E-12 L1 5 4 100.00E-9 GLAP 2 5 2 5 LAPLACE = ( 1/( sqrt(2)*1.31E-004*sqrt( s/(2*pi) ) ) ) R99 2 5 1G .ENDS
GLAP 2 5 2 5 LAPLACE = ( 1/( 1.31E-004*sqrt( -1*sqrt(-1)*s/(2*pi) ) ) )
The quantity 1.31E-004*sqrt( -1*sqrt(-1)*s/(2*pi) ) looks strange, but I think it makes it real in the end, which we want for a resistor.
In the end I had generated a bunch of entire CCI chip inductor family libraries. I haven't used them for many years because I just use AWR and Modelithics, and I didn't end up thinking it bought me much.
Yes, strictly and in principle. But the weight of importance may or may not matter depending on what you're doing.
An example library is the following available from CCI:
- SPICE MODEL SUBCIRCUIT DATA SOURCE: 026011F-spice0.txt
- AUTO-GENERATED DATE: 29-Mar-2020 11:59:00
- Coilcraft Inductor (CCI) Family: 026011
- Dummy header part .SUBCKT 026011F-___ 1 4 R1 1 4 1E-12 .ENDS
- Lower Upper
- Limit Limit
- 026011F-270 1 1000 1440 0.11 0.3 7.8e-005 0.05 0.018 0.0017 5e-010 .SUBCKT 026011F_270 1 4 .param R1 1440 .param R2 0.11 .param C1 3e-013 .param k1 7.8e-005 .param k2 0.05 .param k3 0.018 .param k4 0.0017 .param k5 5e-010 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS
- Lower Upper
- Limit Limit
- 026011F-720 1 1000 1080 0.4 0.22 0.000152 0.078 0.077 0.0035 5e-007 .SUBCKT 026011F_720 1 4 .param R1 1080 .param R2 0.4 .param C1 2.2e-013 .param k1 0.000152 .param k2 0.078 .param k3 0.077 .param k4 0.0035 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS
- Lower Upper
- Limit Limit
- 026011F-151 1 1000 1480 0.6 0.088 0.000106 0.11 0.163 0.0067 5e-007 .SUBCKT 026011F_151 1 4 .param R1 1480 .param R2 0.6 .param C1 8.8e-014 .param k1 0.000106 .param k2 0.11 .param k3 0.163 .param k4 0.0067 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS
- Lower Upper
- Limit Limit
- 026011F-271 1 1000 2200 1.15 0.027 7.6e-005 0.158 0.282 0.0106 5e-007 .SUBCKT 026011F_271 1 4 .param R1 2200 .param R2 1.15 .param C1 2.7e-014 .param k1 7.6e-005 .param k2 0.158 .param k3 0.282 .param k4 0.0106 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS
- Lower Upper
- Limit Limit
- 026011F-431 1 1000 1380 1.85 0.028 0.00015 0.254 0.437 0.014 5e-007 .SUBCKT 026011F_431 1 4 .param R1 1380 .param R2 1.85 .param C1 2.8e-014 .param k1 0.00015 .param k2 0.254 .param k3 0.437 .param k4 0.014 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS
- Lower Upper
- Limit Limit
- 026011F-561 1 1000 690 2.8 0.022 0.0001 0.239 0.584 0.0172 5e-007 .SUBCKT 026011F_561 1 4 .param R1 690 .param R2 2.8 .param C1 2.2e-014 .param k1 0.0001 .param k2 0.239 .param k3 0.584 .param k4 0.0172 .param k5 5e-007 R2 1 2 {R2} R1 3 4 {R1} C1 2 3 {C1} Grv1 2 5 2 5 LAPLACE={1/(k1*sqrt(1 + s/(2*pi))) } R98 2 5 1G GLv1 5 4 5 4 LAPLACE={1/(1e-3 + s*1e-6*(k3 - (k4*LOG(k5*(s/(2*pi)))))) } R99 5 4 1G Grv2 2 4 2 4 LAPLACE={1/(k2*sqrt(1 + s/(2*pi))) } .ENDS
As some random Dutchman noted in another thread, you should get your quoting right--I didn't write that. ;)
Cheers
Phil Hobbs
That inductor fried at an RMS current way below specified max. It was skin loss. My home-made inductor was OK: less proximity effect, more air cooling, and the gap-pad.
Oh, that's just the tip of the iceberg. In pulse applications, there's mechanical stress to consider. as well. This little item, for instance, had a mechanical stress event
formatting link
and no amount of SPICE expertise can model that issue.
Thanks to each of you for clarifying my doubts and reinforcing my own ideas on this very interesting topic. I agree that SPICE small signal(.AC) feature is good only for S parameters measurement at start up, and that too when pesky things like frequency dependent resistors. Also, my inductors are etched on a PCB, or on SiO2.
That inductor sees 7 ns 1400 v pulses at up to 5 MHz. So there are no mechanical effects. Or no audible ones!
I wonder if the helix diameter is the same after a few million such hammer-blows? It isn't the RMS pressure that causes metal to stretch, peaks beyond elastic limit are enough.
5 MHz is 400 billion hits per day. I didn't see any change. The peak current is only about 15 amps.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required