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

image.png

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
    • Swap models as needed

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
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]: