я столкнулись с проблемой при попытке имитации модели с помощью файла FMU в Simulink:Инициализация Dymola FMU в Simulink
Я использую набор инструментов Modelon FMI для интерфейса Dymola/Simulink импортировать модельно Файл fmu типа Exchange (версия 1.0) в модель Simulink. У меня есть m-файл Matlab, который программно имитирует модель последовательно, сохраняя окончательные внутренние состояния модели для инициализации в следующей симуляции. Первая итерация моделирования выполняется без ошибок, но на вторую итерации, Matlab возвращает следующие ошибки при вызове для моделирования:
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] Possible errors (non-exhaustive): 1. The license file was not found. Use the environment variable "DYMOLA_RUNTIME_LICENSE" to specify your Dymola license file. 2. The model references external data that is not present on the target machine, at least not with the same location. Error reported by S-function 'sfun_fmu_me_1_0' in 'partial_run_sim2/BasicModels.System_model_final_Sim': fmiInitialize returned with an error in initialize_fmu_model_first_time. See the Command Window for more information printed by the FMU model.
Я знаю, что мои лицензии на Dymola и инструменты FMI являются вверх к -Дата.
Вызов моделирования в м-файле:
simOut_itr = sim(model, model_cs);
Где «модель» в Simulink .slx файл модели и «model_cs» является установка переменной конфигурации Simulink. Я установил конфигурацию таким образом, что модель загружает начальные состояния из рабочей области, и я сохранил предыдущие итерации конечных состояний этой переменной рабочего пространства. Это действие происходит и для первой итерации, хотя начальные состояния совпадают с начальными состояниями по умолчанию в файле fmu. Я подозреваю, что первая итерация выполняется без проблем, поскольку инициализация совпадает с значением по умолчанию, но последующая итерация имеет другое значение инициализации, которое не согласуется с блоком fmu.
Мне известно о возможности имитации файла fmu в Matlab с использованием функций fmi, но эти методы не позволяют обеспечить столько прозрачности в состояниях системы, что препятствует последовательной симуляции. Однако я открыт для любых методов, которые допускают такой симулятор.
Любые предложения относительно инициализации состояний системы в файлах fmu в Matlab/Simulink очень ценятся. Спасибо.
Как выясняется, проблема не имела ничего общего с начальными состояниями, но входной сигнал к модели был плохо приспособлен к симуляции, которую я пытался запустить. Для всех, кто сталкивается с этой проблемой, также проверяйте входы моделирования, даже если это может показаться, что виноваты переменные инициализации. –