Modia3D

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: github.com/ModiaSim/Modia3D

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

Исторически Modia3D возник как ответ на потребность в модульных средствах моделирования механических систем внутри экосистемы Julia, дополняя существующие библиотеки для моделирования и оптимизации. Документация пакета описывает основные принципы использования — построение модели из тел и соединений, задание начальных условий и внешних воздействий, настройка обработчиков столкновений и выбор численных интеграторов. Если официальных сведений о Modia3D недостаточно или пакет не имеет широко распространённой документации, ниже приведено обобщённое описание функциональности и типичных сценариев применения, основанное на характерных возможностях подобных проектов в Julia.

  • Сборка трёхмерных моделей: определение тел (масса, моменты инерции, геометрия для коллизий), локальных систем координат и иерархии соединений.
  • Кинематика и динамика: формулировка уравнений движения для многотельных систем с использованием обобщённых координат, расчёт сил инерции и реакций в связях.
  • Соединения и ограничения: поддержка различных типов соединений (шарнирные, поступательные, жёсткие связи), задание ограничений и их регуляризация для численной устойчивости.
  • Обработка контактов и коллизий: детекция столкновений между телами, вычисление нормальных и касательных реакций, моделирование упругих и неупругих взаимодействий с учётом трения.
  • Численные интеграторы и жёсткость: выбор методов интеграции (явные/неявные схемы), адаптивные шаги и методы для решения жёстких задач с ограничениями и контактами.
  • Визуализация и анимация: инструменты для постобработки траекторий, генерации кадров анимации и отображения кинематических перемещений систем в трёхмерном пространстве.
  • Интероперабельность: возможность интеграции с другими пакетами экосистемы Julia для численного решения, оптимизации параметров и визуализации результатов.
  • Сценарии использования: проектирование и анализ робототехнических механизмов, исследование динамики сложных машин, образовательные симуляции для механики и динамики систем.
  • Расширяемость и настройка: модульная архитектура, позволяющая добавлять пользовательские модели сил, новых типов контактов или специализированные решатели.
  • Ограничения документации: если официальная информация ограничена, предполагается, что функциональность следует общим практикам пакетов для многотельной динамики и должна проверяться по доступным репозиториям и руководствам разработчика.
Подробнее