Изменить набор уравнений в FMU для обмена моделями

мы хотим опубликовать открытый исходный код для интеграции обучения с подкреплением в оптимизацию Smartgrid. Мы используем OpenModelica в качестве графического интерфейса пользователя, PyFMI для импорта в Python и Gym.

Практически все работает, но возможность подключения или отключения дополнительных нагрузок во время моделирования отсутствует. Все, что мы можем сделать на данный момент, - это изменение параметров существующих нагрузок, что дает некоторую гибкость, но намного меньше, чем возможность включать и выключать нагрузки.

Использование реализованных переключателей в OpenModelica на самом деле не вариант. Они просто помещают резистор в это место, придавая ему очень низкое или очень высокое сопротивление. Во-первых, она не совсем развязана, а во-вторых, из-за высокого сопротивления система ODE становится жесткой, что делает ее решение действительно трудным (и дорогостоящим). В тестах наш решатель LSODA (в жестких случаях в основном BDF) часто работал с числовыми ошибками, независимо от того, как вычислялся якобиан (аналитически с помощью производных по направлениям или с конечными разностями).

Есть ли у кого-нибудь идеи, как можно реализовать настоящий «эффект переключения»?

С наилучшими пожеланиями,

Хенрик


person H Bode    schedule 30.03.2020    source источник
comment
Вы должны добавить минимальный рабочий пример, чтобы показать, что у вас есть сейчас и чего вы хотите достичь.   -  person AnHeuermann    schedule 16.04.2020


Ответы (1)


Идеальное соединение и отключение компонентов во время моделирования требует изменчивости конструкции, которая не полностью поддерживается Modelica (пока). См. Также этот ответ https://stackoverflow.com/a/30487641/8725275

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

Для поддержки этого процесса создана среда Python: DySMo. Инструмент был написан Александрой Мельхасе, которая сделала много интересных публикаций, касающихся изменчивости структуры, например Пример полезного использования моделирования с переменной структурой для улучшения существующей модели ракеты..

В документе Моделирование модели электромобиля с переменной структурой для Также стоит взглянуть на оценку времени автономной работы с использованием Modelica / Dymola и Python Морица Штубера. Он содержит хорошее введение о системах с переменной структурой и доступных решениях.

person marco    schedule 21.04.2020