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 signalinput_secondary: Secondary real input signalinput_default: Default/tertiary real input signalswitch_primary: First switch position control signalswitch_secondary: Second switch position control signalswitch_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
| Name | Description | Units |
|---|---|---|
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 {}
endTest Cases
No test cases defined.
Related
- Examples
- Experiments
- Analyses
- Tests