Pontificia Universidad Católica de Chile Pontificia Universidad Católica de Chile
M. Torres-TorritiM. Rojas-Sepúlveda, “DiaBloS: Diagrams of Blocks for Systems ModelingSimulation in Python, ” 2024 13th International Workshop on Robot Motion and Control (RoMoCo), Pozna?, Poland, 2024, pp. 63-68, doi: 10.1109/RoMoCo60539.2024.10604417. (2024)

DiaBloS: Diagrams of Blocks for Systems Modeling and Simulation in Python

Revista : 13th International Workshop on Robot Motion and Control (RoMoCo), Pozna?, Poland
Páginas : 63-68
Tipo de publicación : Conferencia No A* Ir a publicación

Abstract

The development of tools for diagrammatic visual programming based on block diagrams for systems modeling and simulation can be traced back to work carried out in research centers and universities more than seven decades ago. Some tools have become de facto industry standards and use proprietary algorithms. The academic research literature and patents offer a plethora of ideas, combining graph theory, numerical integration methods, and visual process representations that have led to different paradigms, such as data flow diagrams, signal flow graphs, bond graphs for systems modeling and simulation. However, formal description of algorithms for processing block diagrams and simulating system models cannot be found in the existing literature. On the other hand, no open-source tool for graphically building block diagrams and model systems in Python has been available thus far. Therefore, we present DiaBloS, a tool for graphical modeling and simulation of dynamical systems in Python. The proposed algorithm to automatically identify the execution order of blocks in the diagram is discussed. Simulation examples show that the numerical accuracy is on par to that of commercial tools. DiaBloS may satisfy educational purposes and contribute to the understanding of algorithms for processing block diagrams, which fall into the domain of multigraphs. Block diagram representations provide a computing paradigm that is regaining attention because of its applications to asynchronous distributed computing, especially in artificial intelligence for training large deep learning models, and the simulation of large complex systems as the combination of several blocks of subsystems.