exponenta event banner

Выбор оптимального решателя для физического моделирования

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

Моделирование с переменным шагом времени

При первом создании модели по умолчанию используется решатель Simulink ® VariableStepAuto. Автоматический решатель выбирает подходящий решатель, как описано в разделе Выбор решателя с помощью автоматического решателя. Для Simscape™ моделей выбор автоматического решателя зависит от типа модели:

  • Для новых моделей, созданных в R2021a и за его пределами, если модель содержит блоки Simscape и дифференциальные алгебраические уравнения (DAE), автоматический решатель выбирает daessc. Для таких моделей, созданных до R2021a, автоматический решатель использует ode23t. Сведения об обновлении существующих моделей для использования daesscсм. Обновление моделей для использования решателя daessc.

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

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

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

daessc решатель Simulink с переменным шагом разработан специально для физического моделирования. Дополнительные сведения см. в разделе Использование решателя daessc.

Другие решатели с переменным шагом, рекомендуемые для типичной модели Simscape: ode15s и ode23t. Из этих двух решателей:

  • ode15s решатель более стабилен, но имеет тенденцию к вытеснению колебаний.

  • ode23t решатель лучше фиксирует колебания, но менее стабилен.

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

Моделирование с фиксированным шагом времени - локальные и глобальные решатели с фиксированным шагом

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

  • Обратный Эйлер имеет тенденцию к гашению колебаний, но более стабилен, особенно если увеличить временной шаг.

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

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

Независимо от выбранного локального решателя всегда применяется метод обратного эйлера:

  • Прямо в начале моделирования.

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

Переключение на дискретные состояния и решатели

  • При переключении физической сети на локальный решатель глобальный решатель рассматривает эту сеть как имеющую дискретные состояния.

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

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

Примечание

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

Для максимальной точности с фиксированным моделированием

Если точность решения является единственным требованием, используйте глобальный решатель Simulink с фиксированным шагом ode14x без локальных решателей. Этот неявный решатель является лучшим глобальным выбором с фиксированным шагом для физических систем. Хотя он более точен, чем локальные решатели Simscape для большинства моделей, ode14x может быть вычислительно более интенсивным и медленным, когда вы используете его самостоятельно, чем когда вы используете его в сочетании с локальными решателями.

В этом решателе необходимо ограничить число глобальных неявных итераций на шаг времени. Управляйте этими итерациями с помощью параметра Итерации Number Newton на панели Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters).

Моделирование с фиксированными затратами

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

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

Совет

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

Устранение неполадок и повышение производительности решателя

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

  • Недостаточно точна или выглядит нефизически.

  • Показывает разрывы в значениях состояния.

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

Любой из этих шагов повышает точность, но делает моделирование более медленным.

Для локальных решателей

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

С помощью решателя Trapezoidal Rule колебательный «звон» может стать проблемой по мере увеличения временного шага. Для выполнения большего шага времени в локальном решателе рассмотрите возможность переключения в режим обратного эйлера.

Для систем ОДУ

В некоторых случаях модель сводится к системе ОДУ без зависимых алгебраических переменных. (См. раздел Как модели Simscape представляют физические системы.) Если это так, можно использовать любой глобальный решатель Simulink без особых соображений физического моделирования. Явный решатель часто является лучшим выбором в таких ситуациях.

  • При тщательном анализе иногда можно определить, представлена ли модель системой ОДУ.

  • При создании модели Simscape из математического представления с использованием языка Simscape можно непосредственно определить, является ли результирующая система ОДУ.

Для крупных систем

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

Для систем меньшего размера Full обеспечивает более быстрый результат. Для более крупных систем Sparse обычно быстрее.

Пример нескольких локальных решателей со смешанной жесткой системой Nonstiff

В этом примере модель Simscape содержит три физические сети.

  • Две сети (числа 1 и 3) используют локальные решатели, делая эти две сети кажущимися глобальному решателю, как если бы они имели дискретные состояния. Внутри этих сетей все еще имеются непрерывные состояния. Эти сети являются умеренно и очень жесткими, соответственно.

    В одной из этих сетей (номер 1) используется локальный решатель Backward Euler (BE). Другой (номер 3) использует локальный решатель Trapezoidal Rule (TR).

  • Оставшаяся сеть (номер 2) использует глобальный решатель Simulink. Его состояния представляются модели непрерывными. Эта сеть не является жесткой и представляет собой чистый ОДУ. Используйте явный глобальный решатель.

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