Skip to content
Resistor.md

Resistor

Linear electrical resistor following Ohm's Law.

This component represents an ideal linear resistor. The relationship between the voltage (v) across its terminals and the current (i) flowing through it is defined by Ohm's Law:

v=i\R

The resistance R is a configurable parameter. This component is intended to be used in electrical circuits where a constant resistance behavior is required.

This component extends from OnePort

Usage

Resistor(R)

Parameters:

NameDescriptionUnitsDefault value
RThe electrical resistance value of the component.Ω

Connectors

Variables

NameDescriptionUnits
vVoltage across the component (between pin p and pin n).V
iCurrent flowing through the component (from pin p to pin n).A

Behavior

v(t)=p.v(t)n.v(t)i(t)=p.i(t)n.i(t)+p.i(t)=0v(t)=Ri(t)

Source

dyad
# Linear electrical resistor following Ohm's Law.
#
# This component represents an ideal linear resistor. The relationship between the
# voltage (`v`) across its terminals and the current (`i`) flowing through it is
# defined by Ohm's Law:
# ```math
# v = i \R
# ```
# The resistance `R` is a configurable parameter. This component is intended to be
# used in electrical circuits where a constant resistance behavior is required.
component Resistor
  extends OnePort
  # The electrical resistance value of the component.
  parameter R::Resistance
relations
  # Ohm's Law
  v = i*R
metadata {
  "Dyad": {
    "labels": [
      {"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
      {"label": "R=$(R)Ω", "x": 500, "y": 150, "rot": 0}
    ],
    "icons": {"default": "dyad://ElectricalComponents/Resistor.svg"}
  }
}
end
Flattened Source
dyad
# Linear electrical resistor following Ohm's Law.
#
# This component represents an ideal linear resistor. The relationship between the
# voltage (`v`) across its terminals and the current (`i`) flowing through it is
# defined by Ohm's Law:
# ```math
# v = i \R
# ```
# The resistance `R` is a configurable parameter. This component is intended to be
# used in electrical circuits where a constant resistance behavior is required.
component Resistor
  # 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
  # The electrical resistance value of the component.
  parameter R::Resistance
relations
  v = p.v-n.v
  i = p.i
  p.i+n.i = 0
  # Ohm's Law
  v = i*R
metadata {
  "Dyad": {
    "labels": [
      {"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
      {"label": "R=$(R)Ω", "x": 500, "y": 150, "rot": 0}
    ],
    "icons": {"default": "dyad://ElectricalComponents/Resistor.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"