Co-simulation
In co-simulation, the different subsystems which form a coupled problem are modeled and simulated in a distributed manner. Hence, the modeling is done on the subsystem level without having the coupled problem in mind. Furthermore, the coupled simulation is carried out by running the subsystems in a black-box manner. During the simulation the subsystems will exchange data. Co-simulation can be considered as the joint simulation of the already well-established tools and semantics; when they are simulated with their suitable solvers.[1] Co-simulation proves its advantage in validation of multi-domain and cyber physical system by offering a flexible solution which allows consideration of multiple domains with different time steps, at the same time. As the calculation load is shared among simulators, co-simulation also enables the possibility of large scale system assessment.[2]
Abstraction layers of co-simulation framework
The following introduction and structuration is proposed in.[3]
Establishing a co-simulation framework can be a challenging and complex task, because it requires a strong interoperability among the participating elements, especially in case of multiple-formalism co-simulation. Harmonization, adaptation, and eventually changes of actual employed standards and protocols in individual models needs to be done to be able to integrate into the holistic framework. The generic layered structuration of co-simulation framework [3] highlights the intersection of domains and the issues that need to be solved in the process of designing a co-simulation framework. In general, a co-simulation framework consists of five abstraction layers:
Abstraction layer | Description | Associated issues |
---|---|---|
Conceptual | Highest level where the models are considered as black boxes and the level concerns the co-simulation framework representation. | Generic structure of the framework; Meta-Modeling of the components. |
Semantic | The level concerns the signification and the role of the co-simulation framework with respect to the open questions of the investigated system and studied phenomenon. | Signification of individual models; Interaction graph among the models; Signification of each interaction. |
Syntactic | The level concerns the formalization of the co-simulation framework. | Formalization of individual models in the respective domains; Specification and handling the difference between a formalism to another one. |
Dynamic | The level concerns the execution of the co-simulation framework, the synchronization techniques and harmonization of different models of computation. | Order of execution and causality of models; Harmonization of different models of computation; Resolution for potential conflict in simultaneity of actions. |
Technical | The level concerns the implementation details and evaluation of simulation. | Distributed or centralized implementation; Robustness of the simulation; Reliability and efficiency of the simulation. |
From conceptual structuration, the architecture on which the co-simulation framework is developed and the formal semantic relations/syntactic formulation are defined. The detailed technical implementation and synchronization techniques are covered in dynamic and technical layers.
Problem Partitioning - Architecture of co-simulation
The partitioning procedure identifies the process of spatial separation of the coupled problem into multiple partitioned subsystems. Information is exchanged through either ad-hoc interfaces or via intermediate buffer governed by a master algorithm. Master algorithm (where exists) is responsible for instantiating the simulators and for orchestrating the information exchange (simulator-simulator or simulator-orchestrator).[3]
Coupling methods
Co-simulation coupling methods can be classified into operational integration and formal integration, depending on abstraction layers. In general, operational integration is used in co-simulation for a specific problem and aims for interoperability at dynamic and technical layers (i.e. signal exchange). On the other hand, formal integration allows interoperability in semantic and syntactic level via either model coupling or simulator coupling. Formal integration often involves a master federate to orchestrate the semantic and syntactic of the interaction among simulators.
From a dynamic and technical point of view, it is necessary to consider the synchronization techniques and communication patterns in the process of implementation.
Communication Patterns
There exist two principal communication patterns for master algorithms. The Gauss-Seidel and the Jacobi variants. The names of these two methods are derived from the structural similarities to the numerical methods by the same name.
The reason is that the Jacobi method is easy to convert into an equivalent parallel algorithm while there are difficulties to do so for the Gauss-Seidel method.[4]
Gauss-Seidel (serial)
Jacobi (parallel)
References
- Steinbrink, Cornelius (2017). "Simulation-based Validation of Smart Grids – Status Quo and Future Research Trends". Industrial Applications of Holonic and Multi-Agent Systems. Lecture Notes in Computer Science. 10444. pp. 171–185. arXiv:1710.02315. doi:10.1007/978-3-319-64635-0_13. ISBN 978-3-319-64634-3. S2CID 10022783.
- Andersson, Håkan (2018-09-11). A Co-Simulation Approach for Hydraulic Percussion Units. Linköping University Electronic Press. ISBN 978-91-7685-222-4.
- Nguyen, V.H.; Besanger, Y.; Tran, Q.T; Nguyen, T.L. (29 Nov 2017). "On Conceptual Structuration and Coupling Methods of Co-Simulation Frameworks in Cyber-Physical Energy System Validation". Energies. 10 (12): 1977. doi:10.3390/en10121977. Material was copied from this source, which is available under a Creative Commons Attribution 4.0 International License.
- Heath, Michael T. Scientific computing: an introductory survey. SIAM.