PositionSwitch PositionSwitch Icon

Switches.PositionSwitch

PositionSwitch(; name)

A switch that selects between two real-valued inputs based on a control signal.

Variables

  • input_primary: Primary real input signal
  • input_secondary: Secondary real input signal
  • switch_primary: Switch control signal input
  • switch_position: Output signal after switch

Description

Switches between two inputs based on the switchprimary control signal. When switchprimary is non-zero, outputs inputprimary, otherwise outputs inputsecondary.

Usage

PrimitiveComponents.Switches.PositionSwitch()

Connectors

  • input_primary - This connector represents a real signal as an input to a component (RealInput)
  • input_secondary - This connector represents a real signal as an input to a component (RealInput)
  • switch_primary - This connector represents a real signal as an input to a component (RealInput)
  • switch_position - This connector represents a real signal as an output from a component (RealOutput)

Variables

NameDescriptionUnits
c1
outp

Behavior

\[ \begin{align} \mathtt{c1}\left( t \right) &= checkwithzero\left( \mathtt{switch\_primary}\left( t \right), 0 \right) \\ \mathtt{outp}\left( t \right) &= ifelse\left( \neg \mathtt{c1}\left( t \right), \mathtt{input\_secondary}\left( t \right), \mathtt{input\_primary}\left( t \right) \right) \\ \mathtt{switch\_position}\left( t \right) &= \mathtt{outp}\left( t \right) \end{align} \]

Source

"""
    PositionSwitch(; name)

A switch that selects between two real-valued inputs based on a control signal.

# Variables
- `input_primary`: Primary real input signal
- `input_secondary`: Secondary real input signal
- `switch_primary`: Switch control signal input
- `switch_position`: Output signal after switch

# Description
Switches between two inputs based on the switch_primary control signal.
When switch_primary is non-zero, outputs input_primary, otherwise outputs input_secondary.
"""
component PositionSwitch
  # Primary input
  input_primary = Dyad.RealInput()
  # Secondary input
  input_secondary = Dyad.RealInput()
  # Switch position input
  switch_primary = Dyad.RealInput()
  # Output after switch
  switch_position = Dyad.RealOutput()
  variable c1::Boolean
  variable outp::Real
relations
  c1 = checkwithzero(switch_primary, Float32(0.0))
  outp = ifelse(!c1, input_secondary, input_primary)
  switch_position = outp
end
Flattened Source
"""
    PositionSwitch(; name)

A switch that selects between two real-valued inputs based on a control signal.

# Variables
- `input_primary`: Primary real input signal
- `input_secondary`: Secondary real input signal
- `switch_primary`: Switch control signal input
- `switch_position`: Output signal after switch

# Description
Switches between two inputs based on the switch_primary control signal.
When switch_primary is non-zero, outputs input_primary, otherwise outputs input_secondary.
"""
component PositionSwitch
  # Primary input
  input_primary = Dyad.RealInput()
  # Secondary input
  input_secondary = Dyad.RealInput()
  # Switch position input
  switch_primary = Dyad.RealInput()
  # Output after switch
  switch_position = Dyad.RealOutput()
  variable c1::Boolean
  variable outp::Real
relations
  c1 = checkwithzero(switch_primary, Float32(0.0))
  outp = ifelse(!c1, input_secondary, input_primary)
  switch_position = outp
metadata {}
end


Test Cases

No test cases defined.

  • Examples
  • Experiments
  • Analyses