Co-Simulation ist ein Verfahren, bei dem mehrere spezialisierte Simulationsmodelle gleichzeitig laufen und Daten austauschen, um ein komplexes System aus verschiedenen Blickwinkeln zu simulieren.
Diese Technik wird eingesetzt, wenn ein einzelnes Simulationsmodell nicht ausreicht, um alle Aspekte eines Systems präzise abzubilden, oder um vorhandene Simulationsmodelle (neu) zu kombinieren.
Ein anschauliches Beispiel für eine Co-Simulation ist die ganzheitliche Simulation eines Wohnhauses. Dabei werden verschiedene Modelle kombiniert:
-
Ein Gebäudemodell, das die physischen Eigenschaften des Hauses abbildet, wie Dämmstandards oder verwendete Energieträger für Heizung und Strom.
-
Ein Nutzungsmodell, das das Verhalten der Bewohner simuliert – von normalen Alltagsroutinen bis hin zu Szenarien mit längerer An- oder Abwesenheit.
-
Ein Wettermodell, das Außentemperaturen, Sonneneinstrahlung und andere klimatische Bedingungen simuliert.
Solche Modelle können von unserer Software koordiniert gestartet und miteinander verbunden werden. So entsteht z.B. eine integrierte Co-Simulation, die realistische Vorhersagen über Energieverbrauch, Raumklima und andere wichtige Faktoren ermöglicht.
Benutzeroberfläche
Die benutzerfreundliche Web-Oberfläche bildet das Herzstück für alle Nutzenden. Zunächst wählt man eine passende Co-Simulationsart aus und konfiguriert dann die gewünschten Simulationsmodelle.
In einem zweiten Konfigurationsschritt legen die Nutzenden zentrale Ausführungsparameter fest. Beispielsweise die Schrittgröße (Step Size), die bestimmt, welchen Zeitraum ein einzelner Simulationsschritt abdeckt oder die Gesamtschrittanzahl (Steps), die die Simulationsdauer definiert.
Diese Parameter sind entscheidend für die Balance zwischen Detaillierungsgrad der Ergebnisse und Rechenzeit.
Nach dem Simulationsstart erscheint eine umfassende Übersichtsdarstellung mit vier Hauptbereichen:
- Verbindungsgraph (oben links): Visualisiert alle beteiligten Prozesse und ihre Verbindungen untereinander. Aktive Prozesse werden durch Blinken hervorgehoben, was eine intuitive Echtzeit-Überwachung des Simulationsfortschritts ermöglicht.
- Echtzeit-Dashboards (oben rechts): Über eine Grafana-Integration werden aktuelle Messwerte und Kennzahlen aller Module in übersichtlichen Diagrammen dargestellt.
- Prozessausgaben (unten links): Zeigt Log-Meldungen und Statusinformationen der laufenden Prozesse, hilfreich für Fehlerdiagnose und technische Überwachung.
- Visualisierungen (unten rechts): Präsentiert dynamisch generierte Grafiken der Simulationsmodelle, die sich automatisch mit dem Fortschritt der Simulation aktualisieren.
Nach Abschluss der Simulation klappt sich der Verbindungsgraph automatisch zusammen, wodurch mehr Bildschirmfläche für die Ergebnisdarstellung zur Verfügung steht. Diese platzsparende Ansicht ermöglicht eine fokussierte Analyse der Simulationsergebnisse. Nutzer haben zudem die Möglichkeit, diese kompakte Darstellung bereits während der laufenden Simulation über eine entsprechende Schaltfläche zu aktivieren.
Die Plattform bietet zudem ein zentrales Co-Simulationsmanagement mit drei übersichtlichen Kategorien:
- Initialisierte Co-Simulationen: Vorbereitete, aber noch nicht gestartete Simulationen
- Laufende Simulationen: Aktuell in Ausführung befindliche Simulationen
- Beendete Simulationen: Bereits durchgeführte Simulationen mit verfügbaren Ergebnissen oder abgebrochene Simulationen
Jede Simulation kann mit einem Klick in die Arbeitsansicht geladen werden, wo Nutzer dem aktuellen Zustand entsprechend Aktionen durchführen können. Diese zentrale Verwaltung ermöglicht einen effizienten Arbeitsablauf auch bei komplexen Simulationsstudien mit mehreren Varianten.
Technologien und Architektur
Die hauptsächlich eingesetzten Technologien sind:
- Python,
- Angular,
- Grafana und
- PostgreSQL.
Die Systemarchitektur besteht aus mehreren Komponenten, die von einem zentralen Server gesteuert werden. Bei Bedarf werden einzelne Teile des Systems skaliert, um mehrere Simulationsabläufe gleichzeitig zu ermöglichen. Hierbei sind sämtliche Serverkomponenten in Python entwickelt und nutzen v.a. Coroutinen, um eine entsprechende Performance zu erreichen. Die oben beschriebene Weboberfläche wurde in Angular entwickelt und ist per HTTP API und Websockets mit dem Server verbunden.
Auftraggeber
Diese Softwarelösung wurde im Auftrag des Karlsruher Instituts für Technologie (KIT) entwickelt, einer der führenden technischen Forschungsuniversitäten Deutschlands mit herausragender Expertise in den Ingenieur- und Naturwissenschaften. Innerhalb des KIT fungierte die Forschungsgruppe Energiesystemanalyse (ESA) am Institut für Automation und angewandte Informatik (IAI) als fachlicher Projektpartner.
Die ESA-Gruppe erforscht innovative Methoden zur Modellierung, Simulation und Analyse komplexer Energiesysteme mit Fokus auf die Integration erneuerbarer Energien und Energieeffizienz in Gebäuden und Quartieren.
Für mehr Informationen zu dieser Forschungsarbeit und dem Einsatz dieser Software können Sie sich gerne bei Herrn Dr. Çakmak melden, der das Projekt auf KIT-Seite betreut.