ThreePositionSwitch ThreePositionSwitch Icon

Switches.ThreePositionSwitch

ThreePositionSwitch(; name)

A three-position switch that selects between three real-valued inputs based on two control signals.

Variables

  • input_primary: Primary real input signal
  • input_secondary: Secondary real input signal
  • input_default: Default/tertiary real input signal
  • switch_primary: First switch position control signal
  • switch_secondary: Second switch position control signal
  • switch_3_position: Output signal after switch

Description

Selects one of three inputs based on the combination of two switch position signals:

  • When switchprimary = 1.0 and switchsecondary = 0.0: outputs input_primary
  • When switchsecondary = 1.0 (regardless of switchprimary): outputs input_secondary
  • For all other combinations: outputs input_default

DOORS ID: F73

Usage

PrimitiveComponents.Switches.ThreePositionSwitch()

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)
  • input_default - 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_secondary - This connector represents a real signal as an input to a component (RealInput)
  • switch_3_position - This connector represents a real signal as an output from a component (RealOutput)

Variables

NameDescriptionUnits
c1
c2
outp

Behavior

\[ \begin{align} \mathtt{outp}\left( t \right) &= ifelse\left( ifelse\left( \mathtt{input\_primary}\left( t \right), \mathtt{input\_default}\left( t \right); \mathtt{switch\_secondary}\left( t \right) = 0 \right), ifelse\left( \mathtt{input\_secondary}\left( t \right), \mathtt{input\_default}\left( t \right); \mathtt{switch\_secondary}\left( t \right) = 1 \right); \mathtt{switch\_primary}\left( t \right) = 1 \right) \\ \mathtt{switch\_3\_position}\left( t \right) &= \mathtt{outp}\left( t \right) \end{align} \]

Source

"""
    ThreePositionSwitch(; name)

A three-position switch that selects between three real-valued inputs based on two control signals.

# Variables
- `input_primary`: Primary real input signal
- `input_secondary`: Secondary real input signal
- `input_default`: Default/tertiary real input signal
- `switch_primary`: First switch position control signal
- `switch_secondary`: Second switch position control signal
- `switch_3_position`: Output signal after switch

# Description
Selects one of three inputs based on the combination of two switch position signals:
- When switch_primary = 1.0 and switch_secondary = 0.0: outputs input_primary
- When switch_secondary = 1.0 (regardless of switch_primary): outputs input_secondary
- For all other combinations: outputs input_default

DOORS ID: F73
"""
component ThreePositionSwitch
  # Primary input
  input_primary = Dyad.RealInput()
  # Secondary input
  input_secondary = Dyad.RealInput()
  # Tertiary input
  input_default = Dyad.RealInput()
  # Switch position input primary
  switch_primary = Dyad.RealInput()
  # Switch position input secondary
  switch_secondary = Dyad.RealInput()
  # Output after switch
  switch_3_position = Dyad.RealOutput()
  variable c1::Boolean
  variable c2::Boolean
  variable outp::Real
relations
  outp = ifelse(switch_primary == Float32(1.0), ifelse(switch_secondary == Float32(0.0), input_primary, input_default), ifelse(switch_secondary == Float32(1.0), input_secondary, input_default))
  switch_3_position = outp
end
Flattened Source
"""
    ThreePositionSwitch(; name)

A three-position switch that selects between three real-valued inputs based on two control signals.

# Variables
- `input_primary`: Primary real input signal
- `input_secondary`: Secondary real input signal
- `input_default`: Default/tertiary real input signal
- `switch_primary`: First switch position control signal
- `switch_secondary`: Second switch position control signal
- `switch_3_position`: Output signal after switch

# Description
Selects one of three inputs based on the combination of two switch position signals:
- When switch_primary = 1.0 and switch_secondary = 0.0: outputs input_primary
- When switch_secondary = 1.0 (regardless of switch_primary): outputs input_secondary
- For all other combinations: outputs input_default

DOORS ID: F73
"""
component ThreePositionSwitch
  # Primary input
  input_primary = Dyad.RealInput()
  # Secondary input
  input_secondary = Dyad.RealInput()
  # Tertiary input
  input_default = Dyad.RealInput()
  # Switch position input primary
  switch_primary = Dyad.RealInput()
  # Switch position input secondary
  switch_secondary = Dyad.RealInput()
  # Output after switch
  switch_3_position = Dyad.RealOutput()
  variable c1::Boolean
  variable c2::Boolean
  variable outp::Real
relations
  outp = ifelse(switch_primary == Float32(1.0), ifelse(switch_secondary == Float32(0.0), input_primary, input_default), ifelse(switch_secondary == Float32(1.0), input_secondary, input_default))
  switch_3_position = outp
metadata {}
end


Test Cases

No test cases defined.