Skip to content
MultiSensor.md

MultiSensor ​

Provides combined voltage and current measurements from an electrical circuit.

This component extends a PowerSensor to offer voltage, current and power readings as real-valued outputs. The output v represents the measured voltage, the output i represents the measured current and the output power represents power. v and i outputs are directly sourced from internal voltage_sensor and current_sensor subcomponents, which are part of the inherited PowerSensor. The defining equations from the relations block are:

v = \text{voltage_sensor.v} i = \text{current_sensor.i} power = \text{voltage_sensor.v*current_sensor.i}

This component extends from PowerSensor

Usage ​

ElectricalComponents.MultiSensor()

Connectors ​

  • pc - This connector represents an electrical pin with voltage and current as the potential and flow variables, respectively. (Pin)

  • nc - This connector represents an electrical pin with voltage and current as the potential and flow variables, respectively. (Pin)

  • pv - This connector represents an electrical pin with voltage and current as the potential and flow variables, respectively. (Pin)

  • nv - This connector represents an electrical pin with voltage and current as the potential and flow variables, respectively. (Pin)

  • power - This connector represents a real signal as an output from a component (RealOutput)

  • i - This connector represents a real signal as an output from a component (RealOutput)

  • v - This connector represents a real signal as an output from a component (RealOutput)

Behavior ​

[power(t)=current_sensor.i(t)voltage_sensor.v(t)i(t)=current_sensor.i(t)v(t)=voltage_sensor.v(t)connect(pv,voltagesensor+p)connect(voltagesensor+n,nv)connect(pc,currentsensor+p)connect(currentsensor+n,nc)voltage_sensor.p.i(t)=0voltage_sensor.n.i(t)=0voltage_sensor.v(t)=voltage_sensor.p.v(t)−voltage_sensor.n.v(t)current_sensor.p.v(t)=current_sensor.n.v(t)current_sensor.p.i(t)=current_sensor.i(t)current_sensor.n.i(t)=−current_sensor.i(t)]

Source ​

dyad
"""
Provides combined voltage and current measurements from an electrical circuit.

This component extends a `PowerSensor` to offer voltage, current and power
readings as real-valued outputs. The output `v` represents the measured
voltage, the output `i` represents the measured current and the output `power`
represents power. `v` and `i` outputs are directly sourced from internal
`voltage_sensor` and `current_sensor` subcomponents, which are part of the
inherited `PowerSensor`. The defining equations from the `relations` block are:

math v = \text

math i = \text

math power = \text

"""
component MultiSensor
  extends PowerSensor
  "Output signal representing the measured current"
  i = RealOutput() {
    "Dyad": {
      "placement": {"icon": {"x1": 650, "y1": 950, "x2": 750, "y2": 1050, "rot": 90}}
    }
  }
  "Output signal representing the measured voltage"
  v = RealOutput() {
    "Dyad": {
      "placement": {"icon": {"x1": 850, "y1": 950, "x2": 950, "y2": 1050, "rot": 90}}
    }
  }
relations
  i = current_sensor.i
  v = voltage_sensor.v
metadata {
  "Dyad": {
    "labels": [
      {"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
      {"label": "M", "x": 500, "y": 713, "rot": 0}
    ],
    "icons": {"default": "dyad://ElectricalComponents/FourPinSensor.svg"}
  }
}
end
Flattened Source
dyad
"""
Provides combined voltage and current measurements from an electrical circuit.

This component extends a `PowerSensor` to offer voltage, current and power
readings as real-valued outputs. The output `v` represents the measured
voltage, the output `i` represents the measured current and the output `power`
represents power. `v` and `i` outputs are directly sourced from internal
`voltage_sensor` and `current_sensor` subcomponents, which are part of the
inherited `PowerSensor`. The defining equations from the `relations` block are:

math v = \text

math i = \text

math power = \text

"""
component MultiSensor
  "Positive pin for current measurement path"
  pc = Pin() {
    "Dyad": {
      "placement": {"icon": {"iconName": "pos", "x1": -50, "y1": 450, "x2": 50, "y2": 550}}
    }
  }
  "Negative pin for current measurement path"
  nc = Pin() {
    "Dyad": {
      "placement": {"icon": {"iconName": "neg", "x1": 950, "y1": 450, "x2": 1050, "y2": 550}}
    }
  }
  "Positive pin for voltage measurement"
  pv = Pin() {
    "Dyad": {
      "placement": {"icon": {"iconName": "pos", "x1": 450, "y1": -50, "x2": 550, "y2": 50}}
    }
  }
  "Negative pin for voltage measurement"
  nv = Pin() {
    "Dyad": {
      "placement": {"icon": {"iconName": "neg", "x1": 450, "y1": 950, "x2": 550, "y2": 1050}}
    }
  }
  "Internal subcomponent to measure voltage"
  voltage_sensor = VoltageSensor()
  "Internal subcomponent to measure current"
  current_sensor = CurrentSensor()
  "Output signal representing the calculated instantaneous power"
  power = RealOutput() {
    "Dyad": {
      "placement": {"icon": {"x1": 150, "y1": 950, "x2": 250, "y2": 1050, "rot": 90}}
    }
  }
  "Output signal representing the measured current"
  i = RealOutput() {
    "Dyad": {
      "placement": {"icon": {"x1": 650, "y1": 950, "x2": 750, "y2": 1050, "rot": 90}}
    }
  }
  "Output signal representing the measured voltage"
  v = RealOutput() {
    "Dyad": {
      "placement": {"icon": {"x1": 850, "y1": 950, "x2": 950, "y2": 1050, "rot": 90}}
    }
  }
relations
  connect(pv, voltage_sensor.p)
  connect(voltage_sensor.n, nv)
  connect(pc, current_sensor.p)
  connect(current_sensor.n, nc)
  power = voltage_sensor.v * current_sensor.i
  i = current_sensor.i
  v = voltage_sensor.v
metadata {
  "Dyad": {
    "labels": [
      {"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
      {"label": "M", "x": 500, "y": 713, "rot": 0}
    ],
    "icons": {"default": "dyad://ElectricalComponents/FourPinSensor.svg"}
  }
}
end


Test Cases ​

No test cases defined.