Для ключевых концепций симуляции, чтобы рассмотреть прежде, чем сделать этот выбор, смотрите Важные Концепции и Выбор в Физической Симуляции.
Когда вы сначала создаете модель, Simulink по умолчанию® решателем является VariableStepAuto
. Автоматический решатель выбирает, подходящий решатель как описано в Выбирают Solver Using Auto Solver. Для моделей Simscape™ автоматический выбор решателя зависит от типа модели:
Для новых моделей, созданных в R2021a и вне, если ваша модель содержит блоки Simscape и Дифференциальные Алгебраические уравнения (ДАУ), автоматический решатель выбирает daessc
. Для таких моделей, созданных до R2021a, автоматический решатель использует ode23t
. Для получения информации о том, как обновить ваши существующие модели, чтобы использовать daessc
, смотрите Обновление Ваших Моделей, чтобы Использовать daessc Решатель.
Если система может уменьшаться до обыкновенного дифференциального уравнения (ODE), и модель жестка, автоматический решатель выбирает ode15s
.
Если система может уменьшаться до обыкновенного дифференциального уравнения (ODE), и модель является нежесткой, автоматический решатель выбирает явный решатель, ode45
.
Вместо того, чтобы использовать автоматический выбор решателя, можно явным образом выбрать решатель для модели. Чтобы выбрать решатель, выполните процедуру, похожую на процедуру в Изменении Начальных установок.
daessc
переменный шаг решатель Simulink специально разработан для физического моделирования. Для получения дополнительной информации смотрите Используя daessc Решатель.
Другими решателями переменного шага, рекомендуемыми для типичной модели Simscape, является ode15s
и ode23t
. Из этих двух решателей:
ode15s
решатель более устойчив, но имеет тенденцию ослаблять колебания.
ode23t
решатель получает колебания лучше, но менее устойчив.
С моделями Simscape эти решатели решают дифференциальные и алгебраические части физической модели одновременно, делая симуляцию более эффективной.
В модели Simscape рекомендуется, чтобы вы реализовали решатели фиксированного шага, продолжив использовать решатель шага глобальной переменной и переключив физические сети в вашей модели к локальным решателям фиксированного шага через каждый блок сети Solver Configuration. Локальный выбор решателя:
Обратный Эйлер склонен ослаблять колебания, но более устойчив, особенно если вы увеличиваете временной шаг.
Решатель Метода трапеций получает колебания лучше, но менее устойчив.
Решатель Разделения позволяет вам увеличить скорость симуляции в реальном времени путем разделения целой системы уравнений, соответствующей сети Simscape в каскад меньших систем уравнения. Не все сети могут быть разделены. Однако, когда система может быть разделена, этот решатель предоставляет значительному увеличению в режиме реального времени скорость симуляции. Для получения дополнительной информации смотрите Понимание Как работы Решателя Разделения и Скорость симуляции Увеличения Используя Решатель Разделения.
Независимо от которого локального решателя вы выбираете, Обратный Метод Эйлера всегда применяется:
Прямо в начале симуляции.
Прямо после мгновенного изменения, когда соответствующий блок претерпевает внутреннее дискретное изменение. Такие изменения включают блокировку муфт и разблокирование, открытие приводов клапана и закрытие и переключение блока PS Asynchronous Sample & Hold.
Если вы переключаете физическую сеть на локальный решатель, глобальные обработки решателя что сеть как имеющий дискретные состояния.
Если другие физические сети в вашей модели не используют локальные решатели, или если части не-Simscape вашей модели имеют непрерывные состояния, то необходимо использовать непрерывный глобальный решатель.
Если все физические сети в вашем использовании модели, локальные решатели и все другие части вашей модели имеют только дискретные состояния, то глобальный решатель эффективно видит только дискретные состояния. В этом случае дискретный, глобальный решатель фиксированного шага рекомендуется. Если вы делаете попытку симуляции фиксированных затрат с дискретными состояниями, необходимо использовать дискретный, глобальный решатель фиксированного шага.
Примечание
Входная фильтрация может ввести непрерывные состояния. Если вы используете комбинацию дискретных и локальных решателей и получаете сообщение об ошибке о модели, содержащей непрерывные состояния, проверяйте блоки Simulink-PS Converter в модель и выключите входную фильтрацию в случае необходимости. Для получения дополнительной информации смотрите Входные сигналы Фильтрации и Обеспечение Производных Времени.
Если точность решения является вашим одним переопределяющим требованием, используйте глобальный решатель фиксированного шага Simulink ode14x без локальных решателей. Этот неявный решатель является лучшим глобальным выбором фиксированного шага для физических систем. В то время как это более точно, чем Simscape, локальные решатели для большинства моделей, ode14x могут быть в вычислительном отношении более интенсивными и медленнее, когда вы используете его отдельно, чем это - когда вы используете его в сочетании с локальными решателями.
В этом решателе необходимо ограничить количество глобальных неявных итераций на временной шаг. Управляйте этими итерациями параметром Number Newton’s iterations в панели Solver диалогового окна Configuration Parameters.
Много моделей Simscape должны выполнить итерации многократно в одном временном шаге, чтобы найти решение. Если вы хотите зафиксировать стоимость симуляции на временной шаг, необходимо ограничить количество этих итераций, независимо от того, используете ли вы локальный решатель или глобальный решатель как ode14x. Для получения дополнительной информации смотрите Неограниченную, Ограниченную Симуляцию Симуляции и Фиксированных затрат, и Фиксированных затрат для Жизнеспособности В реальном времени.
Чтобы ограничить итерации, откройте блок Solver Configuration каждой физической сети. Выберите Use fixed-cost runtime consistency iterations и установите пределы для количества нелинейных и итераций режима на временной шаг. Можно определить оптимальное количество нелинейных итераций с помощью simscape.getLocalSolverFixedCostInfo
функция.
Совет
Симуляция фиксированных затрат с решателями переменного шага не возможна в большинстве симуляций. Делайте попытку симуляции фиксированных затрат с решателем фиксированного шага только и избегайте использования итераций фиксированных затрат с решателями переменного шага.
Рассмотрите основной компромисс скорости по сравнению с точностью и устойчивостью. Больший временной шаг или допуск приводят к более быстрой симуляции, но также и менее точной и менее устойчивой симуляции. Если система претерпевает внезапные или быстрые изменения, больший допуск или размер шага могут вызвать существенные ошибки. Рассмотрите сжатие допуска или размера шага если ваша симуляция:
Не достаточно точно или выглядит нефизическим.
Разрывы приложений в значениях состояния.
Достигает минимального размера шага, позволенного без схождения, обычно знак, что одно или несколько событий или быстрых изменений происходят во временном шаге.
Любой или все эти шаги увеличивают точность, но делают симуляцию запускаемой более медленно.
Модели с трением или жесткими упорами особенно затрудняют для локальных решателей, и не могут работать или могут потребовать очень маленького временного шага.
С решателем Метода трапеций колебательный “вызов” может стать большим количеством проблемы, когда временной шаг увеличен. Для большего временного шага в локальном решателе рассмотрите переключение на Обратного Эйлера.
В определенных случаях ваша модель уменьшает до системы ОДУ без зависимых алгебраических переменных. (См., Как Модели Simscape Представляют Физические системы.) Если так, можно использовать любой глобальный решатель Simulink без специальных физических факторов моделирования. Явный решатель часто является лучшим выбором в таких ситуациях.
Посредством тщательного анализа можно иногда определять, представлена ли модель системой ОДУ.
Если вы создаете модель Simscape из математического представления с помощью языка Simscape, можно определить непосредственно, если получившаяся система является ОДУ.
В зависимости от количества системных состояний можно симулировать более эффективно, если вы переключаете значение установки Linear Algebra в блоке Solver Configuration.
Для меньших систем, Full
обеспечивает более быстрые результаты. Для больших систем, Sparse
обычно быстрее.
В этом примере модель Simscape содержит три физических сети.
Две сети (числа 1 и 3) используют локальные решатели, заставляя эти две сети появиться к глобальному решателю, как будто у них были дискретные состояния. Внутренне, эти сети все еще имеют непрерывные состояния. Эти сети умеренно и очень жестки, соответственно.
Одна из этих сетей (номер 1) использует Обратного Эйлера (BE) локальный решатель. Другой (номер 3) использует Метод трапеций (TR) локальный решатель.
Остающаяся сеть (номер 2) использует глобальный решатель Simulink. Его состояния появляются к модели как непрерывная. Эта сеть не жестка и является чистым ОДУ. Используйте явный глобальный решатель.
Поскольку по крайней мере одна сеть появляется к модели как непрерывная, необходимо использовать непрерывный решатель. Однако, если вы удаляете сеть 2, и если модель не содержит непрерывных состояний Simulink, Simulink автоматически переключается на дискретный глобальный решатель.