Установка начальных значений в блоке инструментов FMI с помощью Matlab

(Этот вопрос похож на предыдущий вопрос, который я опубликовал, но ситуация изменилась...)

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

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

simOut_itr = sim(model, model_cs);

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

Однако, когда я запускаю свой код, значения инициализации не устанавливаются в модели, и результаты моделирования показывают, что выходы модели сбрасываются до своих начальных значений при каждом запуске моделирования. Такое поведение указывает на то, что состояния не инициализируются с использованием значений переменных рабочей области, но при моделировании ошибка не устанавливается. Я подтвердил, что загрузка и выгрузка модели для каждой итерации не помогает.

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

2 ответа

Блок инструментов FMI в Simulink не устанавливает значения инициализации при вызове модели (sim), а скорее из отдельного набора функций, специфичных для набора инструментов FMI. Руководство по инструментам FMI содержит больше деталей.

fmuSetValueSimulink() - это используемая функция. Это используется для установки как значений параметров, так и начальных значений для переменных состояния. Раздел справки для функции довольно информативен, поэтому я не буду вдаваться в подробности.

Другие вопросы по тегам