JModelica в сочетании с CasADi для получения линеаризованных моделей в Python

Недавно я обнаружил статью "ИЗГОТОВЛЕНИЕ МОДЕЛЕЙ МОДЕЛЕЙ, ДОСТУПНЫХ ДЛЯ АНАЛИЗА В БИБЛИОТЕКЕ СИСТЕМ УПРАВЛЕНИЯ PYTHON", в которой объясняется, как использовать JModelica в сочетании с CasADi для получения линеаризованных моделей в Python. Это именно то, что я ищу, но, видимо, статья написана в 2014 году и используется JModelica 1.12. Описанный подход устарел, а используемые функции больше не доступны.

Документация JModelica очень ограничена в этой теме, и я не знаю, как выполнить описанную задачу, используя последнюю версию JModelica. Класс CasadiModel больше не используется и функция compile_fmux выдает ошибку компиляции.

Моя конечная цель заключается в моделировании (нелинейных) систем в Modelica. Мне нужно символическое представление этой модели, чтобы выполнить линеаризацию самостоятельно. Затем линеаризованная модель используется для разработки контроллера в Python.

У кого-нибудь есть предложение?

1 ответ

Да, casadiModelObject = CasadiModel('FourTanks.fmux')"вызывает ошибку.

как говорится в предупреждении,

Предупреждение об устаревании: CasadiModel устарела. CasadiPseudoSpectralAlg и LocalDAECollocationAlgOld больше не поддерживаются. Чтобы решить проблему оптимизации с помощью CasADi, используйте pyjmi.transfer_optimization_problem

Попробуй что-нибудь подобное,

from pyjmi import transfer_optimization_problem
op = transfer_optimization_problem('TankSystems.FourTanks','fourTank.mop',
                                  accept_model=True)

затем введите

op

вы найдете плоский объект

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