Engee documentation

mutualInductor

Creates a mutual inductance element.

Library

EngeeRF

Description

Use the function mutualInductor to create a mutual inductance element. You can add a mutual inductance element to the object. rfbudget or circuit, and then export this element to the EngeeRF library for circuit envelope analysis.

Syntax

Function call

  • mi = mutualInductor() — creates a mutual inductance element, the properties of which are set by default.

  • mi = mutualInductor(Name=Value) — sets properties specified by one or more arguments of the type «name-value». Unspecified properties retain their default values.

Arguments

Input arguments «name-value»

Specify optional argument pairs as Name=Value, where Name — the name of the argument, and Value — the appropriate value.

Example: mi = mutualInductor(CouplingCoefficient = 0.65) creates a mutual inductance element with a coupling coefficient between two coils 0.65. You can specify multiple pairs «name-value».

# Name — the name of the mutual inductance element

+ "MutualInductor" (by default) | line

Details

The name of the mutual inductance element, specified as a string.

Типы данных

String

# Inductance1 — the inductance of the primary winding of the mutual inductance element

+ 1e−6 (default) | scalar

Details

The inductance of the primary winding of the mutual inductance element, set as a positive scalar in Gn.

Типы данных

Float64

# Inductance2 — the inductance of the secondary winding of the mutual inductance element

+ 1e−6 (by default) | scalar

Details

The inductance of the secondary winding of the mutual inductance element, set as a positive scalar in Gn.

Типы данных

Float64

# CouplingCoefficient is the coupling coefficient of the mutual inductance element

+ 0.9 (by default) | scalar

Details

The coupling coefficient of the mutual inductance element or the mutual coupling between the primary and secondary windings, set as a positive scalar between 0 and 1.

Типы данных

Float64

# NumPorts — number of input and output ports

+ 2 (default) | scalar

Details

The number of input and output ports, set as a positive scalar.

This argument is read-only.
Типы данных

Int64

# Terminals — terminals of the mutual inductance element

+ ("p1+", "p2+", "p1−", "p2−") (by default) | tuple of strings

Details

Terminals of the mutual inductance element, specified as a tuple of strings from 4 elements.

This argument is read-only.

Output arguments

# mi — transmission line object

+ object

Details

A transmission line object containing the following properties:

  • Name — the name of the mutual inductance element in the form of a string, for example "MutualInductor";

  • Inductance1 — the inductance of the primary winding;

  • Inductance2 — the inductance of the secondary winding;

  • CouplingCoefficient — communication coefficient;

  • NumPorts — number of ports;

  • Terminals — terminal names in the form of a tuple of strings;

  • Parent — the parent schema that the chain object belongs to;

  • ParentNodes — nodes of the parent schema in the form of an array of integers, displayed only after adding the child schema to the parent schema;

  • ParentPath — the full path to the parent schema as a string, displayed only after adding the child schema to the parent schema.

Examples

Adding a mutual inductance element to a circuit object

Details

Let’s create an element of mutual inductance with the inductance of the primary winding 33 nGn, the inductance of the secondary winding 26 nGn and the coupling coefficient 0.55.

using EngeeRF

mi = mutualInductor(Inductance1 = 33e-9, Inductance2 = 26e-9, CouplingCoefficient = 0.55)

Creating an amplifier object with a gain factor 10 dB and noise ratio 2 dB.

a = amplifier(Gain = 10, NF = 2)

Creating an attenuator object with default properties.

att = attenuator()

Creating an object circuit And we’ll give him a name.

ckt = circuit("adding_mutual_inductor_to_circuit")

Adding to the object circuit elements of the amplifier, mutual inductance and attenuator.

add(ckt, [1 2], a)
add(ckt, [2 3], mi)
add(ckt, [3 4], att)
setports(ckt, [1 0], [4 0])

Let’s display the object circuit.

println("ElementNames: ", ckt.ElementNames,
        "\nElements: ", ckt.Elements,
        "\nName: ", ckt.Name,
        "\nNodes: ", ckt.Nodes)
ElementNames: ("Amplifier", "MutualInductor", "Attenuator")
Elements: EngeeRF.DomainRF.DomainObjectRF[amplifier(Model = "cubic", Name = "Amplifier", ParentNodes = [1, 2, 0, 0], ParentPath = "adding_mutual_inductor_to_circuit", Gain = 10.0, NF = 2.0, OIP2 = Inf, OIP3 = Inf, Zin = 50.0 + 0.0im, Zout = 50.0 + 0.0im), mutualInductor(Name = "MutualInductor", Inductance1 = 3.3e-8, Inductance2 = 2.6e-8, CouplingCoefficient = 0.55, NumPorts = 2, Terminals = ("p1+", "p2+", "p1-", "p2-")), attenuator(Terminals = ("p1+", "p2+", "p1-", "p2-"), Name = "Attenuator", Budget = nothing, Listener = nothing, Ports = ("p1", "p2"), Parent = circuit, ParentNodes = [3, 4, 0, 0], ParentPath = "adding_mutual_inductor_to_circuit", NumPorts = 2, Attenuation = 3.0, Zin = 50.0, Zout = 50.0, Name = "Attenuator")]
Name: adding_mutual_inductor_to_circuit
Nodes: [0, 1, 2, 3, 4]

Calculate the S-parameters of the circuit at the frequency 2.1 GHz.

s = sparameters(ckt, 2.1e9)

println("Impedance: ", s.Impedance,
        "\nNumPorts: ", s.NumPorts,
        "\nParameters: ", s.Parameters,
        "\nFrequencies: ", s.Frequencies)
Impedance: 50.0
NumPorts: 2
Parameters: ComplexF64[-5.662137425588298e-15 + 1.4043333874306804e-16im 1.3385052598948672e-16 + 1.7554167342883506e-17im; 0.156236746796798 - 0.40817287150293746im 0.4510349985251114 + 0.19540379885651096im;;;]
Frequencies: [2.1e9]