В этом разделе описываются усовершенствованные концепции и компромиссы, которые вы можете хотеть рассмотреть, как вы конфигурируете и тестируете решатели и другие настройки симуляции для вашей модели Simscape™. Для сводных данных рекомендуемых настроек смотрите Делающий Оптимальный Выбор Решателя для Физической Симуляции. Для справочной информации консультируйтесь, Как Модели Simscape Представляют Физические системы и Как Моделирование Simscape.
Решатели переменного шага являются обычным выбором для проекта, прототипированием и исследовательской симуляцией, и точно определять местоположение событий в процессе моделирования. Они не являются полезными для симуляции в реальном времени и могут быть дорогостоящими, если существует много событий.
Решатель переменного шага автоматически настраивает свой размер шага, когда он продвигается вовремя, чтобы адаптироваться к тому, как хорошо он управляет ошибкой решения. Вы управляете точностью и скоростью решения переменного шага путем корректировки допуска решателя. Со многими решателями переменного шага можно также ограничить минимальный и максимальный размер временного шага.
Решатели фиксированного шага рекомендуются или требуются, если вы хотите сделать сравнения производительности через платформы и операционные системы, сгенерировать версию кода вашей модели, и к связанному или зафиксировать стоимость симуляции. Типовое приложение является симуляцией в реальном времени. Для получения дополнительной информации смотрите Симуляцию В реальном времени.
С решателем фиксированного шага вы задаете размер временного шага, чтобы управлять точностью и скоростью вашей симуляции. Решатели фиксированного шага не адаптируются, чтобы улучшить точность или определить местоположение событий. Эти ограничения могут привести к значительным погрешностям симуляции.
Степень жесткости и присутствие алгебраических ограничений в вашей модели влияют на выбор между явным или неявным решателем. Явные и неявные решатели используют различные численные методы симулировать систему.
Если система является нежесткой системой ОДУ, выберите явный решатель. Явные решатели требуют меньшего вычислительного усилия, чем неявные решатели, если другие характеристики симуляции фиксируются.
Чтобы найти решение для каждого временного шага, явный решатель использует формулу на основе локального градиента системы ОДУ.
Если система жестка, используйте неявный решатель. Хотя явный решатель может потребовать меньшего вычислительного усилия для жестких проблем, неявный решатель более точен и часто важен, чтобы получить решение. Неявные решатели требуют итераций на шаг в симулированных временных шагах. С некоторыми неявными решателями можно ограничить или зафиксировать эти итерации.
Неявный решатель запускается с решения на текущем шаге и итеративно решает для решения на следующем временном шаге с алгебраическим решателем. Неявный алгоритм действительно больше работает на шаг симуляции, но может взять меньше, большие шаги.
Если система содержит ДАУ, даже если это не жестко, используйте неявный решатель. Такие решатели спроектированы, чтобы одновременно решить алгебраические ограничения и интегрировать дифференциальные уравнения.
Когда вы симулируете систему больше чем с одним состоянием, решатель управляет математической системой с матрицами. Для большого количества состояний методы линейной алгебры для разреженных матриц применились к большим матрицам, может сделать симуляцию более эффективной.
События, в большинстве случаев, находятся между симулированными временными шагами.
Решатели фиксированного шага обнаруживают события после “переступания” через них, но не могут адаптивно определить местоположение событий вовремя. Это может привести к большим погрешностям или отказу сходиться на решении.
Решатели переменного шага могут и обнаружить события и оценить моменты, когда они происходят путем адаптации синхронизации и длины временных шагов.
Чтобы оценить синхронизацию событий или быстрых изменений в вашей симуляции, используйте решатель переменного шага.
Если ваша симуляция должна часто адаптироваться к событиям или быстрым изменениям путем изменения ее размера шага, очень или все преимущество неявных решателей по явным решателям потеряно.
В определенных случаях, таких как симуляция в реальном времени, необходимо симулировать со временем выполнения, которое не только ограничено, но практически зафиксировано к предсказуемому значению. Фиксация времени выполнения может также улучшать производительность при симуляции частых событий.
Стоимость в реальном времени симуляции переменного шага потенциально неограниченна. Решатель может взять неопределенную сумму реального времени, чтобы решить систему за конечное симулированное время, потому что номер и размер временных шагов адаптируются к системе. Можно сконфигурировать решатель фиксированного шага, чтобы взять ограниченную сумму реального времени, чтобы завершить симуляцию, несмотря на то, что точная сумма оперативной силы все еще затруднить, чтобы предсказать перед симуляцией. Даже решатель фиксированного шага может взять несколько итераций, чтобы найти решение на каждом временном шаге. Такие итерации являются переменными и не обычно ограничиваемые в номере; решатель выполняет итерации столько, сколько он должен.
Фиксация времени выполнения подразумевает симуляцию фиксированных затрат, которая и фиксирует временной шаг и ограничивает количество итераций на шаг. Симуляция фиксированных затрат предотвращает переполнения выполнения, когда время выполнения более длительно, чем шаг расчета симуляции. Ограниченное время выполнения без известных фиксированных затрат может все еще заставить некоторые шаги превышать шаг расчета.
Фактическое количество вычислительного усилия, требуемого решателем, основано на многих других факторах также, включая сложность модели и процессор компьютера. Для получения дополнительной информации смотрите Симуляцию В реальном времени.
Можно использовать другие решатели на различных частях системы. Например, вы можете хотеть еще использовать неявные решатели на жестких частях системы и явные решатели везде. Такие локальные решатели делают симуляцию более эффективной и уменьшают вычислительную стоимость.
Такие симуляции мультирешателя должны скоординировать отдельные последовательности временных шагов каждого решателя и каждой подсистемы так, чтобы различные решатели могли передать обновления симуляции друг друга на некоторых или всех разделяемых временных шагах.