Важные концепции и варианты в физической симуляции

В этом разделе описываются расширенные концепции и компромиссы, которые вы можете принять во внимание, когда вы конфигурируете и тестируете решатели и другие настройки симуляции для вашей Simscape™ модели. Для получения сводных данных рекомендуемых настроек смотрите Сделать Оптимальный Выбор Решателя для Физических Симуляций. Для получения справочной информации см. «Как модели Simscape представляют физические системы» и «Как работает симуляция Simscape».

Решатели с переменным шагом и с фиксированным шагом

Решатели с переменным шагом являются обычным выбором для проекта, прототипирования и исследовательской симуляции, а также для точного определения местоположения событий во время симуляции. Они не полезны для симуляции в реальном времени и могут быть дорогими, если есть много событий.

Решатель с переменным шагом автоматически настраивает размер шага, когда он движется вперед во времени, чтобы адаптироваться к тому, насколько хорошо он управляет ошибкой решения. Вы управляете точностью и скоростью решения переменного шага, настраивая допуск решателя. Со многими решателями переменного шага можно также ограничить минимальный и максимальный размер временного шага.

Решатели с фиксированным шагом рекомендуются или требуются, если вы хотите провести сравнение эффективности между платформами и операционными системами, сгенерировать кодовую версию вашей модели и связать или исправить затраты на симуляцию. Типичным приложением является симуляция в реальном времени. Для получения дополнительной информации смотрите Симуляция в реальном времени.

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

Явные и неявные решатели

Степень жесткости и наличие алгебраических ограничений в вашей модели влияют на выбор между явным или неявным решателем. Явные и неявные решатели используют различные числовые методы для симуляции системы.

  • Если система является нежесткой системой ОДУ, выберите явный решатель. Явные решатели требуют меньше вычислительных усилий, чем неявные решатели, если другие характеристики симуляции фиксированы.

    Чтобы найти решение для каждого временного шага, явный решатель использует формулу, основанную на локальном градиенте системы ODE.

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

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

  • Если система содержит ДАУ, даже если она не жесткая, используйте неявный решатель. Такие решатели предназначены для одновременного решения алгебраических ограничений и интегрирования дифференциальных уравнений.

Полная и линейная алгебра для разреженных матриц

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

Обнаружение событий и местоположение

События в большинстве случаев происходят между моделируемыми временными шагами.

  • Решатели с фиксированным шагом обнаруживают события после «перехода» по ним, но не могут адаптивно обнаружить события во времени. Это может привести к большим неточностям или отказу сходиться в решении.

  • Решатели с переменным шагом могут как обнаруживать события, так и оценивать моменты, когда они происходят, адаптируя время и длину временных шагов.

Совет

Чтобы оценить время событий или быстрых изменений в вашей симуляции, используйте решатель с переменным шагом.

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

Неограниченные, ограниченные и фиксированные Симуляции

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

Стоимость симуляции с переменным шагом в реальном времени потенциально неограниченна. Решатель может взять неопределенное количество реального времени, чтобы решить систему за конечное моделируемое время, потому что количество и размер временных шагов адаптированы к системе. Можно сконфигурировать решатель с фиксированным шагом, чтобы взять ограниченное количество реального времени для завершения симуляции, хотя точное количество реального времени все еще может быть трудно предсказать перед симуляцией. Даже решатель с фиксированным шагом может сделать несколько итераций, чтобы найти решение на каждом временном шаге. Такие итерации переменны и обычно не ограничены в количестве; решатель итерирует столько, сколько ему нужно.

Фиксирование времени выполнения предполагает симуляцию с фиксированной стоимостью, которая одновременно фиксирует временной шаг и ограничивает количество итераций на шаг. Симуляция с фиксированной стоимостью препятствует переполнению выполнения, когда время выполнения превышает шаг расчета симуляции. Ограниченное время выполнения без известных фиксированных затрат может все еще вызвать переполнение некоторых шагов расчета.

Фактическое количество вычислительных усилий, требуемых решателем, основано также на ряде других факторов, включая сложность модели и компьютерный процессор. Для получения дополнительной информации смотрите Симуляция в реальном времени.

Глобальные и локальные решатели

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

Такие мультисольверные симуляции должны координировать отдельные последовательности временных шагов каждого решателя и каждой подсистемы так, чтобы различные решатели могли передавать обновления симуляции друг другу на некоторых или всех общих временных шагах.