Test_ThreePositionSwitch Test_ThreePositionSwitch Icon

Test_ThreePositionSwitch

Usage

PrimitiveComponents.Test_ThreePositionSwitch()

Behavior

\[ \begin{equation} \left[ \begin{array}{c} \mathrm{connect}\left( sInputprimary_{+}y(t), switch1_{+}input_{primary(t)} \right) \\ \mathrm{connect}\left( sInputsecondary_{+}y(t), switch1_{+}input_{secondary(t)} \right) \\ \mathrm{connect}\left( sInputdefault_{+}y(t), switch1_{+}input_{default(t)} \right) \\ \mathrm{connect}\left( sPrimary_{+}y(t), switch1_{+}switch_{primary(t)} \right) \\ \mathrm{connect}\left( sSecondary_{+}y(t), switch1_{+}switch_{secondary(t)} \right) \\ \mathtt{switch1.outp}\left( t \right) = ifelse\left( ifelse\left( \mathtt{switch1.input\_primary}\left( t \right), \mathtt{switch1.input\_default}\left( t \right); \mathtt{switch1.switch\_secondary}\left( t \right) = 0 \right), ifelse\left( \mathtt{switch1.input\_secondary}\left( t \right), \mathtt{switch1.input\_default}\left( t \right); \mathtt{switch1.switch\_secondary}\left( t \right) = 1 \right); \mathtt{switch1.switch\_primary}\left( t \right) = 1 \right) \\ \mathtt{switch1.switch\_3\_position}\left( t \right) = \mathtt{switch1.outp}\left( t \right) \\ \mathtt{sInputdefault.y}\left( t \right) = \mathtt{sInputdefault.offset} + \mathtt{sInputdefault.amplitude} ifelse\left( t \geq \mathtt{sInputdefault.start\_time}, \sin\left( \mathtt{sInputdefault.phase} + 6.2832 \mathtt{sInputdefault.frequency} \left( - \mathtt{sInputdefault.start\_time} + t \right) \right), \sin\left( \mathtt{sInputdefault.phase} \right) \right) \\ \mathtt{sInputprimary.y}\left( t \right) = \mathtt{sInputprimary.offset} + \mathtt{sInputprimary.amplitude} ifelse\left( t \geq \mathtt{sInputprimary.start\_time}, \sin\left( \mathtt{sInputprimary.phase} + 6.2832 \mathtt{sInputprimary.frequency} \left( - \mathtt{sInputprimary.start\_time} + t \right) \right), \sin\left( \mathtt{sInputprimary.phase} \right) \right) \\ \mathtt{sInputsecondary.y}\left( t \right) = \mathtt{sInputsecondary.offset} + \mathtt{sInputsecondary.amplitude} ifelse\left( t \geq \mathtt{sInputsecondary.start\_time}, \sin\left( \mathtt{sInputsecondary.phase} + 6.2832 \mathtt{sInputsecondary.frequency} \left( - \mathtt{sInputsecondary.start\_time} + t \right) \right), \sin\left( \mathtt{sInputsecondary.phase} \right) \right) \\ \mathtt{sPrimary.y}\left( t \right) = ifelse\left( t > \mathtt{sPrimary.start\_time}, ifelse\left( t \leq \mathtt{sPrimary.start\_time} + \mathtt{sPrimary.duty\_cycle} \mathtt{sPrimary.period}, \mathtt{sPrimary.amplitude}, \mathtt{sPrimary.offset} \right), \mathtt{sPrimary.offset} \right) \\ \mathtt{sSecondary.y}\left( t \right) = ifelse\left( t > \mathtt{sSecondary.start\_time}, ifelse\left( t \leq \mathtt{sSecondary.start\_time} + \mathtt{sSecondary.duty\_cycle} \mathtt{sSecondary.period}, \mathtt{sSecondary.amplitude}, \mathtt{sSecondary.offset} \right), \mathtt{sSecondary.offset} \right) \\ \end{array} \right] \end{equation} \]

Source

test component Test_ThreePositionSwitch
  switch1 = PrimitiveComponents.Switches.ThreePositionSwitch()
  sInputdefault = BlockComponents.Sine(frequency = 0.4, amplitude = 12.0)
  sInputprimary = BlockComponents.Sine(frequency = 0.2, amplitude = 12.0)
  sInputsecondary = BlockComponents.Sine(frequency = 0.8, amplitude = 12.0)
  sPrimary = BlockComponents.Pulse(start_time = 1.0, offset = 0.0, duty_cycle = 1.0, period = 1.0, amplitude = 1.0)
  sSecondary = BlockComponents.Pulse(start_time = 3.0, offset = 0.0, duty_cycle = 1.0, period = 1.0, amplitude = 1.0)
relations
  connect(switch1.input_primary, sInputprimary.y)
  connect(switch1.input_secondary, sInputsecondary.y)
  connect(switch1.input_default, sInputdefault.y)
  connect(switch1.switch_primary, sPrimary.y)
  connect(switch1.switch_secondary, sSecondary.y)
end
Flattened Source
test component Test_ThreePositionSwitch
  switch1 = PrimitiveComponents.Switches.ThreePositionSwitch()
  sInputdefault = BlockComponents.Sine(frequency = 0.4, amplitude = 12.0)
  sInputprimary = BlockComponents.Sine(frequency = 0.2, amplitude = 12.0)
  sInputsecondary = BlockComponents.Sine(frequency = 0.8, amplitude = 12.0)
  sPrimary = BlockComponents.Pulse(start_time = 1.0, offset = 0.0, duty_cycle = 1.0, period = 1.0, amplitude = 1.0)
  sSecondary = BlockComponents.Pulse(start_time = 3.0, offset = 0.0, duty_cycle = 1.0, period = 1.0, amplitude = 1.0)
relations
  connect(switch1.input_primary, sInputprimary.y)
  connect(switch1.input_secondary, sInputsecondary.y)
  connect(switch1.input_default, sInputdefault.y)
  connect(switch1.switch_primary, sPrimary.y)
  connect(switch1.switch_secondary, sSecondary.y)
metadata {}
end


Test Cases

No test cases defined.