PowerSensor
IconPowerSensor
Measures the instantaneous electrical power flowing through or consumed by a circuit.
This component utilizes an internal VoltageSensor
and an internal CurrentSensor
to determine electrical power. The voltage is measured between pins pv
(positive voltage) and nv
(negative voltage). The current is measured as it flows from pin pc
(positive current) to pin nc
(negative current). The instantaneous power is calculated as the product of these two measurements:
\[P = V \cdot I\]
where V
is the voltage measured by voltage_sensor.v
and I
is the current measured by current_sensor.i
.
Usage
PowerSensor()
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
)
Behavior
\[ \begin{equation} \left[ \begin{array}{c} \mathtt{power}\left( t \right) = \mathtt{current\_sensor.i}\left( t \right) \mathtt{voltage\_sensor.v}\left( t \right) \\ \mathrm{connect}\left( pv, voltage_{sensor_{+}p} \right) \\ \mathrm{connect}\left( voltage_{sensor_{+}n}, nv \right) \\ \mathrm{connect}\left( pc, current_{sensor_{+}p} \right) \\ \mathrm{connect}\left( current_{sensor_{+}n}, nc \right) \\ \mathtt{voltage\_sensor.p.i}\left( t \right) = 0 \\ \mathtt{voltage\_sensor.n.i}\left( t \right) = 0 \\ \mathtt{voltage\_sensor.v}\left( t \right) = \mathtt{voltage\_sensor.p.v}\left( t \right) - \mathtt{voltage\_sensor.n.v}\left( t \right) \\ \mathtt{current\_sensor.p.v}\left( t \right) = \mathtt{current\_sensor.n.v}\left( t \right) \\ \mathtt{current\_sensor.p.i}\left( t \right) = \mathtt{current\_sensor.i}\left( t \right) \\ \mathtt{current\_sensor.n.i}\left( t \right) = - \mathtt{current\_sensor.i}\left( t \right) \\ \end{array} \right] \end{equation} \]
Source
# Measures the instantaneous electrical power flowing through or consumed by a circuit.
#
# This component utilizes an internal `VoltageSensor` and an internal `CurrentSensor` to
# determine electrical power. The voltage is measured between pins `pv` (positive voltage)
# and `nv` (negative voltage). The current is measured as it flows from pin `pc`
# (positive current) to pin `nc` (negative current).
# The instantaneous power is calculated as the product of these two measurements:
# ```math
# P = V \cdot I
# ```
# where `V` is the voltage measured by `voltage_sensor.v` and `I` is the
# current measured by `current_sensor.i`.
component PowerSensor
# 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}}
}
}]
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
metadata {
"Dyad": {
"labels": [
{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
{"label": "P", "x": 500, "y": 713, "rot": 0}
],
"icons": {"default": "dyad://ElectricalComponents/PowerSensor.svg"}
}
}
end
Flattened Source
# Measures the instantaneous electrical power flowing through or consumed by a circuit.
#
# This component utilizes an internal `VoltageSensor` and an internal `CurrentSensor` to
# determine electrical power. The voltage is measured between pins `pv` (positive voltage)
# and `nv` (negative voltage). The current is measured as it flows from pin `pc`
# (positive current) to pin `nc` (negative current).
# The instantaneous power is calculated as the product of these two measurements:
# ```math
# P = V \cdot I
# ```
# where `V` is the voltage measured by `voltage_sensor.v` and `I` is the
# current measured by `current_sensor.i`.
component PowerSensor
# 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}}
}
}]
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
metadata {
"Dyad": {
"labels": [
{"label": "$(instance)", "x": 500, "y": 1100, "rot": 0},
{"label": "P", "x": 500, "y": 713, "rot": 0}
],
"icons": {"default": "dyad://ElectricalComponents/PowerSensor.svg"}
}
}
end
Test Cases
No test cases defined.
Related
- Examples
- Experiments
- Analyses
- Tests