# Guidelines

The following is an overview of our recommendations and guidelines for modular modelling and simulation of maritime systems. It is intended to be used as a quick reference and a starting point for further reading, and we do recommend that you take the time to follow the links and check out our more in-depth articles. In fact, let's make this guideline number zero:

- The guidelines on this page are just that:
*guidelines*, not hard and fast rules. Most of the time there will be a “but”.

## Co-simulation

*For more information, see: Co-simulation*

- Use co-simulation whenever possible to construct full-system models from loosely coupled stand-alone models and modules.
- Be cautious when selecting coupling method and co-simulation (macro) step size to avoid accuracy and stability issues.

## Model interfaces

*For more information, see: Model interfaces*

- Use FMI and package your models as FMUs.
- When selecting the names, types and units of your model variables, decide on a set of conventions and stick to them.
- Document your interfaces well.
- Use standard units of measurement, preferably SI units. If other units are used, explicitly and clearly document so.
- Make use of power bonds to model the flow of energy between subsimulators whenever possible.

## Stability

*For more information, see: Stability*

- In distributed systems, dynamical system stability can be estimated based on passivity theory [1], through a sink-source analysis of the added- and dissipated energy in the total distributed system. However, note that dynamic stability and numerical stability are closely related in distributed systems through the communication rate, which affects the eigenvalues in the total system.
- The stability in a distributed system should be concluded based on dynamical stability and numerical stability in combination, although if all subsystems in the distributed system has nice passivity properties, the dynamical- and numerical stability analysis can be separated.

## Tightly coupled systems

*For more information, see: Tightly coupled systems*

- Systems that are tightly coupled through frequencies and eigenvalues are generally not suited for co-simulation. All the systems that are connected in such tight couplings should be considered implemented as one subsimulator.
- Electrical systems modelled in the abc-reference frame are not suited for co-simulation because of the high frequencies in the model interfaces. However, a complete power plant can be implemented as one subsystem and connected to the model environment through mechanical signals such as torque and angular velocity. If single electrical systems are considered to be distributed with “electrical” model interfaces, the dq0-reference frame is recommended.
- For systems that are tightly coupled through causality, there are several implementation strategies. Three of them are given as follows:
*Correct implementation:*Systems that are tightly coupled through causality are implemented as one subsimulator.*Brute-force implementation:*Negligible dynamical effects can be added to change the causality in one of the subsystems.*Hybrid Causality:*A low-pass filter with derivative properties can be used to regain the lost state and to calculate the derivative of the input signal

- Always avoid distribution of chaotic systems across several subsimulators.

## Hybrid causality

*For more information, see: Hybrid causality*

- For subsystems where the preferred causality-connectivity option is hard to determine on beforehand without knowing the connecting environment, the submodel may be implemented as a hybrid causality model to ensure compatibility with other submodels in the distributed simulation environment.