MSLine

rfnetwork.elements.MSLine

class rfnetwork.elements.MSLine(h, er, w=None, z0=0, t=0.0013, df=0, loss=0, frequency=0, length=None, shunt=False)

Bases: Line

Microstrip Line

Parameters

hfloat

Substrate thickness in inches

erfloat | list

Dielectric constant of substrate.

wfloat, optional

Width of microstrip trace in inches. Specify w or z0, not both.

z0float, optional

Target characteristic impedance of line. Width will be set automatically if provided.

tfloat, optional

Copper thickness in inches, defaults to 1oz copper (1.3 mils). Does not affect loss.

dffloat | list, optional

Dissipation factor of substrate material, or dielectric loss tangent.

lossfloat | list, optional

Total loss, (dielectric + conductor) losses, in dB per inch. Ignored if df is provided.

frequencylist, optional

Array of frequencies in Hz for er, df, and loss if they are provided as lists.

lengthfloat, optional

Length of line segment in inches.

shuntbool, default: False

if True, port 2 is connected to ground and port 1 is transformed into a 2-port component that can be cascaded with other components.

Examples

To create multiple instances of this line with different lengths,

>>> import rfnetwork as rfn
>>> ms = rfn.elements.MSLine(
...    w=0.020,
...    h=0.010,
...    t=0.0013,
...    er=3.0,
...    loss=0.5,
... )
>>> # create 0.5in segment
>>> ms1 = ms(0.5)  
>>> # create 1.0in segment
>>> ms2 = ms(1.0)  
>>> ms1.state
{'length': 0.5, ...

If f0 is provided, the length is interpreted as the electrical length in degrees.

>>> ms1 = ms(90, f0=10e9)  # create a 0.5in segment
>>> ms1.state["length"]  # state holds the length in degrees
0.2950...

Methods

MSLine.get_properties(frequency)

Returns characteristic impedance and effective dielectric constant over frequency.

Attributes