# System-level simulation

System-level simulation (SLS) is a collection of practical methods used in the field of systems engineering, in order to simulate, with a computer, the global behavior of large cyber-physical systems.
Cyber-physical systems (CPS) are systems composed of physical entities regulated by computational elements (e.g. electronic controllers).
System-level simulation is mainly characterized by:
* a level of detail adapted to the practical simulation of large and complex cyber-physical systems (e.g. plants, aircraft, industrial facilities)
* the possibility to use the simulation even if the system is not fully specified, i.e. simulation does not necessarily require a detailed knowledge of each part of the system. This makes it possible to use the simulation for conception or study phases, even at an early stage in this process
These two characteristics have several implications in terms of modeling choices (see further).
System-level simulation has some other characteristics, that it shares with CPS simulation in general:
* SLS involves multi-physics models (thermo-fluidic, mechanical, electrical, etc.)
* SLS is frequently cross-disciplinary, i.e. it is frequently the result of a collaboration between people with different expertises
* SLS is generally built upon a hierarchy of models; an organized modeling is usually necessary to make the whole model envisagable; the conceptual decomposition of the system into sub-systems is related to the notion of system of systems
SLS is mainly about computing the evolution over time of the physical quantities that characterize the system of interest, but other aspects can be added like failure modeling or requirement verification.

## Motivations and benefit

The main motivation for SLS is the application of the holistic principle to computer simulation, which would state that simulating the system as a whole tells more than simulating parts of the system separately. Indeed, simulating the different parts of a complex system separately means neglecting all the possible effects of their mutual interactions. In many applications, these interactions cannot be ignored because of strong dependencies between the parts. For instance, many CPSs contain feedbacks that cannot be broken without modifying the system behavior. Feedbacks can be found in most modern industrial systems, which generally include one or more control systems. Another example of benefits from system level simulations is reflected in the high degree of accuracy (e.g. less than 1% cumulative validation error over 6 months of operation) of such simulations in the case of a solar thermal system.
On the other hand, simply connecting existing simulation tools, each built specifically to simulate one of the system parts, is not possible for large systems since it would lead to unacceptable computation times. SLS aims at developing new tools and choosing relevant simplifications in order to be able to simulate the whole cyber-physical system.
SLS has many benefits compared to detailed co-simulation of the system sub-parts. The results of a simulation at the system level are not as accurate as those of simulations at a finer level of detail but, with adapted simplifications, it is possible to simulate at an early stage, even when the system is not fully specified yet. Early bugs or design flaws can then be detected more easily.
SLS is also useful as a common tool for cross-discipline experts, engineers and managers and can consequently enhance the cooperative efforts and communication. Improving the quality of exchanges reduces the risk of miscommunication or misconception between engineers and managers, which are known to be major sources of design errors in complex system engineering.
More generally SLS must be contemplated for all applications whenever only the simulation of the whole system is meaningful, while the computation times are constrained. For instance, simulators for plant operators training must imitate the behavior of the whole plant while the simulated time must run faster than real time.

## Modeling choices

Cyber-physical systems are hybrid systems, i.e. they exhibit a mix of discrete and continuous dynamics. The discrete dynamics mostly originates from digital sensing or computational sub-systems (e.g. controllers, computers, signal converters). The adopted models must consequently be capable of modeling such a hybrid behavior.
It is common in SLS to use 0D —sometimes 1D— equations to model physical phenomena with space variables, instead of 2D or 3D equations. The reason for such a choice is the size of the simulated systems, which is generally too large (i.e. too many elements and/or too large space extension) for the simulation to be computationally tractable. Another reason is that 3D models require the detailed geometry of each part to be modeled. This detailed knowledge might not be known to the modeler, especially if the modelling is done at an early step in the development process.
The complexity of large CPSs make them difficult to describe and visualize. A representation that can be arranged so that its structure looks like the structure of the original system is a great help in terms of legibility and ease of comprehension. Therefore, acausal modeling is generally preferred to causal block-diagram modeling. Acausal modeling is also preferred because component models can be reused, contrary to models developed as block diagrams.

## Domains of application

System-level simulation is used in various domains like:
* building engineering for heating, ventilating and air conditioning simulation
* automotive engineering
* power plants (solar, combined-cycle)
* MEMS
* naval architecture
* aircraft architecture
* offshore oil production

## Usages

In an early stage of the development cycle, SLS can be used for dimensioning or to test different designs. For instance, in automotive applications, "engineers use simulation to refine the specification before building a physical test vehicle". Engineers run simulations with this system-level model to verify performance against requirements and to optimize tunable parameters.
System-level simulation is used to test controllers connected to the simulated system instead of the real one. If the controller is a hardware controller like an ECU, the method is called hardware-in-the-loop. If the controller is run as a computer program on an ordinary PC, the method is called software-in-the-loop. Software-in-the-loop is faster to deploy and releases the constraint of real time imposed by the use of a hardware controller.
SLS is used to build plant models that can be simulated fast enough to be integrated in an operator training simulator or in an MPC controller. Systems with a faster dynamics can also be simulated, like a vehicle in a driving simulator.
Another example of SLS use is to couple the system-level simulation to a CFD simulation. The system-level model provides the boundary conditions of the fluid domain in the CFD model.

## Methods and tools

Specific languages are used to model specification and requirement modeling, like SysML or FORM-L. They are not meant to model the system physics but tools exist that can combine specification models and multi-physics models written in hybrid system modeling languages like Modelica.
If a model is too complex or too large to be simulated in a reasonable time, mathematical techniques can be utilized to simplify the model. For instance, model order reduction gives an approximate model, which has a lower accuracy but can be computed in a shorter time. Reduced order models can be obtained from finite element models, and have been successfully used for system-level simulation of MEMS.
SLS can benefit from parallel computing architectures. For instance, existing algorithms to generate code from high-level modeling languages can be adapted to multi-core processors like GPUs. Parallel co-simulation is another approach to enable numerical integration speed-ups. In this approach, the global system is partitioned into sub-systems. The subsystems are integrated independently of each other and are synchronized at discrete synchronization points. Data exchange between subsystems occurs only at the synchronization points. This results in a loose coupling between the sub-systems.
Optimization can be used to identify unknown system parameters, i.e. to calibrate CPS model, matching the performance to actual system operation. In cases when exact physical equations governing the processes are unknown, approximate empirical equations can be derived, e.g. using multiple linear regression.

## Possible future evolutions

If the simulation can be deployed on a supercomputing architecture, many of the modeling choices that are commonly adopted today (see above) might become obsolete. For instance, the future supercomputers might be able to "move beyond the loosely coupled, forward-simulation paradigm". In particular, "exascale computing will enable a more holistic treatment of complex problems". To exploit exascale computers, it will however be necessary to rethink the design of today's simulation algorithms.
For embedded system applications, safety considerations will probably lead the evolution of SLS. For instance, unlike synchronous languages, the modeling languages currently used for SLS (see above) are not predictable and may exhibit unexpected behaviors. It is then not possible to use them in a safety-critical context. The languages should be rigorously formalized first. Some recent languages combine the syntax of synchronous languages for programming discrete components with the syntax of equation-based languages for writing ODEs.