-
openmod-2019-helics-tutorial
-
notebooks
Cosimulation Introduction¶
Simulation Models (1/3)¶
- Markets
- Transmission
- Distribution
- Devices
- Communication
- Controls
- Loads
Simulation Models (2/3)¶
- Transient
- Dynamic
- Steady-State
- Planning
Simulation Models (3/3)¶
- Technical
- Economic
- Techno-economic
Solutions¶
- Simplify models
- Bigger Computer
- Co-simulation
What is co-simulation?¶
- Execution of multiple distinct simulation objects together in coherent fashion
- Co-simulation is used whenever a single simulator is insufficient to answer the relevant questions
Why co-simulation?¶
- Lots of effort has gone into (sub) domain-specific tools. (So use them)
- Trusted by stakeholders
- Continue to improve
- Allows focus on the “glue-ware”
- Faster prototyping for research
- Many frameworks
- Encourages Modularity
HELICS¶
Capabilities:
- Scalable: 2-100,000+ Federates
- Cross-platform: HPC (Linux), Cloud, Workstations, Laptops (Windows/OSX)
- Modular: mix and match tools
- Minimally invasive: easy to use lab/commercial/open tools
- Open Source: BSD-style.
- Many Simulation Types:
- Discrete Event
- QSTS
- Dynamics
- Co-iteration enabled: “tight coupling”
HELICS Interfaces to key domain simulators¶

Cosimulation of Electrical Grid, Thermodynamics of Houses, and Control Systems¶

Architecture of Cosimulation (1/2)¶

Architecture of Cosimulation (2/2)¶

Terminology¶
- Federate - An individual simulator that is computing something interesting and communicating with other simulators
- Core - An object managing the interactions of one or more federates
- Broker - An object coordinating multiple cores or brokers:
- There can be several layers of brokers
- Root broker - The root broker in the hierarchy
- Last chance router
- Responsible for determining when to enter initialization mode for the federation
- Federation - The set of all federates executing together in a single co-simulation