Co-simulation

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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.

Abstraction layers of co-simulation framework[edit]

The following introduction and structuration is proposed in.[2]

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 need to be done to be able to integrate into the holistic framework. The generic layered structuration of co-simulation framework [2] 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 constitutes of five abstraction layers:

Structuration of co-simulation framework
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[edit]

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).[2]

Coupling methods[edit]

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[edit]

Gauss-Seidel (serial)[edit]

Gauss-Seidel sequence for two subsystems

Jacobi (parallel)[edit]

Jacobi sequence for two subsystems

Synchronization techniques[edit]

Conservative[edit]

Optimistic[edit]

Synchronization techniques for continuous vs. discrete event simulators[edit]

Standards and Software realization[edit]

High Level Architecture[edit]

Functional Mock-up Interface[edit]

For signals co-simulation can be performed with a standardized interface called Functional Mock-up Interface.

Agent-based model[edit]

Agent-based model is a modeling approach of complex systems. Each simulator is seen as an agent and "behaves" according to its associated simulator. The agents interact, exchange data, between each other in a network. The simulation environment Mecysco is an implementation of this approach [1]

Examples[edit]

1D Spring[edit]

Steady State Problem[edit]

Interface Constraints[edit]
Stability[edit]

1D/3D Fluid Dynamics[edit]

References[edit]

  1. ^ Steinbrink, Cornelius. "Simulation-based Validation of Smart Grids – Status Quo and Future Research Trends" (PDF).
  2. ^ a b c 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: 1977. doi:10.3390/en10121977. CC-BY icon.svg Material was copied from this source, which is available under a Creative Commons Attribution 4.0 International License.