Simulation

Erstellen Sie Live Twins Ihres Modells — verfolgen Sie reale Daten über die Zeit, projizieren Sie Szenarien in die Zukunft und lassen Sie das Verhalten der Agents den Graph zum Leben erwecken.

Live Twins: Erste Schritte

Was Live Twins sind, wann Sie sie einsetzen und wie sie auf Ihrem bestehenden Modell aufsetzen. Lesen Sie dies, bevor Sie einen Twin anlegen oder Daten eingeben.

Twins und Szenarien anlegen

Legen Sie Ihren ersten Twin an, wählen Sie seinen Geltungsbereich und fügen Sie dann ein oder mehrere Szenarien hinzu, um Alternativen zu vergleichen.

Agents zu einem Szenario hinzufügen

Erwecken Sie Knoten zum Leben, indem Sie sie aus der Simulation-Toolbox auf ein Simulationsdiagramm ziehen. Ein Knoten, viele Agents — das Skalierungsmuster.

Zeitreihen-Daten eingeben

Nutzen Sie die Zeitreihen-Tabelle im Agent-Eigenschaften-Panel, um Werte über Zeitschritte zu erfassen — die Tabellenkalkulation, die in Ihrem Modell lebt.

Simulationsdiagramme

Ein Simulationsdiagramm ist eine Canvas, die mit einem Szenario verknüpft ist — Agents, Links, Charts und Steuerelemente aktualisieren sich live, während Sie durch die Zeit scrollen.

Charts, Slider und Checkboxes hinzufügen

Ziehen Sie Charts, Slider und Checkboxes auf ein Simulationsdiagramm, um es in ein interaktives Dashboard zu verwandeln, mit dem Ihre Stakeholder spielen können.

Eigenschaftsformeln schreiben

Berechnen Sie Eigenschaftswerte automatisch mit kurzen Rhai-Ausdrücken — Tabellenformeln, die Ihren Graph kennen.

Act-Methoden schreiben

Wenn Eigenschaftsformeln nicht ausreichen — schreiben Sie ein Rhai-Skript, das einmal pro Agent pro Zeitschritt läuft und mehrere Eigenschaften gemeinsam aktualisiert.

Verbundene Agents in Rhai lesen

Nutzen Sie get_connected, sum_prop und count_prop, um Agents den Zustand voneinander über den Graphen lesen zu lassen — so koordinieren sich Metapad-Agents.

Simulationsfehler und -warnungen diagnostizieren

Der Szenario-Diagnose-Tab zeigt Ihnen, ob ein Szenario gesund ist — Zyklen, unaufgelöste Referenzen, Laufzeitwarnungen, Skript-Fehler an einem Ort.

agent.get_propRhaiboth

Liest den Wert einer Eigenschaft auf dem aktuellen Agent. Die einfache Form gibt den Wert am aktuellen Zeitschritt zurück. Mit einem negativen Offset blicken Sie in die Vergangenheit — nützlich für selbst-referentielle Formeln, in denen der neue Wert vom alten abhängt. Der Rückgabetyp folgt dem Datentyp der Eigenschaft: eine Zahl für Number-Eigenschaften, true/false für Boolean, ein String für alles andere.

agent.set_propRhaiact_method

Schreibt einen Wert in eine Eigenschaft des Agents am aktuellen Zeitschritt. Nur innerhalb einer Act-Methode verfügbar — Eigenschaftsformeln verwenden set_prop nicht, sie geben ihr Ergebnis stattdessen zurück. set_prop kann Werte überschreiben, die Eigenschaftsformeln gerade für denselben Zeitschritt berechnet haben — nutzen Sie es, wenn Verhalten mehrere Eigenschaften betrifft oder einer Zustandsmaschine ähnelt.

agent.has_propRhaiboth

Prüft, ob eine Eigenschaft auf dem Agent existiert. Gibt true zurück, wenn die Eigenschaft auf dem Knotentyp des Agents definiert ist, sonst false. Nützlich bei optionalen Eigenschaften oder wenn Formeln sich an unterschiedliche Agent-Typen im selben Modell anpassen sollen.

sum_propRhaiboth

Summiert eine numerische Eigenschaft über ein Array von Agents. Wird häufig zusammen mit get_connected verwendet, um Werte verbundener Agents aufzurollen — Gesamtgehalt, Gesamtbestand, Gesamtumsatz. Nicht-numerische oder fehlende Eigenschaften ergeben 0, sodass eine teilweise gefüllte Menge trotzdem eine saubere Zahl liefert.

count_propRhaiboth

Zählt, wie viele Agents in einem Array einen bestimmten Wert für eine gegebene Eigenschaft haben. Häufiges Muster: verbundene Agents in einem bestimmten Zustand zählen (z. B. aktive Mitglieder eines Teams, abgeschlossene Schritte eines Prozesses). Der Vergleich ist exakt — Zeichenkettenvergleich für Text-Eigenschaften, numerischer Vergleich für Zahlen.

__timestepRhaiboth

Der Index des aktuellen Zeitschritts — 0 am Anfang des Szenarios, 1 am nächsten Schritt und so weiter. Als Scope-Variable in jeder Formel und Act-Methode verfügbar. Nützlich für periodische Logik („einmal pro Jahr"), Startbedingungen oder jede Regel, die von der absoluten Zeit innerhalb des Szenarios abhängt.

__dtRhaiboth

Die Schrittweite des Szenarios — z. B. 1.0, wenn Start- und Endzeit in Monaten sind und dt 1 ist, oder 1/12, wenn Start und Ende in Jahren sind und Sie monatlich rechnen. Verwenden Sie es, um Raten zu skalieren, die pro Einheit echter Zeit ausgedrückt sind — so bleibt eine Formel auch dann korrekt, wenn die Granularität des Szenarios später geändert wird.

get_connectedRhaiboth

Gibt die Agents zurück, die mit dem angegebenen Agent über einen Beziehungstyp verbunden sind. Läuft den Link in beide Richtungen, sodass derselbe Aufruf funktioniert, egal ob Ihr Agent Quelle oder Ziel der Beziehung ist. Die 3-Argument-Form fügt einen negativen Offset hinzu und liefert die verbundenen Agents so, wie sie einen oder mehrere Zeitschritte zuvor aussahen — nützlich für Liefer-Verzögerungen, Ausbreitungs-Lags und alle zeitversetzten Beobachtungen. Die 3-Argument-Form steht aktuell nur in Eigenschaftsformeln zur Verfügung; in Act-Methoden verwenden Sie die 2-Argument-Form und lesen die Historie über agent.get_prop auf den einzelnen Mitgliedern.