pySimBlocks.blocks.operators.mux

class pySimBlocks.blocks.operators.mux.Mux(name: str, num_inputs: int = 2, sample_time: float | None = None)[source]

Bases: Block

Vertical signal concatenation block.

Concatenates multiple scalar or column-vector inputs vertically into a single output column vector. Each input must be a scalar, a 1D array, or a column vector (n,1). Any 2D non-column input (k,m) with m != 1 is rejected.

num_inputs

Number of input ports to concatenate.

direct_feedthrough = True

True if outputs depend directly on inputs.

initialize(t0: float) None[source]

Compute the initial output if all inputs are available.

Parameters:

t0 – Initial simulation time in seconds.

output_update(t: float, dt: float) None[source]

Concatenate all inputs vertically and write the result to the output port.

Parameters:
  • t – Current simulation time in seconds.

  • dt – Current time step in seconds.

Raises:
  • RuntimeError – If any input port is not connected.

  • ValueError – If any input is not a scalar, 1D, or column vector.

state_update(t: float, dt: float) None[source]

No-op: Mux is a stateless block.

Parameters:
  • t – Current simulation time in seconds.

  • dt – Current time step in seconds.