pySimBlocks.real_time.real_time_runner¶
- class pySimBlocks.real_time.real_time_runner.RealTimeRunner(sim: Simulator, input_blocks: List[str], output_blocks: List[str], *, target_dt: float | None = None, time_source: str = 'perf_counter')[source]¶
Bases:
objectRun a simulator step loop against a real-time clock.
The runner measures or accepts an external timestep, forwards input values to model blocks, advances the simulator, and collects output values.
- sim¶
Simulator instance driven by the runner.
- input_blocks¶
Model blocks updated from external inputs at each tick.
- output_blocks¶
Model blocks read to produce external outputs.
- target_dt¶
Optional target period used for pacing.
- initialize(t0: float = 0.0) None[source]¶
Initialize the simulator and synchronize the runner clock.
- Parameters:
t0 – Initial simulation time in seconds.
- tick(inputs: Dict[str, Any], *, dt: float | None = None, pace: bool = False) Dict[str, ndarray][source]¶
Execute one real-time simulation tick.
- Parameters:
inputs – External input values keyed by block name.
dt – Explicit timestep override in seconds. If omitted, the runner measures elapsed wall-clock time.
pace – If True, sleep after the step to approximate
target_dt.
- Returns:
Output values keyed by block name as column vectors.
- Raises:
KeyError – If a required input block value is missing.
RuntimeError – If an output block does not provide an
"out"value.