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
вы найдете плоский объект