exponenta event banner

Сравнить решатели

Динамическая система моделируется путем вычисления ее состояний на последовательных временных шагах в течение заданного промежутка времени с использованием информации, предоставляемой моделью. Процесс вычисления последовательных состояний системы на основе ее модели известен как решение модели. Ни одного метода решения модели не достаточно для всех систем. Соответственно, Simulink ® предоставляет набор программ, известных как решатели, каждая из которых воплощает конкретный подход к решению модели. Диалоговое окно Параметры конфигурации (Configuration Parameters) позволяет выбрать решатель, наиболее подходящий для модели.

Решатели с фиксированным шагом и переменным шагом

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

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

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

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

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

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

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

Модель генерирует выходы с двумя различными скоростями: каждые 0,5 с и каждые 0,75 с. Для захвата обоих выходов решатель с фиксированным шагом должен делать шаг времени каждые 0,25 с (основное время выборки для модели).

[0.0 0.25 0.5 0.75 1.0 1.25 1.5 ...]

В отличие от этого решатель с переменным шагом должен выполнять шаг только тогда, когда модель генерирует выходные данные.

[0.0 0.5 0.75 1.0 1.5 ...]

Эта схема значительно сокращает количество временных шагов, необходимых для моделирования модели.

Непрерывные и дискретные решатели

Simulink обеспечивает как непрерывные, так и дискретные решатели.

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

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

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

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

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

Примечание

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

Явные и неявные непрерывные решатели

Вы представляете явную систему уравнением

x˙=f (x)

Для любого заданного значения x можно вычислить , подставив x в f (x) и вычислив уравнение.

Уравнения формы

F (x˙,x) = 0

считаются неявными. Для любого заданного значения x необходимо решить это уравнение, чтобы вычислить .

Линейно неявная система может быть представлена уравнением

M (x). x˙=f (x)

M (x) называется массовой матрицей, а f (x) - принудительной функцией. Система становится линейно неявной при использовании блоков физического моделирования в модели.

Хотя для решения всех этих систем можно применить неявный или явный непрерывный решатель, неявные решатели разработаны специально для решения жестких задач. Явные решатели решают нестифные задачи. Обычная задача дифференциального уравнения считается жесткой, если желаемое решение изменяется медленно, но есть более близкие решения, которые быстро изменяются. Численный метод должен затем предпринять небольшие временные шаги для решения системы. Жесткость - это проблема эффективности. Чем жестче система, тем больше времени требуется явному решателю для выполнения вычислений. Жесткая система имеет как медленно, так и быстро изменяющуюся непрерывную динамику.

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

Одношаговые и многошаговые решатели непрерывного действия

Библиотека решателей Simulink предоставляет как одношаговые, так и многошаговые решатели. Одношаговые решатели оценивают, используя раствор в непосредственно предшествующую точку времени, и значения производной в нескольких точках между tn и tn-1. Эти пункты являются незначительными шагами.

Многоступенчатые решатели используют результаты на нескольких предыдущих шагах времени для вычисления текущего решения. Simulink предоставляет один явный многоступенчатый решатель, ode113и один неявный многоступенчатый решатель, ode15s. Оба являются решателями с переменным шагом.

Решатели непрерывного действия одного порядка и переменного порядка

Это различие основано на количестве порядков, которые решатель использует для решения системы уравнений. Два решателя переменного порядка, ode15s и ode113, являются частью библиотеки решателей. Они используют несколько порядков для решения системы уравнений. В частности, неявный, переменный шаг ode15s решатель использует уравнения от первого до пятого порядка, в то время как явный, переменный шаг ode113 решатель использует уравнения первого порядка - тринадцатого порядка. Для ode15sможно ограничить наивысший порядок, применяемый с помощью параметра «Максимальный порядок». Дополнительные сведения см. в разделе Максимальный заказ.

См. также

| |