Initialisierung einer Dymola FMU in Simulink

Beim Versuch, ein Modell mithilfe einer FMU-Datei in Simulink zu simulieren, ist ein Problem aufgetreten:

Ich verwende die Modelon FMI-Toolbox für eine Dymola / Simulink-Schnittstelle, um eine Model-Exchange-Fmu-Datei (Version 1.0) in das Simulink-Modell zu importieren. Ich habe eine Matlab-M-Datei, die das Modell programmgesteuert nacheinander simuliert und die internen Endzustände des Modells für die Initialisierung in der nächsten Simulation speichert. Die erste Iteration der Simulation läuft fehlerfrei, aber bei der zweiten Iteration gibt Matlab beim Aufruf der Simulation die folgenden Fehler zurück:

module = partial_run_sim2 / BasicModels.System_model_final_Sim, log level = ERROR: [] [FMU-Status: Fehler] fmiInitialize: dsblock_ failed, QiErr = 1
module = partial_run_sim2 / BasicModels.System_model_final_Sim, log level = ERROR: [] [FMU-Status: Fehler] Mögliche Fehler (nicht vollständig): 1. Die Lizenzdatei wurde nicht gefunden. Verwenden Sie die Umgebungsvariable "DYMOLA_RUNTIME_LICENSE", um Ihre Dymola-Lizenzdatei anzugeben. 2. Das Modell verweist auf externe Daten, die nicht auf dem Zielcomputer vorhanden sind, zumindest nicht am selben Speicherort. Von der S-Funktion 'sfun_fmu_me_1_0' in 'partial_run_sim2 / BasicModels.System_model_final_Sim' gemeldeter Fehler: fmiInitialize wurde mit einem Fehler in initialize_fmu_model_first_time zurückgegeben. Weitere Informationen zum FMU-Modell finden Sie im Befehlsfenster.

Ich weiß, dass meine Lizenzen für Dymola und die FMI-Toolbox auf dem neuesten Stand sind.

Der Simulationsaufruf in der M-Datei lautet:

simOut_itr = sim(model, model_cs); 

Wobei "model" die Simulink .slx-Modelldatei und "model_cs" eine Simulink-Konfigurationseinstellungsvariable ist. Ich habe die Konfiguration so eingestellt, dass das Modell Anfangszustände aus dem Arbeitsbereich lädt, und ich habe die letzten Iterationszustände in dieser Arbeitsbereichsvariablen gespeichert. Diese Aktion wird auch für die erste Iteration ausgeführt, obwohl die Anfangszustände mit den Standardanfangszuständen in der fmu-Datei identisch sind. Ich vermute, dass die erste Iteration ohne Probleme ausgeführt wird, da die Initialisierung mit dem Standardwert identisch ist, die nachfolgende Iteration jedoch einen anderen Initialisierungswert aufweist, der nicht mit dem fmu-Block übereinstimmt.

Ich bin mir der Fähigkeit bewusst, die fmu-Datei in Matlab mithilfe der fmi-Funktionen zu simulieren, aber diese Methoden ermöglichen nicht so viel Transparenz in Bezug auf die Systemzustände, was die sequentielle Simulation behindert. Ich bin jedoch offen für alle Methoden, die diese Art der Simulation ermöglichen.

Anregungen zur Initialisierung der Systemzustände in fmu-Dateien in Matlab / Simulink sind sehr willkommen. Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage