Я пытаюсь выяснить шаги, требуемые Dymola для решения кода Modelica. Читая некоторые справочные документы и книгу, я понял, что Dymola:Dymola DAE solver
- Переводит код Modelica в гибридный DAE (сплющивание).
- Манипулирует DAE, чтобы преобразовать его в форму ODE (уменьшение индекса и другие методы).
- Использует алгоритм DASSL.
Мой вопрос: почему Dymola необходимо использовать DASSL для решения ODE? Должно быть недостаточно, чтобы использовать общий решатель ODE, такой как BDF или Runge-Kutta?
Заранее благодарю за внимание. Все лучшее,
Алессандро
Короткий ответ: он более эффективен. Подробный ответ дается Франсуа Селье в его книге «Моделирование непрерывной системы», глава 8.4 (DASSL) –
Привет, Лукас, спасибо за комментарий. Я действительно прочитал эту главу, но я сомневаюсь: как DASSL может решить ODE, так как это решатель DAE? Если вы скажете мне, что DASSL может решить также ODE, тогда все имеет смысл и является логикой. –
ODE - это подмножество DAE; в основном ODE - der (x) = f (x), а DAE - g (der (x), x) = 0. Поэтому, устанавливая g (der (x), x) = der (x) -f (x), ODE преобразуется в DAE - и, таким образом, Dassl может его решить. –