pcbComponent
Description
Use the pcbComponent
object to create a multiport PCB component
consisting of metal and dielectric layers.
Creation
Description
pcb = pcbComponent
creates a two-port PCB component.
pcb = pcbComponent(Name=Value)
sets Properties using one or more
name-value arguments. For example, pcb =
pcbComponent(Name=PCBWilkinson)
creates a PCB component named
'PCBWilkinson'
Properties not specified retain their default
values.
Properties
Name
— Name of PCB component
'MyPCB'
(default) | character vector | string scalar
Name of the PCB component, specified a character vector or string scalar.
Example: component =
pcbComponent(Name='PCBsplitter')
Data Types: char
| string
Revision
— Revision details
'v1.0'
(default) | character vector | string scalar
Design revision details of the PCB component, specified as a character vector or string scalar.
Example: component = pcbComponent(Revision='v2.0')
Data Types: char
| string
BoardShape
— Shape of PCB
traceRectangular
(default) | object
Shape of the PC board, specified as a shape object. You can specify any one of the shapes from Custom Geometry and PCB Fabrication.
Example: trace = tracerectangular; component =
pcbComponent(BoardShape=trace)
creates a rectangle shaped trace on a
PCB.
Data Types: shape object
BoardThickness
— Height of PCB component
0.0016
(default) | positive scalar
Height of the PCB component, specified as a positive scalar in meters. To understand
more about BoardThickness
, see Board Thickness versus Dielectric Thickness in PCB.
Example: component =
pcbComponent(BoardThickness=0.0026)
Data Types: double
Layers
— Metal and dielectric layers
{[1×1 traceRectangular] [1×1 dielectric] [1×1
traceRectangular]}
(default) | cell array of metal and dielectric layers
Metal and dielectric layers, specified as a cell array of metal and dielectric layers. You can specify one metal shape or one dielectric substrate per layer starting with the top layer and proceeding downward.
Data Types: cell
FeedLocations
— Feed locations on PCB component
[2×4 double]
(default) | N-by-3 array | N-by-4 array
Feed locations on the PCB component in Cartesian coordinates, specified as either an N-by-3 or N-by-4 array with N representing the number for ports on the PCB component. You can place the feed inside the board or at the edge of the board. The arrays translate into the following:
N-by-3 – [x, y, Layer]
N-by-4 – [x, y, SigLayer, GndLayer]
Example: component = pcbComponent(FeedLocations=[-0.0187 0 1
2])
Data Types: double
FeedDiameter
— Diameter of center pin of feed connector
0.0025
(default) | positive scalar
Diameter of center pin of the feed connector, specified as a positive scalar in meters.
Example: component =
pcbComponent(FeedDiameter=2.000e-04)
Data Types: double
ViaLocations
— Electrical short locations on PCB component
real vector of size M-by-4 array
Electrical short locations on the PCB component in Cartesian coordinates, specified as a real vector of size M-by-4 array. The array translates into the following:
M-by-4 – [x, y, SigLayer, GndLayer]
Example: component = pcbComponent(ViaLocations=[0 -0.025 1
2])
Data Types: double
ViaDiameter
— Diameter of electrical shorting pin used between metal layers
positive scalar | positive vector
Diameter of electrical shorting pin used between metal layers, specified as a positive scalar in meters for a single pin or a positive vector in meters for multiple pins. Number of values specified in this property must match the number of pins.
Example: component =
pcbComponent(ViaDiameter=1.0e-3)
Data Types: double
FeedViaModel
— Model used for feed
'strip'
(default) | 'square'
| 'hexagon'
| 'octagon'
Model used for approximating the feed and the via, specified as one of the following:
'strip'
– A rectangular strip approximation to the feed and via cylinder. This approximation is the simplest and results in a small mesh.'square'
– A four-sided polyhedron approximation to the feed and via cylinder.'hexagon'
– A six-sided polyhedron approximation to the feed and via cylinder.'octagon'
– An eight-sided approximation to the feed and via cylinder.
Example: component=pcbComponent(FeedViaModel='square')
Data Types: string
| char
Conductor
— Type of metal material used in conducting layers
metal('PEC')
(default) | metal object
Type of metal used in conducting layers, specified as a metal object. For more
information see metal
.
Example: m=metal('Copper');
component=pcbComponent(Conductor=m)
Data Types: metal object
Load
— Lumped Elements
[1x1 lumpedElement] (default) | lumped element object handle
Lumped elements added to the PCB component feed, specified as a lumped element
object handle. For more information, see lumpedElement
(Antenna Toolbox).
Example: p=pcbComponent;p.Load=lumpedElement;
Tilt
— Angle of component tilt around the Z-axis
0
(default) | scalar
Angle of component tilt, specified in degrees, around the Z axis.
Example: component=pcbComponent(Tilt=30)
Data Types: double
TiltAxis
— Tilt axis of a PCB Component
[0 0 1]
(default) | 'Z'
Tilt axis of a PCB component, specified as [0 0 1]
or
'Z'
.
Note
Only the Z axis is currently supported.
Example: pcb.TiltAxis = 'Z'
Data Types: double
FeedFormat
— Specifies the input format used for feed setup
'FeedLocations'
(default) | 'FeedDefinitions'
Specifies whether the FeedLocations
property, or the
FeedDefinitions
property is used to configure the feeds of the
pcbComponent
object.
Example: p=pcbComponent;p.FeedFormat='FeedDefinitions'
Data Types: char
| string
FeedDefinitions
— Specifies feeds in terms of FeedDefinitions
objects
ArbitraryFiniteGapFeed
| CoaxialFeed
| DeltaGapFeed
| EdgeFeed
| FiniteGapFeed
| ProbeFeed
Specifies feed types used in a pcbComponent
object.
Feed Definitions
Type | Applications | Usage |
---|---|---|
ArbitraryFiniteGapFeed | Construct a complicated feed in which one or more signal locations must be excited positively with respect to one or more ground locations. | |
ProbeFeed | Microstrip patch antennas; vertical launch feed | Construct a via of cross section specified by Apply excitation at the
|
EdgeFeed | Microstrip form elements whose signal originates on the PCB edge with one ground plane. Stripline form elements with two ground planes. | Define a positive feed edge on the metal edge passing through
SignalLocations(x,y) on the
SignalLayers ; define negative feed edges on all metal
edges passing through Location (x, y) on all specified
GroundLayers . |
DeltaGapFeed | Balanced structures, lumped loads | Create a delta-gap feed of width
|
CoaxialFeed | Higher-fidelity version of a probe feed | Create a via of arbitrary shape specified by
Define the positive feed edge
along the entire perimeter of The The |
FiniteFeedGap | Coplanar multi-ground edge feeds, finite-width delta-gap feeds | On the layer specified by SignalLayer , place positive
feed edges at each of the N metal edge sites specified by
SignalLocations . On the same layer, place negative feed
edges at each of the N metal edge sites specified by
GroundLocations . Feed n (ε 1:N) has width
SignalWidths(n) . |
Note
FeedDefinitions
objects are only accessible when the
FeedFormat
property is set to
'FeedDefinitions'
Example: p=pcbComponent;p.FeedFormat='FeedDefinitions';p.FeedDefinitions=DeltaGapFeed('SignalLocations',[0
0],'SignalWidths',p.Layers{1}.Width,'SignalLayers',1);
Data Types: FeedDefinitions object
SolverType
— Type of solver used for analysis
'MoM'
(default) | 'FEM'
The type of solver used for component analysis, specified as a string: either method
of moments ('MoM'
), or finite element method
('FEM'
). For more information on solvers see Overview of Solvers.
Example: component=pcbComponent(SolverType='FEM')
Note
To enable FEM solver required for the metal shield property, download the
Integro-Differential Modeling Framework for MATLAB
. To download
this add-on:
In the Home tab Environment section, click on Add-Ons. This opens the add-on explorer. You need an active internet connection to download the add-on.
Search for
Integro-Differential Modeling Framework for MATLAB
and click Install.To verify if the download is successful, run
in your MATLAB® session command line.matlab.addons.installedAddons
On Windows, to run the IDMF add-on, you must install the Windows Subsystem for Linux (WSL). To install WSL, see Install Linux on Windows with WSL.
The Windows Defender Firewall can block the PostgreSQL server when using the IDMF add-on. To resolve this issue, you can allow the server to communicate on desired networks if the firewall prompts. Alternatively, you can manually add the executable file of the PostgreSQL server located in
<matlabroot>\sys\postgresql\win64\PostgreSQL\bin\postgres.exe
. For more information, see https://support.microsoft.com/en-us/windows/risks-of-allowing-apps-through-windows-defender-firewall-654559af-3f54-3dcf-349f-71ccd90bcc5c.
Data Types: string
IsShielded
— Flag to add metal shielding
false or 0 (default) | true or 1
Flag to add a metal shielding to the PCB component, specified as a logical 0 or logical 1. The default value is logical 0.
Example:
IsShielded = true
or 1
add a metal
shield.
Note
To enable FEM solver required for the metal shield property, download the
Integro-Differential Modeling Framework for MATLAB
. To download
this add-on:
In the Home tab Environment section, click on Add-Ons. This opens the add-on explorer. You need an active internet connection to download the add-on.
Search for
Integro-Differential Modeling Framework for MATLAB
and click Install.To verify if the download is successful, run
in your MATLAB session command line.matlab.addons.installedAddons
On Windows, to run the IDMF add-on, you must install the Windows Subsystem for Linux (WSL). To install WSL, see Install Linux on Windows with WSL.
The Windows Defender Firewall can block the PostgreSQL server when using the IDMF add-on. To resolve this issue, you can allow the server to communicate on desired networks if the firewall prompts. Alternatively, you can manually add the executable file of the PostgreSQL server located in
<matlabroot>\sys\postgresql\win64\PostgreSQL\bin\postgres.exe
. For more information, see https://support.microsoft.com/en-us/windows/risks-of-allowing-apps-through-windows-defender-firewall-654559af-3f54-3dcf-349f-71ccd90bcc5c.
Data Types: logical
Shielding
— Metal shielding
shape.Box
object
This property is read-only.
Metal shield for the PCB component, specified as a shape.Box
object.
The length and width of the box must be equal to the length and width of the ground plane.
The center of the box is at [0 0 Shielding.Height]
.
Dependencies
To enable the Shielding
property, set the
IsShielded
property to true
or
1
.
Connector
— Type of RF connector
RFConnector
(default) | RF connector object
Connector specifies the type of RF connector assembled at the feed locations of the
pcbComponent
, as a RFConnector
object. The
SolverType
must be set to 'FEM'
to enable this
property.
Example: component=pcbComponent(SolverType='FEM',
Connector=RFConnector)
Data Types: RFConnector object
Object Functions
current | Calculate and plot current distribution |
charge | Calculate and plot charge distribution |
feedCurrent | Calculate current at feed port |
gerberWrite | Generate Gerber files |
layout | Plot all metal layers and board shape |
mesh | Change and view mesh properties of metal or dielectric in PCB component |
meshconfig | Change mesh mode of PCB component or shape structure |
sparameters | Calculate S-parameters for RF PCB objects |
show | Display PCB component structure or PCB shape |
Examples
Create Default PCB Component and Plot S-Parameters
Create a PCB component using default properties.
pcb = pcbComponent;
View the PCB component.
show(pcb)
Calculate S-parameters over 10 frequencies from 1-5 GHz.
s=sparameters(pcb,linspace(1e9,5e9,10));
Plot the S-parameters.
rfplot(s)
Create PCB Component with Lid on Top
Create a PCB component with a lid at a distance of 2 cm above the component.
p = pcbComponent;
pcblid = traceRectangular(Length=p.Layers{1}.Length,Width=p.Layers{3}.Width);
dAir = dielectric('Air');
dAir.Thickness = 2e-2;
p.BoardThickness = p.BoardThickness + dAir.Thickness;
p.Layers = {pcblid,dAir,p.Layers{1},p.Layers{2},p.Layers{3}};
p.FeedLocations(:,3:4) = [3 5;3 5];
show(p)
Calculate the S-parameters over the 10 frequencies from 1-5 GHz.
s = sparameters(p,linspace(1e9,5e9,10)); rfplot(s)
Version History
Introduced in R2021bR2024b: Feed definitions
Use the FeedFormat
and FeedDefinitions
properties
to define and create six types of feeds.
See Also
gerberRead
| gerberWrite
| PCBReader
| PCBWriter
| PCBServices
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)