Simulator PlugIn

Detailed Description

This plug-in provides classes to support the simulation of faudes generators. It is organized in a hierarchical fashion to introduce the following features:

  • the faudes::Executor is a timed generator that tracks its current state and indicates which events are currently enabled and/or how much time may pass
  • the faudes::ParallelExecutor is a vector of Executors with synchronized shared events and provides the same interface as the Executor regarding enabled events
  • the faudes::LoggingExecutor is a ParallelExecutor that logs state and event data for statistical analysis
  • the faudes::ProposingExecutor is a LoggingExecutor that proposes which event to execute based on stochastic event properties or priorities
  • the faudes::DeviceExecutor is a ProposingExecutor that synchronizes with physical time and invokes callbacks for hardware-in-the-loop simulation (IO Device plugin required)

The tutorial simfaudes.cpp demonstrates the use of the ProposingExecutor in a simple interactive simulator for the synchronous product of faudes generators.

License

The current implementation of the simulator plugin is a re-design based on Ruediger Berndt's and Christoph Doerr's student projects. It is distributed with libFAUDES and under the terms of the LGPL.




Copyright (c) 2008, Thomas Moor.

Modules

 Random Variables
 Sampling or evaluating random variables for simulation.
 
 Simulation Condition Attributes
 Attributes to define simulation conditions used for statistic analysis of simulation runs.
 
 Simulation Event Attributes
 Attributes to define stochastic and priority properties.
 

Classes

class  faudes::DeviceExecutor
 Executer with IO device to handle external/physical events. More...
 
class  faudes::Executor
 An Executor is a timed generator that maintains a current state. More...
 
class  faudes::LoggingExecutor
 Executor with logging facilities. More...
 
class  faudes::ParallelExecutor
 Synchronized parallel execution of TimedGenerators. More...
 
class  faudes::ProposingExecutor
 Executer that proposes which transition to execute. More...
 

libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen