Inicjalizacja FMU Dymola w Simulink

Wystąpił problem podczas próby symulowania modelu przy użyciu pliku fmu w Simulink:

Używam przybornika Modelon FMI do interfejsu Dymola / Simulink, aby zaimportować plik fmu typu Model Exchange (wersja 1.0) do modelu Simulink. Mam plik m Matlab, który programowo symuluje sekwencyjnie model, zapisując końcowe stany wewnętrzne modelu do inicjalizacji w następnej symulacji. Pierwsza iteracja symulacji przebiega bez błędów, ale w drugiej iteracji Matlab zwraca następujące błędy podczas wywołania symulacji:

module = partial_run_sim2 / BasicModels.System_model_final_Sim, log level = ERROR: [] [FMU status: Error] fmiInitialize: dsblock_ failed, QiErr = 1
module = partial_run_sim2 / BasicModels.System_model_final_Sim, log level = ERROR: [] [FMU status: Error] Możliwe błędy (niewyczerpujące): 1. Nie znaleziono pliku licencji. Użyj zmiennej środowiskowej „DYMOLA_RUNTIME_LICENSE”, aby określić plik licencji Dymola. 2. Model odwołuje się do danych zewnętrznych, których nie ma na maszynie docelowej, przynajmniej nie w tej samej lokalizacji. Błąd zgłaszany przez funkcję S 'sfun_fmu_me_1_0' w 'partial_run_sim2 / BasicModels.System_model_final_Sim': fmiInitialize wrócił z błędem w initialize_fmu_model_first_time. Zobacz okno poleceń, aby uzyskać więcej informacji wydrukowanych przez model FMU.

Wiem, że moje licencje na Dymola i zestaw narzędzi FMI są aktualne.

Wywołanie symulacji w pliku m to:

simOut_itr = sim(model, model_cs); 

Gdzie „model” to plik modelu Simulink .slx, a „model_cs” to zmienna ustawień konfiguracyjnych Simulink. Ustawiłem konfigurację tak, że model ładuje stany początkowe z obszaru roboczego i zapisałem poprzednie stany końcowe iteracji do tej zmiennej obszaru roboczego. Ta akcja występuje również dla pierwszej iteracji, chociaż stany początkowe są takie same jak domyślne stany początkowe w pliku fmu. Podejrzewam, że pierwsza iteracja działa bez problemu, ponieważ inicjalizacja jest taka sama jak wartość domyślna, ale kolejna iteracja ma inną wartość inicjalizacji, która nie zgadza się z blokiem fmu.

Jestem świadomy możliwości symulacji pliku fmu w Matlab przy użyciu funkcji fmi, ale te metody nie pozwalają na tak dużą przejrzystość stanów systemu, co utrudnia sekwencyjną symulację. Jestem jednak otwarty na wszelkie metody, które pozwalają na taką symulację.

Wszelkie sugestie dotyczące inicjowania stanów systemu w plikach fmu w Matlab / Simulink są bardzo cenione. Dziękuję Ci.

questionAnswers(1)

yourAnswerToTheQuestion