Инициализация Димола FMU в Симулинке

Я столкнулся с проблемой при попытке смоделировать модель с помощью файла fmu в Simulink:

Я использую панель инструментов Modelon FMI для интерфейса Dymola / Simulink для импорта файла fmu типа Model-Exchange (версия 1.0) в модель Simulink. У меня есть m-файл Matlab, который программно моделирует модель последовательно, сохраняя конечные внутренние состояния модели для инициализации в следующем моделировании. Первая итерация моделирования выполняется без ошибок, но на второй итерации Matlab возвращает следующие ошибки при вызове моделирования:

module =partal_run_sim2 / BasicModels.System_model_final_Sim, уровень журнала = ОШИБКА: [] [Состояние FMU: Ошибка] fmiInitialize: ошибка dsblock_, QiErr = 1
module =partal_run_sim2 / BasicModels.System_model_final_Sim, уровень журнала = ОШИБКА: [] [Состояние FMU: Ошибка] Возможные ошибки (не исчерпывающие): 1. Файл лицензии не найден. Используйте переменную окружения "DYMOLA_RUNTIME_LICENSE", чтобы указать свой файл лицензии Dymola. 2. Модель ссылается на внешние данные, которых нет на целевом компьютере, по крайней мере, в другом месте. Ошибка, о которой сообщает S-функция 'sfun_fmu_me_1_0' в 'component_run_sim2 / BasicModels.System_model_final_Sim': fmiInitialize вернулась с ошибкой в initialize_fmu_model_first_time. См. Командное окно для получения дополнительной информации, напечатанной моделью FMU.

Я знаю, что мои лицензии на Dymola и инструментарий FMI актуальны.

Вызов симуляции в m-файле:

simOut_itr = sim(model, model_cs); 

Где «model» - это файл модели Simulink .slx, а «model_cs» - это переменная настройки конфигурации Simulink. Я установил конфигурацию так, чтобы модель загружала начальные состояния из рабочей области, и я сохранил конечные состояния предыдущих итераций в этой переменной рабочей области. Это действие происходит и для первой итерации, хотя начальные состояния совпадают с начальными состояниями по умолчанию в файле fmu. Я подозреваю, что первая итерация выполняется без проблем, потому что инициализация совпадает со значением по умолчанию, но последующая итерация имеет другое значение инициализации, которое не согласуется с блоком fmu.

Мне известна возможность имитировать файл fmu в Matlab с использованием функций fmi, но эти методы не обеспечивают такой прозрачности состояний системы, которая затрудняет последовательное моделирование. Однако я открыт для любых методов, которые допускают такого рода симуляцию.

Будем очень благодарны за любые предложения относительно инициализации системных состояний в файлах fmu в Matlab / Simulink. Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос