Modelica vs Simscape

Этот вопрос имеет два основных аспекта на самом деле. В самом начале я должен признать, что я совершенно новичок в физическом моделировании и был бы рад, чтобы меня тоже поправили, а не только ответили. Для тех, кто считает это слишком длинным для чтения, я могу дать краткое резюме:

1) Simulink vs Modelica

2) Simscape vs Modelica

1) Первый - сравнение подходов к моделированию. Условно существуют разные названия двух основных подходов, которые я хочу сравнить:

# Подход потока сигналов / блочное моделирование / причинное моделирование...: Типичные модели в Simulink. Есть коробки с входами и выходами и передаточными функциями между ними.

против

# Сетевой подход / моделирование, основанное на компонентах / акаузальное (некаузальное) моделирование...: вместо входов / выходов сигналов есть физические порты, и объекты потока (ток, тепло и т. Д.) Могут течь в обоих направлениях.

В этом сравнении я прочитал некоторые мнения в Интернете и искал некоторые статьи. Насколько я понимаю, все сводится к сравнению сред разработки на основе Modelica и Simulink (например). Недостатки и преимущества этих двух более очевидны для меня, чем другой момент, который я хочу спросить.

2) После прочтения большого количества данных по первому сравнению для меня было предпочтительнее перейти к моделированию на основе компонентов. Тем не менее, Modelica не единственный вариант здесь. Существует также Simscape, с помощью которого вы можете комбинировать физические порты (как в Modelica) с блочным моделированием Simulink.

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

3 ответа

Ну, так как никто, кажется, не отвечает на это, я сделаю снимок.

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

Это подводит меня ко второму вопросу о SimScape и Modelica. SimScape, кажется, является признанием проблем, о которых я говорил в предыдущем абзаце. Честно говоря, третьей стороне будет сложно предоставить вам анализ SimScape против Modelica, поскольку многое зависит от факторов, которые могут отличаться для вас по сравнению с другими людьми.

Кроме того, я действительно не очень много использовал SimScape, поэтому я не могу так много комментировать там. Но я, безусловно, могу сказать вам силу Моделики. Modelica была разработана дизайнерской группой, состоящей из примерно равных частей разработчиков, пользователей и ученых. Я думаю, что это на самом деле его большая скрытая сила Моделика. Таким образом, чтобы добиться успеха, новые функции должны были получить поддержку от всех групп. Слишком большое влияние одной группы, на мой взгляд, вредно.

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

Наконец, доказательством является то, что люди видят все различные типы проблем, которые они решают. Modelica используется в самых разных областях техники для решения действительно разнообразных задач. Это, на мой взгляд, свидетельство правильности оформления языка и библиотек. Этот успех не является результатом большого количества маркетинговых долларов, а скорее является следствием того факта, что технология является чрезвычайно мощной, и что люди во всем мире признали это и использовали ее для решения реальных проблем... снова и снова.

Я бы посоветовал вам просмотреть документы с прошлых конференций Modelica. Каждая статья доступна бесплатно онлайн на http://www.modelica.org/.

Бесстыдный плагин: если вы хотите изучать Modelica на примерах из широкого спектра инженерных дисциплин, вы можете попробовать бесплатную интерактивную и интерактивную книгу Modelica by Example.

Для этого сравнения точкой столкновения может быть возможность импорта / экспорта FMI.

Функциональный интерфейс макета является очень перспективным решением для передачи моделей и обмена ими между различными средами моделирования. Извлеченные функциональные макеты (FMU) могут быть импортированы в другую среду или могут быть численно смоделированы с использованием сторонних инструментов.

Большинство платформ Modelica предлагают адекватные функции импорта / экспорта FMI. Я могу, по крайней мере, сказать для OpenModelica, JModelica.org и MapleSim. Для получения дополнительной информации о наличии, пожалуйста, смотрите здесь.

Насколько поддерживает Matlab/Simulink? Говорят, что они предлагают эту возможность, но нет официального пакета, который можно скачать с MathWorks. Существуют сторонние пакеты, такие как FMI Toolbox и FMI Target для Simulink Coder, но они кажутся коммерческими. Я попробовал демо-версию пакета Modelon, FMI Toolbox, но используя демо-версию, можно работать только с моделями, представленными в демо-версии.

По этой ссылке есть еще один официальный пакет FMI для Simulink. Я добрался до них и спросил, могу ли я посмотреть и попробовать его для исследовательского проекта (не лгите, это был исследовательский проект). Инструмент можно получить только по электронной почте с командой, упомянутой в ссылке, и есть только функция импорта FMI (без экспорта). Simulink, будучи коммерческим инструментом, не хочет позволять моделям уходить в другие среды. Важное примечание: как видно из комментариев, этот пакет теперь можно найти в официальной версии Simulink R2017b, выпущенной 20.09.2017.

В целом, платформы Modelica гораздо более благоприятны для FMI, что может решить большую часть проблем в будущем. Хотя я должен прямо сказать, что до сих пор у меня не было большого опыта использования FMI для решения моих моделей. Иногда это очень медленно, и есть расхождения между результатами OpenModelica и решения с использованием FMU, извлеченного из той же модели. Варианты решателя ограничены для обмена моделями. Что касается Co-Simulation, возможно, я сделал что-то не так. Однако, по моему скромному мнению, это очень многообещающий инструмент, требующий улучшений.

Исследование проблем стандарта FMI, имевшего место в 2012 году, можно найти здесь. После выпуска FMI 2.0 большинство из этих проблем считается решенными. Я благодарю здесь Christian Bertsch за то, что он Christian Bertsch меня в отношении возможной неверной информации, которую я разместил. В целом, FMI - отличный инструмент, который становится все более важным в отрасли. Его преимущества и инструменты, поддерживающие FMI, можно найти на его веб-сайте.

Мой личный опыт работы в качестве соавтора Physiolobrary и в настоящее время Physiolibrary.models.

  1. В нашей группе мы пришли к выводу, что комбинация акаузального и сигнально-ориентированного подходов уместна в Modelica. Акаузальный подход подходит для объединения компонентов, моделирующих основные физические законы моделируемой системы - такие компоненты более пригодны для повторного использования. Сигнальный подход подходит для добавления фирменных компонентов в смоделированную систему, в которой причинная связь известна или предположена (контроль частоты сердечных сокращений и т. Д.). Мы обсуждали детали на https://doi.org/10.1016/j.compbiomed.2014.08.025 или недавно на https://doi.org/10.1016/j.bbe.2017.08.001

  2. Одним из недостатков Simscape является наличие библиотек или их отсутствие. Например, для моделирования сердечно-сосудистой системы может потребоваться аналогия с электрической цепью. Хотя это упрощение обычно принимается в исследованиях или в промышленности, вы можете потерять точность и увеличить вероятность ошибок. Эта проблема была и в Modelica до тех пор, пока не появилась доступная библиотека Physiolibrary.

  3. Тем не менее, гораздо проще воспроизвести (переопределить) модель Simscape в Modelica, как мы это делали, например, на бумаге http://mj.mefanet.cz/mj-04140914 чем любую блочно-ориентированную модель - неважно, в Modelica или Simulink.

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