Inductor
Ideal inductor characterized by its inductance L.
This component models a linear inductor, a fundamental passive two-terminal electrical component. It defines the relationship between voltage v
and current i
based on its inductance L
. The behavior is described by the equation:
math where v
is the voltage across the inductor (difference between pin p
and pin n
), i
is the current flowing through the inductor (from pin p
to pin n
), and L
is its inductance.
This component extends from OnePort
Usage
Inductor(L)
Parameters:
Name | Description | Units | Default value |
---|---|---|---|
L | Inductance value of the component in Henries (H) | H |
Connectors
Variables
Name | Description | Units |
---|---|---|
v | Voltage across the component (between pin p and pin n). | V |
i | Current flowing through the component (from pin p to pin n). | A |
Behavior
Source
dyad
# Ideal inductor characterized by its inductance L.
#
# This component models a linear inductor, a fundamental passive two-terminal electrical component.
# It defines the relationship between voltage `v` and current `i` based on its inductance `L`.
# The behavior is described by the equation:
# ```math
# v = L \frac{di}{dt}
# ```math
# where `v` is the voltage across the inductor (difference between pin `p` and pin `n`), `i` is the current flowing through the inductor (from pin `p` to pin `n`), and `L` is its inductance.
component Inductor
extends OnePort
# Inductance value of the component in Henries (H)
parameter L::Inductance
relations
L*der(i) = v
metadata {
"Dyad": {
"labels": [
{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
{"label": "L=$(L)H", "x": 500, "y": 150, "rot": 0}
],
"icons": {"default": "dyad://ElectricalComponents/Inductor.svg"}
}
}
end
Flattened Source
dyad
# Ideal inductor characterized by its inductance L.
#
# This component models a linear inductor, a fundamental passive two-terminal electrical component.
# It defines the relationship between voltage `v` and current `i` based on its inductance `L`.
# The behavior is described by the equation:
# ```math
# v = L \frac{di}{dt}
# ```math
# where `v` is the voltage across the inductor (difference between pin `p` and pin `n`), `i` is the current flowing through the inductor (from pin `p` to pin `n`), and `L` is its inductance.
component Inductor
# Positive electrical pin.
p = Pin() [{
"Dyad": {
"placement": {"icon": {"iconName": "pos", "x1": -50, "y1": 450, "x2": 50, "y2": 550}}
}
}]
# Negative electrical pin.
n = Pin() [{
"Dyad": {
"placement": {"icon": {"iconName": "neg", "x1": 950, "y1": 450, "x2": 1050, "y2": 550}}
}
}]
# Voltage across the component (between pin p and pin n).
variable v::Voltage
# Current flowing through the component (from pin p to pin n).
variable i::Current
# Inductance value of the component in Henries (H)
parameter L::Inductance
relations
v = p.v-n.v
i = p.i
p.i+n.i = 0
L*der(i) = v
metadata {
"Dyad": {
"labels": [
{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
{"label": "L=$(L)H", "x": 500, "y": 150, "rot": 0}
],
"icons": {"default": "dyad://ElectricalComponents/Inductor.svg"}
}
}
end
Test Cases
This is setup code, that must be run before each test case.
julia
using ElectricalComponents
using ModelingToolkit, OrdinaryDiffEqDefault
using Plots
using CSV, DataFrames
snapshotsdir = joinpath(dirname(dirname(pathof(ElectricalComponents))), "test", "snapshots")
"/home/actions-runner-10/.julia/packages/ElectricalComponents/bmmPM/test/snapshots"
Related
Examples
Experiments
Analyses
Tests