Выбор решателя

Чтобы симулировать динамическую систему, вы вычисляете ее состояния в последовательных временных шагах в течение заданного временного интервала. В этом расчете используется информация, предоставленная моделью системы. Time steps временные интервалы, когда расчет происходит. Размер этого временного интервала называется step size. Процесс вычисления состояний модели таким образом известен solving как модель. Ни один метод решения модели не применяется ко всем системам. Simulink® предоставляет набор программ, называемых solvers. Каждый решатель воплощает конкретный подход к решению модели.

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

Математики разработали большое разнообразие методов численного интегрирования для решения обыкновенных дифференциальных уравнений (ОДУ), которые представляют непрерывные состояния динамических систем. Предусмотрен обширный набор непрерывных решателей с фиксированным шагом и с переменным шагом, каждый из которых реализует определенный метод решения ОДУ (см. «Сравнение решателей»). Выберите решатели на Solver панели параметров конфигурации модели.

Все решатели, предоставленные MATLAB® и Simulink следует аналогичному соглашению об именовании: ode, далее указываются две или три цифры, указывающие порядки решателя. Некоторые решатели могут решить жесткие дифференциальные уравнения, и методы, используемые ими, выражаются s, t, или tb суффиксы.

Критерии выбора решателя

Соответствующий решатель для симуляции модели зависит от этих характеристик:

  • Динамика системы

  • Стабильность решения

  • Расчет

  • Робастность решателя

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

Тип размера шага расчета

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

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

Моделирование состояний

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

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

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

Выберите решатель для вашей модели следующими способами:

  • Используйте автоматический решатель. Новые модели имеют выбор решателя, установленный на автоматический решатель по умолчанию. Решатель Auto рекомендует решатель с фиксированным шагом или переменным шагом для вашей модели, а также максимальный размер шага. Для получения дополнительной информации см. «Выбор решателя с использованием автоматического решателя».

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

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

Примечание

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

Этот график предоставляет широкую классификацию решателей в библиотеке Simulink.

Чтобы адаптировать выбранный решатель к модели, смотрите Проверить и Улучшить Точность Симуляции.

В идеале выбранный вами решатель должен:

  • Решите модель успешно.

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

  • Решить модель за разумную длительность.

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

Библиотека Simulink предоставляет несколько решателей, все они могут работать с алгебраическим решателем цикла. Для получения дополнительной информации см. «Как работает Алгебраический Решатель Цикла».

На Solver панели параметров конфигурации модели библиотека решателей Simulink разделена на два основных типа. См. «Решатели типа» Fixed-Step Versus Variable-Step «».

Для других способов сравнения решателей смотрите:

Похожие примеры

Подробнее о