Capacitor
Ideal electrical capacitor.
This component models a linear capacitor, a fundamental passive two-terminal electrical component used to store energy electrostatically in an electric field. The relationship between the current i
flowing through the capacitor and the voltage v
across its terminals is defined by the equation:
where C
is the capacitance value and der(v)
is the time derivative of the voltage v
.
This component extends from OnePort
Usage
Capacitor(C)
Parameters:
Name | Description | Units | Default value |
---|---|---|---|
C | Capacitance of the ideal capacitor | F |
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 electrical capacitor.
#
# This component models a linear capacitor, a fundamental passive two-terminal electrical component
# used to store energy electrostatically in an electric field. The relationship between the
# current `i` flowing through the capacitor and the voltage `v` across its terminals is
# defined by the equation:
# ```math
# C der(v) = i
# ```
# where `C` is the capacitance value and `der(v)` is the time derivative of the voltage `v`.
component Capacitor
extends OnePort
# Capacitance of the ideal capacitor
parameter C::Capacitance
relations
C*der(v) = i
metadata {
"Dyad": {
"labels": [
{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
{"label": "C=$(C)F", "x": 500, "y": 150, "rot": 0}
],
"icons": {"default": "dyad://ElectricalComponents/Capacitor.svg"}
}
}
end
Flattened Source
dyad
# Ideal electrical capacitor.
#
# This component models a linear capacitor, a fundamental passive two-terminal electrical component
# used to store energy electrostatically in an electric field. The relationship between the
# current `i` flowing through the capacitor and the voltage `v` across its terminals is
# defined by the equation:
# ```math
# C der(v) = i
# ```
# where `C` is the capacitance value and `der(v)` is the time derivative of the voltage `v`.
component Capacitor
# 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
# Capacitance of the ideal capacitor
parameter C::Capacitance
relations
v = p.v-n.v
i = p.i
p.i+n.i = 0
C*der(v) = i
metadata {
"Dyad": {
"labels": [
{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
{"label": "C=$(C)F", "x": 500, "y": 150, "rot": 0}
],
"icons": {"default": "dyad://ElectricalComponents/Capacitor.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