{"title":"An algorithm for processing block diagram models of dynamical systems and an open-source visual-programming simulation tool","authors":"Miguel Torres-Torriti, Matias Rojas-Sepulveda","doi":"10.1016/j.simpat.2024.103030","DOIUrl":null,"url":null,"abstract":"<div><div>Visual diagrammatic programming and block diagrams have been indispensable tools for systems modeling and simulation across research, development, and educational fields for several decades. Despite the availability of mature commercial and free software tools, there is a lack of information publicly accessible on algorithms for processing block diagrams that represent dynamical systems and simulate the corresponding models. A gap in the existing literature is the absence of mathematically formal and complete proposals of algorithms for processing block diagrams that are multigraphs containing directed cyclic graphs, and not just simpler directed graphs. The lack of a detailed exposition concerning the practical implementation of such algorithms is also a gap. This gap is likely because the simulation systems based on block diagram descriptions that have become <em>de facto</em> industry standards use proprietary solutions, even if their origins can be traced back to work done in research centers and universities more than seven decades ago. In response to these challenges, this paper summarizes the historical evolution of related paradigms, such as data flow diagrams, signal flow graphs, bond graphs, and block diagrams. We propose a general algorithm for block diagram processing and present an open-source software tool for Python that implements a diagrammatic visual programming interface and the proposed block diagram processing algorithm. The key contributions to the field of systems modeling and simulation can be summarized as follows. Firstly, the exposition of the algorithm formally proving its correctness, offers transparency which facilitates further research and development in the field, enabling academics and professionals to adapt, enhance, or expand upon the existing capabilities of the tool. Secondly, the implementation of a Python library and tool released as an open-source solution for simulating signal processing and dynamical systems through block diagrams by integrating the proposed algorithm capable of efficiently handling multigraph representations, including those with directed cyclic graphs. Ensuring accessibility of the tool to researchers, developers, and educators fosters innovation, research and empowers educators by providing them with a versatile tool that can be used to teach complex systems modeling and simulation concepts in a practical, hands-on manner across various domains, such as control systems, electrical engineering, and computer science.</div></div>","PeriodicalId":49518,"journal":{"name":"Simulation Modelling Practice and Theory","volume":"138 ","pages":"Article 103030"},"PeriodicalIF":3.5000,"publicationDate":"2024-11-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Simulation Modelling Practice and Theory","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S1569190X24001448","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS","Score":null,"Total":0}
引用次数: 0
Abstract
Visual diagrammatic programming and block diagrams have been indispensable tools for systems modeling and simulation across research, development, and educational fields for several decades. Despite the availability of mature commercial and free software tools, there is a lack of information publicly accessible on algorithms for processing block diagrams that represent dynamical systems and simulate the corresponding models. A gap in the existing literature is the absence of mathematically formal and complete proposals of algorithms for processing block diagrams that are multigraphs containing directed cyclic graphs, and not just simpler directed graphs. The lack of a detailed exposition concerning the practical implementation of such algorithms is also a gap. This gap is likely because the simulation systems based on block diagram descriptions that have become de facto industry standards use proprietary solutions, even if their origins can be traced back to work done in research centers and universities more than seven decades ago. In response to these challenges, this paper summarizes the historical evolution of related paradigms, such as data flow diagrams, signal flow graphs, bond graphs, and block diagrams. We propose a general algorithm for block diagram processing and present an open-source software tool for Python that implements a diagrammatic visual programming interface and the proposed block diagram processing algorithm. The key contributions to the field of systems modeling and simulation can be summarized as follows. Firstly, the exposition of the algorithm formally proving its correctness, offers transparency which facilitates further research and development in the field, enabling academics and professionals to adapt, enhance, or expand upon the existing capabilities of the tool. Secondly, the implementation of a Python library and tool released as an open-source solution for simulating signal processing and dynamical systems through block diagrams by integrating the proposed algorithm capable of efficiently handling multigraph representations, including those with directed cyclic graphs. Ensuring accessibility of the tool to researchers, developers, and educators fosters innovation, research and empowers educators by providing them with a versatile tool that can be used to teach complex systems modeling and simulation concepts in a practical, hands-on manner across various domains, such as control systems, electrical engineering, and computer science.
期刊介绍:
The journal Simulation Modelling Practice and Theory provides a forum for original, high-quality papers dealing with any aspect of systems simulation and modelling.
The journal aims at being a reference and a powerful tool to all those professionally active and/or interested in the methods and applications of simulation. Submitted papers will be peer reviewed and must significantly contribute to modelling and simulation in general or use modelling and simulation in application areas.
Paper submission is solicited on:
• theoretical aspects of modelling and simulation including formal modelling, model-checking, random number generators, sensitivity analysis, variance reduction techniques, experimental design, meta-modelling, methods and algorithms for validation and verification, selection and comparison procedures etc.;
• methodology and application of modelling and simulation in any area, including computer systems, networks, real-time and embedded systems, mobile and intelligent agents, manufacturing and transportation systems, management, engineering, biomedical engineering, economics, ecology and environment, education, transaction handling, etc.;
• simulation languages and environments including those, specific to distributed computing, grid computing, high performance computers or computer networks, etc.;
• distributed and real-time simulation, simulation interoperability;
• tools for high performance computing simulation, including dedicated architectures and parallel computing.