RF PCB Toolbox. Spiral Inductor. Removing layers / changing layer properties
Show older comments
Hello all,
I am working with a spiral inductor object from RF PCB Toolbox
>> coil = spiralInductor('SpiralShape', 'circle');
The instantiated object coil has three layers of substrate
>> coil.Substrate
ans =
dielectric with properties:
Name: {'RTDuriod' 'RTDuriod' 'RTDuriod'}
EpsilonR: [3.6600 3.6600 3.6600]
LossTangent: [0.0013 0.0013 0.0013]
Thickness: [5.0800e-04 5.0800e-04 5.0800e-04]
FrequencyModel: 'Constant'
In order to adapt the coil object to the needs of my project, the top dielectric layer has to be removed, leaving the conductor exposed to air. I do it in two ways.
In the first case, I change the substrate properties of the object (here the topmost layer is the rightmost one, 3)
>> coil.Substrate.Name{3} = 'Air';
>> coil.Substrate.EpsilonR(1,3) = 1.0000;
>> coil.Substrate.LossTangent(1,3) = 0.0000;
>>
>> coil.Substrate
ans =
dielectric with properties:
Name: {'RTDuriod' 'RTDuriod' 'Air'}
EpsilonR: [3.6600 3.6600 1]
LossTangent: [0.0013 0.0013 0]
Thickness: [5.0800e-04 5.0800e-04 5.0800e-04]
FrequencyModel: 'Constant'
In the second case, I convert the spiral inductor object into a pcb component object
>> coil_pcb = pcbComponent(coil);
>>
>> coil_pcb.Layers{1}
ans =
dielectric with properties:
Name: 'RTDuriod'
EpsilonR: 3.6600
LossTangent: 0.0013
Thickness: 5.0800e-04
FrequencyModel: 'Constant'
and change the dielectric properties of the object (here the topmost layer is the leftmost one, 1)
>> coil_pcb.Layers{1}.Name = 'Air';
>> coil_pcb.Layers{1}.EpsilonR = 1.0000;
>> coil_pcb.Layers{1}.LossTangent = 0.0000;
>>
>> coil_pcb.Layers{1}
ans =
dielectric with properties:
Name: 'Air'
EpsilonR: 1
LossTangent: 0
Thickness: 5.0800e-04
FrequencyModel: 'Constant'
Then, I compute the value of inductance for each of the objects, through the S-parameters
>> spar_coil = sparameters(coil, freq, 50);
>> spar_coil_pcb = sparameters(coil_pcb, freq, 50);
>>
>> s11_coil = spar_coil.Parameters(1,1);
>> s11_coil_pcb = spar_coil_pcb.Parameters(1,1);
>>
>> z11_coil = 50 * (1 + s11_coil) / (1 - s11_coil);
>> z11_coil_pcb = 50 * (1 + s11_coil_pcb) / (1 - s11_coil_pcb);
>>
>> l_coil = imag (z11_coil) / (2 * pi * freq);
>> l_coil_pcb = imag(z11_coil_pcb) / (2 * pi * freq);
The values computed, l_coil and l_coil_pcb, are nearly the same, which is expected.
However, if I remove the top layer from the coil_pcb object by rearranging the layers
>> coil = spiralInductor('SpiralShape', 'circle');
>> coil_pcb_2 = pcbComponent(coil);
>>
>> old_layers = coil_pcb_2.Layers;
>> old_vialocations = coil_pcb_2.ViaLocations;
>> old_feed_locations = coil_pcb_2.FeedLocations;
>>
>> coil_pcb_2.Layers = {old_layers{1, 2}, old_layers{1, 3}, old_layers{1, 4}, old_layers{1, 5}, old_layers{1, 6}};
>> coil_pcb_2.ViaLocations = [old_vialocations(1), old_vialocations(2), 1, 3];
>> coil_pcb_2.FeedLocations = [old_feed_locations(1, 1), old_feed_locations(1, 2), 1;old_feed_locations(2, 1), old_feed_locations(2, 2), 3];
the calculation of the inductance value following the same procedure gives a significantly different result.
Please advise, should the air layer be explicitly specified for the topmost or bottommost metal layers (or in general for a model) if they aren't covered by a dielectric layer? Removing the topmost layer on the pcb object significantly changed the inductance value, while setting it to the "air" value resulted in nearly the same value comparing to the spiral inductor object. Where did I go wrong?
Thank you.
Answers (0)
Categories
Find more on Get Started with RF PCB Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!