Подача начальных состояний в блок FMU (FMIKit) в MATLAB

Я использую Dymola 2020x для разработки тепловой модели и экспорта FMU в Simulink для моделирования контроллеров. Для реализации расширенных контроллеров мне требуется итеративно запускаемая структура, которая помогает инициализировать состояния после каждой итерации значениями в конце каждой предыдущей симуляции. Это можно сделать в Dymola с помощью команд «импортировать начальный» и «Продолжить» на вкладке «Моделирование» в Dymola. Однако, поскольку я разрабатываю контроллер в MATLAB, мне требуется аналогичная функция для этой платформы. Единственный способ, который я знаю сейчас, - это вручную изменить начальные условия в блоке FMU, но, поскольку у меня много состояний, было бы невозможно сделать это вручную. Также приветствуются любые идеи по написанию сценариев.

В общем, мне нужна структура / метод, чтобы иметь возможность инициализировать состояния моей модели через MATLAB / Simulink значениями, которые я получаю после выполнения одной итерации.

Некоторая помощь будет оценена.


person Rahul Chaturvedi    schedule 14.10.2020    source источник


Ответы (1)


Выставьте начальные условия переменных в качестве параметров и установите их из сценариев MATLA с помощью, например,

FMIKit.setStartValue (gcb, 'шаг', 'истина')

см. https://github.com/CATIA-Systems/FMIKit-Simulink/blob/master/docs/fmu_import.md

person Christian Bertsch    schedule 16.10.2020