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