Skip to content
Analog.ControlledIdealTwoWaySwitch.md

Analog.ControlledIdealTwoWaySwitch

This component extends from ConditionalHeatPort

Usage

TranslatedComponents.Analog.ControlledIdealTwoWaySwitch(T=293.15, unitVoltage=1, unitCurrent=1, level=0.5, Ron=1.0e-5, Goff=1.0e-5)

Parameters:

NameDescriptionUnitsDefault value
useHeatPort= true, if heatPort is enabledfalse
TFixed device temperature if useHeatPort = falseK293.15
unitVoltageV1
unitCurrentA1
levelSwitch levelV0.5
RonClosed switch resistanceΩ0.00001
GoffOpened switch conductanceS0.00001

Connectors

  • heatPort - Thermal port for 1-dim. heat transfer

This component is translated by DyadAI (HeatPort)

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

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

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

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

Variables

NameDescriptionUnits
LossPowerLoss power leaving component via heatPortW
T_heatPortTemperature of heatPortK
s1
s2Auxiliary variables

Behavior

control.i(t)=00=n1.i(t)+n2.i(t)+p.i(t)p.v(t)n1.v(t)=s1(t)ifelse(control.v(t)>level,unitVoltage,RonunitCurrent)n1.i(t)=ifelse(control.v(t)>level,GoffunitVoltage,unitCurrent)s1(t)p.v(t)n2.v(t)=s2(t)ifelse(control.v(t)>level,RonunitCurrent,unitVoltage)n2.i(t)=s2(t)ifelse(control.v(t)>level,unitCurrent,GoffunitVoltage)LossPower(t)=p.v(t)p.i(t)+n1.i(t)n1.v(t)+n2.v(t)n2.i(t)T_heatPort(t)=T

Source

dyad
component ControlledIdealTwoWaySwitch
  extends ConditionalHeatPort(T = 293.15)
  p = Pin()
  n2 = Pin()
  n1 = Pin()
  control = Pin()
  parameter unitVoltage::Dyad.Voltage = 1
  parameter unitCurrent::Dyad.Current = 1
  # Switch level
  parameter level::Dyad.Voltage = 0.5
  # Closed switch resistance
  parameter Ron::Dyad.Resistance(final min = 0) = 1.0e-5
  # Opened switch conductance
  parameter Goff::Dyad.Conductance(final min = 0) = 1.0e-5
  variable s1::Real
  # Auxiliary variables
  variable s2::Real
relations
  control.i = 0
  0 = p.i + n2.i + n1.i
  p.v - n1.v = s1 * (control.v > level ? unitVoltage : Ron * unitCurrent)
  n1.i = -s1 * (control.v > level ? Goff * unitVoltage : unitCurrent)
  p.v - n2.v = s2 * (control.v > level ? Ron * unitCurrent : unitVoltage)
  n2.i = -s2 * (control.v > level ? unitCurrent : Goff * unitVoltage)
  LossPower = p.i * p.v + n1.i * n1.v + n2.i * n2.v
end
Flattened Source
dyad
component ControlledIdealTwoWaySwitch
  heatPort = TranslatedComponents.HeatTransfer.HeatPort() if useHeatPort
  # = true, if heatPort is enabled
  structural parameter useHeatPort::Boolean = false
  # Fixed device temperature if useHeatPort = false
  parameter T::Dyad.Temperature = 293.15
  # Loss power leaving component via heatPort
  variable LossPower::Dyad.Power
  # Temperature of heatPort
  variable T_heatPort::Dyad.Temperature
  p = Pin()
  n2 = Pin()
  n1 = Pin()
  control = Pin()
  parameter unitVoltage::Dyad.Voltage = 1
  parameter unitCurrent::Dyad.Current = 1
  # Switch level
  parameter level::Dyad.Voltage = 0.5
  # Closed switch resistance
  parameter Ron::Dyad.Resistance(final min = 0) = 1.0e-5
  # Opened switch conductance
  parameter Goff::Dyad.Conductance(final min = 0) = 1.0e-5
  variable s1::Real
  # Auxiliary variables
  variable s2::Real
relations
  if !(useHeatPort)
    T_heatPort = T
  else
    initial heatPort.T = T_heatPort
    initial heatPort.Q_flow = -LossPower
  end
  control.i = 0
  0 = p.i + n2.i + n1.i
  p.v - n1.v = s1 * (control.v > level ? unitVoltage : Ron * unitCurrent)
  n1.i = -s1 * (control.v > level ? Goff * unitVoltage : unitCurrent)
  p.v - n2.v = s2 * (control.v > level ? Ron * unitCurrent : unitVoltage)
  n2.i = -s2 * (control.v > level ? unitCurrent : Goff * unitVoltage)
  LossPower = p.i * p.v + n1.i * n1.v + n2.i * n2.v
metadata {}
end


Test Cases

No test cases defined.

  • Examples

  • Experiments

  • Analyses