Engee documentation

richards

Converting a chain with concentrated elements into a chain with distributed elements using the Richards transform.

Library

EngeeRF

Syntax

Function call

  • cktOut = richards(cktIn,opFreq) — applies the Richards transform to the circuit cktIn and returns the chain object cktOut at a given reference frequency opFreq. In the object cktOut all capacitors and inductors are replaced by transmission line objects based on electrical length (see function description txlineElectricalLength).

    The Richards transform can only be applied to circuits in which all the negative terminals of the ports have a common node.
  • txOut,nodes = richards(___,stubmode=StubMode) — specify the type of output transmission line loop using the type argument «name-value».

Arguments

Input arguments

# cktIn — RF input circuit

+ the circuit object | lcladder object | the rffilter object

Details

RF input circuit defined as an object circuit, lcladder or rffilter.

# LorCobj — inductor or capacitor

+ the inductor object | the capacitor object

Details

An inductor or capacitor, specified as an object inductor or capacitor.

# opFreq — operating frequency

+ scalar

Details

The operating frequency at which the Richards transform is applied is set as a positive scalar.

Input arguments «name-value»

# StubMode — loop type

+ "Series" (by default) | "Shunt"

Details

The type of cable for txOut, set as "Series" or "Shunt".

Output arguments

# cktOut — output circuit

+ the circuit object

Details

The output circuit returned as an object circuit.

# txOut — transmission line based on electrical length

+ the txlineElectricalLength object

Details

A transmission line based on the electrical length returned as an object txlineElectricalLength.

# nodes — nodes for connecting to txOut
vector

Details

Nodes for connecting to txOut, returned as a vector.

Examples

Applying the Richards transform to an RF filter

Details

Let’s create a low-frequency LC-Pi Chebyshev filter with a bandwidth frequency 1 GHz, bandwidth attenuation 0.5 dB and filter order 5.

using EngeeRF

Fp = 1e9
Ap = 0.5
Ord = 5
cktIn = rffilter(FilterType = "Chebyshev", ResponseType = "Lowpass",
                 Implementation = "LC Pi", FilterOrder = Ord,
                 PassbandFrequency = Fp, PassbandAttenuation = Ap)
opFreq = 1e9

We transform the concentrated elements of the RF filter into a distributed element using the Richards transform.

cktOut = richards(cktIn, opFreq)
circuit(ElementNames = ("C_tx", "L_tx", "C_1_tx", "L_1_tx", "C_2_tx"), Elements = DataType[txlineElectricalLength, txlineElectricalLength, txlineElectricalLength, txlineElectricalLength, txlineElectricalLength], Name = "unnamed", Nodes = [0, 1, 2, 3, 4, 5, 6], NumPorts = 2, Ports = ("p1", "p2"), TerminalNodes = [1, 6, 0, 0], Terminals = ("p1+", "p2+", "p1-", "p2-"))

Applying the Richards transform to an inductor

Details

Let’s create an inductor coil with nGn.

LorCobj= inductor(5e-9)

Let’s create a chain.

ckt = circuit("new_circuit1")

Let’s add a resistor to the circuit and an inductor, an inductor created earlier.

add(ckt, [1 2], LorCobj)
add(ckt, [2 3], resistor(100))

We will set the output parameters and display the result.

setports(ckt, [1 0], [3 0])

println("ElementNames: ", ckt.ElementNames,
        "\nElements: ", ckt.Elements,
        "\nName: ", ckt.Name,
        "\nNodes: ", ckt.Nodes)
ElementNames: ("L", "R")
Elements: EngeeRF.DomainRF.DomainObjectRF[inductor(Inductance = 5.0e-9, Name = "L", ParentNodes = [1, 2], ParentPath = "new_circuit1", Terminals = ("p", "n")), resistor(Name = "R", ParentNodes = [2, 3], ParentPath = "new_circuit1", Resistance = 100.0, Terminals = ("p", "n"))]
Name: new_circuit1
Nodes: [0, 1, 2, 3]

Let’s apply the Richards transform to an inductor at a frequency 1 GHz and show the nodes for connecting the transmission line.

txOut, nodes = richards(LorCobj, 1e9)

println("Z0: ", txOut.Z0,
        "\nReferenceFrequency: ", txOut.ReferenceFrequency,
        "\nLineLength: ", txOut.LineLength,
        "\nStubMode: ", txOut.StubMode,
        "\nTermination: ", txOut.Termination,
        "\nName: ", txOut.Name,

        "\n\nnodes: ", nodes)
Z0: 31.41592653589793
ReferenceFrequency: 1.0e9
LineLength: 0.7853981633974483
StubMode: Series
Termination: Short
Name: L_tx

nodes: [1, 2, 0, 0]

The nodes in this example are nodes where a two-port transmission line is connected, which is a series inductance . The node’s return value is set to −1 if the ground node cannot be determined from the circuit.

Algorithms

The Richards Transformation

Details

This figure shows how the Richards transform transforms a circuit with capacitors and inductors into an abstract transmission line model [1].

richards en

Literature

  1. Pozar, David M. Microwave Engineering. 4th ed. Hoboken, NJ: Wiley, 2012.