Design Matching Network Using Lumped Components from Modelithics Library
This example shows you how to:
Design a matching network for a reference antenna using ideal components from RF Toolbox™ and real-world components from Modelithics SELECT+ Library™. Ideal components do not take parasitic effects into account. To include these effects in your simulation, you need to build the matching network with real-world components.
Analyze the ideal and the real-world matching network.
Compare the performance of the ideal and the real-world matching network with respect to a reference antenna.
The presence of parasitics changes the response of the matching network with real-world lumped components. The non-ideal behavior results from variations in the material properties of the substrate and packing material, solder and pad properties, and orientation.
Video Walkthrough
For a walkthrough of the example, play the video.
This video helps you with designing a matching network for a reference antenna using ideal components from RF Toolbox and real-world components from Modelithics SELECT+ Library. Ideal components do not take parasitic effects into account. To include these effects in your simulation, build the matching network with real-world components using RF Toolbox and Modelithics SELECT+ Library.
This video also helps you how to analyze two matching network and, finally, how to compare the performance of the two networks with respect to a reference antenna. The first step, before designing the matching network for the reference antenna, is to design the reference antenna itself.
This example uses an insert-fed patch antenna as a reference antenna. Use the design function from Antenna Toolbox to create an insert-fed patch antenna implemented on a PCB. Set the antenna dimension. And use an FR4 substrate in this design. Set the substrate thickness to 0.0014 meters.
Visualize the antenna using the show function. This example includes a MAT file containing the S-parameter results from a full-wave analysis of the insert-fed patch antenna over a frequency range of 2.3 to 2.5 gigahertz. Load the MAT file. Plot the impedance, and plot the reflection coefficient response.
Build a rational model for the antenna S-parameter data. This allows you to refine the frequency points in the analysis range. And you will not need to simulate the antenna again during full-wave analysis.
You can now begin designing the matching network. First, load the S-parameter data of the reference antenna from the workspace to the Matching Network Designer app. Set the matching frequency to 2.35 gigahertz.
Set the network topology to L-Topology. And generate the network. Select series C shunt L topology, and export the network. Build the matching network by converting the antenna S-parameter data to an nport object and adding it to a circuit.
Assign ports to the circuit for RF analysis. Select 100 points in the analysis frequency range. And analyze the response of the matching network with the antenna S-parameters as the load. Overlay the reflection coefficient of the antenna on the reflection coefficients of the matching network. This shifts the antenna response in the lower band to 2.35 gigahertz.
Ideal components do not take parasitic effects into account. To include these effects in your simulation, build the matching network with real-world components using RF Toolbox and Modelithics SELECT+ Library.
First, download Modelithics SELECT+ Library for MATLAB. If you are an existing user, log in with your Modelithics credentials. If you are a new user, register as a new user. Download the Modelithics installer in the same path as MATLAB.
Once the installation is complete, you can set up the Modelithics SELECT+ Library by specifying the full path to the library using the mdlxSetup object. Create a Modelithics library object. To add real-world lumped components to the matching network, search for a capacitor with a capacitance of 1.6117 picofarad mounted on a 59 mil FR4 substrate.
Note that Modelithics components are substrate scalable. And the 59 mil FR4 substrate is chosen to match the antenna substrate thickness of 1.4 millimeters. Then search for an inductor with an inductance of 2.6611 nanohenry mounted on a similar substrate.
Create an array of Modelithics capacitors and inductors. Create a matching network with L topology, series C, and shunt L using the first element in the Modelithics capacitor and inductor array. Add the matching network with the Modelithics lumped components and the S-parameters of the insert-fed patch antenna to a circuit.
Assign ports to the circuit for RF analysis. Analyze the response of the matching network with the antenna S-parameters as the load. Compare the ideal and real-world reflection coefficients. To compare, overlay the reflection coefficients of the insert-fed patch antenna, the matching network with ideal components, and the matching network with real-world Modelithics components.
The two L and C components are available only in a limited set of discrete values. Inspect their respective data sheets using the datasheet function to identify the values that are closer to the nominal values identified before. Build a new matching network. And try a few of the discrete values close to the nominal values.
The best working values for a matching network operating at 2.35 gigahertz are 1.3 picofarad and 1.8 nanohenry. The discrete values are slightly different from the nominal values due to the parasitic effects.
Overlay the reflection coefficient from the ideal matching network, the one with the real-world components from the Modelithics SELECT+ Library using nominal values, and the one with real-world components from the Modelithics SELECT+ Library using discrete values. The resulting matching network now works at the target frequency.
Create Inset-Fed Patch Antenna
The first step before designing the matching network for the reference antenna is to design the reference antenna itself. This example uses an inset-fed patch antenna as a reference antenna. Create simple inset-fed patch antenna using the design
function from Antenna Toolbox™ implemented on a PCB. Set the antenna dimensions and use an FR4 substrate in this design. And the set the substrate thickness to 0.0014 m.
antennaObject = design(patchMicrostripInsetfed, 2400*1e6);
antennaObject.Length = 0.0265;
antennaObject.Width = 0.0265;
antennaObject.Height = 0.0014;
antennaObject.Substrate.Name = 'FR4';
antennaObject.Substrate.EpsilonR = 4.8;
antennaObject.Substrate.LossTangent = 0.026;
antennaObject.Substrate.Thickness = 0.0014;
antennaObject.FeedOffset = [-0.02835, 0];
antennaObject.StripLineWidth = 0.0016223;
antennaObject.NotchLength = 0.0037853;
antennaObject.NotchWidth = 0.002839;
antennaObject.GroundPlaneLength = 0.0567;
antennaObject.GroundPlaneWidth = 0.0567;
Visualize Inset-Fed Patch Antenna
Use the show
function to visualize the structure of this patch antenna.
figure; show(antennaObject)
Analyze Inset-Fed Patch Antenna
Perform full-wave analysis on the inset-fed patch antenna over 2.3–2.5 GHz and save the S-parameter results to a MAT file. Load the MAT file to view the impedance and reflection coefficient response.
load InsetPatchAntenna.mat
plotFrequency = 2400*1e6;
freqRange = linspace(2.3e9, 2.5e9, 11);
Plot the impedance of the inset-fed patch antenna.
figure; impedance(antennaObject, freqRange);
Plot the reflection coefficient response of the inset-fed patch antenna.
figure; s = sparameters(antennaObject, freqRange); rfplot(s)
Build Rational Model
Build a rational model for the antenna S-parameter data. This allows you to refine the frequency points in the analysis range and not simulate the antenna again during full-wave analysis.
s_rat = rational(s); [resp,~] = freqresp(s_rat,freqRange); hold on plot(freqRange/1e9,20*log10(abs(resp))) title('Antenna Reflection Coefficient') legend('Full-Wave','Rational Model')
Design Matching Network
Load the S-parameter data from the workspace to the Matching Network Designer app. Set the matching frequency to 2.35 GHz and the network topology to L-Topology. Once the app generates the networks, select series C, shunt L from the network list and export the network. The app saves the network to MAT file.
To build the matching network, convert the S-parameter data to an nport
object and add it to a circuit. Assign ports to the circuit for RF analysis.
ant = nport(s);
load mnapp_LTopo_CserLsh.mat
ckt_lumped = circuit;
add(ckt_lumped,[1 2 0 0],mnckt)
add(ckt_lumped,[2 0],ant)
setports(ckt_lumped,[1 0])
Perform S-Parameters Frequency Sweep
Select 100 points in the analysis frequency range and analyze the matching network response with the antenna S-parameters as the load. Overlay the antenna-only port reflection coefficient over this response. This shifts the antenna response in the lower band to 2.35 GHz.
freqRange = linspace(2.3e9, 2.5e9, 100); lumped_s = sparameters(ckt_lumped,freqRange); [resp,freq] = freqresp(s_rat,freqRange); figure rfplot(lumped_s,1,1) hold on plot(freqRange/1e9,20*log10(abs(resp))) legend('ANT+Matching N/W','ANT','Location','Best') title('Reflection Coefficient of Antenna and Matching Network')
Build Matching Network with Non-Ideal Lumped Component Models
Select the non-ideal lumped components from Modelithics Select+ Library. You must have the Modelithics Select+ Library license to run the following code. For more information, see Modelithics SELECT+ Library for MATLAB.
Create RF Component using Modelithics SELECT+ Library
Set up the Modelithics Select+ Library by specifying the full path to the library.
mdlxSetup('C:\mdlx_library\SELECT')
Create the Modelithics library object.
mdlx = mdlxLibrary;
Search the library for a 1.6117 pF capacitor mounted on a 59 mil FR4 substrate. Note that Modelithics components are substrate scalable, and that 59 mil is chosen to match the antenna substrate thickness of 1.4mm.
search(mdlx,'FR4Standard59mil',Type='Capacitors',Value=1.6117e-12)
Search the library for a 2.6611 nH inductor mounted on a 59 mil FR4 substrate.
search(mdlx,'FR4Standard59mil',Type='Inductors',Value=2.6611e-9)
Create an array of Modelithics capacitors.
cList = search(mdlx,'FR4Standard59mil',Type='Capacitors',Value=1.6117e-12);
Create an array of Modelithics inductors.
lList = search(mdlx,'FR4Standard59mil',Type='Inductors',Value=2.6611e-9);
Create Matching Network with Modelithics Components
Create a matching network with L-Topology, series C, and shunt L using the first element in the array of Modelithics capacitors and inductors. Most Modelithics lumped components have two ports.
mdlxckt = circuit; add(mdlxckt,[1 2 0 0],cList(1)); add(mdlxckt,[2 0 0 0],lList(1)); setports(mdlxckt,[1 0],[2 0]);
As with the matching network with ideal lumped components, add the matching network with the Modelithics lumped components and the S-parameters of the inset-fed patch antenna to a circuit. Assign ports to the circuit for RF analysis.
mdlxckt_lumped = circuit; add(mdlxckt_lumped,[1 2 0 0],mdlxckt) add(mdlxckt_lumped,[2 0],nport(s)) setports(mdlxckt_lumped,[1 0])
Analyze Matching Network and Antenna
Analyze the matching network response with the antenna S-parameters as the load.
mdlxlumped_s = sparameters(mdlxckt_lumped,freqRange);
Compare Ideal and Non-Ideal Reflection Coefficients
Overlay the reflection coefficient from the antenna S-parameters with the ones using ideal matching network and the one with real-world components from the Modelithics Select+ Library.
figure rfplot(mdlxlumped_s,1,1) hold on plot(freqRange/1e9,20*log10(abs(resp))) rfplot(lumped_s,1,1) legend('ANT+Modelithics Components','ANT','ANT+Ideal Components','Location','Best') title('Reflection Coefficient of Antenna and Ideal/Non-ideal Matching Network')
Inspect Component Data Sheets
The two L and C components are available only in a limited set of discrete values. Use the datasheet
function to inspect their respective data sheets to identify the values that are closer to the nominal values identified before.
datasheet(cList(1)); datasheet(lList(1));
Discrete component values from the data sheets are shown in this figure.
Build Matching Network Using Discrete Component Values
Build a new matching network, and try a few of the discrete values close to the nominal values. The best working values for a matching network operating at 2.35 GHz are 1.3 pF and 1.8 nH. The discrete values are slightly different from the nominal values due to parasitic effects.
c = clone(cList(1)); c.Value = 1.3e-12; l = clone(lList(1)); l.Value = 1.8e-9; mdlxcktD = circuit; add(mdlxcktD,[1 2 0 0],c); add(mdlxcktD,[2 0 0 0],l); add(mdlxcktD,[2 0],nport(s)) setports(mdlxcktD,[1 0]); mdlxlumpeddiscrete_s = sparameters(mdlxcktD,freqRange);
Overlay the reflection coefficient from the ideal matching network, the one with real-world components from the Modelithics Select+ Library using nominal values, and the one with real-world components from the Modelithics Select+ Library using discrete values.
figure rfplot(mdlxlumpeddiscrete_s,1,1) hold on rfplot(mdlxlumped_s,1,1); rfplot(lumped_s,1,1) legend('ANT+Modelithics Components Discrete Values', ... 'ANT+Modelithics Components Nominal Values', ... 'ANT+Ideal Components','Location','Best') title('Reflection Coefficient of Antenna and Ideal/Non-ideal Matching Network')
The resulting matching network now works at the target frequency.
See Also
mdlxLibrary
| search
| mdlxPart
| mdlxSetup
| datasheet