Выберите решатель

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

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

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

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

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

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

  • Системная динамика

  • Устойчивость решения

  • Скорость расчета

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

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

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

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

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

Состояния модели

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

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

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

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

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

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

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

Примечание

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

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

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

Идеально, решатель, который вы выбираете, должен:

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

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

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

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

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

В панели Solver параметров конфигурации модели Библиотека Simulink решателей разделена на два главных типа. Смотрите Фиксированный Шаг По сравнению с Решателями Переменного Шага.

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

Связанные примеры

Больше о