Решатель

Описание

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

Category: решатель

Настройки

Выберите из следующих типов:

Настройка по умолчанию для новых моделей VariableStepAuto.

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

По умолчанию: FixedStepAuto

В целом все решатели с фиксированным шагом, кроме ode 14x вычислите следующий шаг как:

X (n +1) = X (<reservedrangesplaceholder3>) + <reservedrangesplaceholder2> <reservedrangesplaceholder1> (<reservedrangesplaceholder0>)

где X - состояние, h - размер шага, а dX - производная состояния. dX (n) вычисляется конкретным алгоритмом с использованием одной или нескольких производных вычислений в зависимости от порядка метода.

auto

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

ode3 (Bogacki-Shampine)

Вычисляет состояние модели на следующем временном шаге как явную функцию от текущего значения состояния и производных состояния, используя метод интегрирования формулы Богацки-Шампайна для вычисления производных состояния.

Discrete (no continuous states)

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

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

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

Примечание

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

ode8 (Dormand-Prince RK8(7))

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

ode5 (Dormand-Prince)

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

ode4 (Runge-Kutta)

Использует формулу Рунге-Кутта (RK4) четвертого порядка, чтобы вычислить состояние модели на следующем временном шаге как явную функцию от текущего значения состояния и производных состояния.

ode2 (Heun)

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

ode1 (Euler)

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

ode14x (extrapolation)

Использует комбинацию метода Ньютона и экстраполяции из текущего значения, чтобы вычислить состояние модели на следующем временном шаге, как неявную функцию состояния и производной состояния на следующем временном шаге. В следующем примере X является состоянием, dX является производной состояния, и h является размером шага:

X (n + 1) - X (n) - h dX (n + 1) = 0

Этот решатель требует больше расчеты на шаг, чем явный решатель, но более точно для заданного размера шага.

ode1be (Backward Euler)

Решатель ode1be является решателем типа Backward Euler, который использует фиксированное количество итераций Ньютона и несет только фиксированную стоимость. Можно использовать ode1be решатель как вычислительно недорогая альтернатива ode14x с фиксированным шагом решатель.

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

По умолчанию: VariableStepAuto

auto

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

ode45 (Dormand-Prince)

Вычисляет состояние модели на следующем временном шаге, используя явную Формулу Рунге-Кутта (4,5) ( Модификацию Дорманда-Принца) для численного интегрирования.

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

Использование ode45 как первая попытка для большинства задач.

Discrete (no continuous states)

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

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

ode23 (Bogacki-Shampine)

Вычисляет состояние модели на следующем временном шаге с помощью явной формулы Рунге-Кутты (2,3) (пара Богацки-Шампайна) для численного интегрирования.

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

ode23 эффективнее, чем ode45 при допусках на сырую нефть и при наличии мягкой жесткости.

ode113 (Adams)

Вычисляет состояние модели на следующем временном шаге с помощью метода численного интегрирования Adams-Bashforth-Moulton PECE переменного порядка.

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

ode113 может быть более эффективным, чем ode45 при строгих допусках.

ode15s (stiff/NDF)

Вычисляет состояние модели на следующем временном шаге, используя числовые дифференцирующие формулы (NDF) переменного порядка. Они связаны, но более эффективны, чем формулы дифференцирования назад (BDF), также известный как метод Гира.

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

ode15s эффективен для жестких проблем. Попробуйте этот решатель, если ode45 не работает или неэффективен.

ode23s (stiff/Mod. Rosenbrock)

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

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

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

ode23t (Mod. stiff/Trapezoidal)

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

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

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

ode23tb (stiff/TR-BDF2)

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

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

odeN (fixed step with zero crossings)

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

В то время как сам решатель является решателем фиксированного шага, Simulink® уменьшает размер шага при пересечении нуля для точности.

daessc (Solver for Simscape™)

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

daessc доступна только с продуктами Simscape.

Совет

  • Идентификация оптимального решателя для модели требует экспериментов. Подробное обсуждение см. в разделе Критерии выбора решателя.

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

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

  • Меньший размер шага увеличивает точность, но также увеличивает время симуляции.

  • Степень вычислительной сложности увеличивается для oden, как n увеличивается.

  • Когда вычислительная сложность увеличивается, точность результатов также увеличивается.

Зависимости

Выбор ode1 (Euler), ode2 (Huen), ode 3 (Bogacki-Shampine), ode4 (Runge-Kutta), ode 5 (Dormand-Prince), ode 8 (Dormand Prince RK8(7)) или Discrete (no continuous states) решатели с фиксированным шагом включают следующие параметры:

  • Fixed-step size (fundamental sample time)

  • Periodic sample time constraint

  • Treat each discrete rate as a separate task

  • Automatically handle rate transition for data transfers

  • Higher priority value indicates higher task priority

Выбор odeN (fixed step with zero crossings) решатель с переменным шагом включает следующие параметры:

  • Max step size

  • Integration method

Выбор ode14x (extrapolation) включает следующие параметры:

  • Fixed-step size (fundamental sample time)

  • Extrapolation order

  • Number of Newton's iterations

  • Periodic sample time constraint

  • Treat each discrete rate as a separate task

  • Automatically handle rate transition for data transfers

  • Higher priority value indicates higher task priority

Выбор ode1be (Backward Euler) включает следующие параметры:

  • Fixed-step size (fundamental sample time)

  • Number of Newton's iterations

  • Periodic sample time constraint

  • Treat each discrete rate as a separate task

  • Automatically handle rate transition for data transfers

  • Higher priority value indicates higher task priority

Выбор Discrete (no continuous states) решатель с переменным шагом включает следующие параметры:

  • Max step size

  • Automatically handle rate transition for data transfers

  • Higher priority value indicates higher task priority

  • Zero-crossing control

  • Time tolerance

  • Number of consecutive zero crossings

  • Algorithm

Выбор ode45 (Dormand-Prince), ode23 (Bogacki-Shampine), ode113 (Adams), или ode23s (stiff/Mod. Rosenbrock) включает следующие параметры:

  • Max step size

  • Min step size

  • Initial step size

  • Relative tolerance

  • Absolute tolerance

  • Shape preservation

  • Number of consecutive min steps

  • Automatically handle rate transition for data transfers

  • Higher priority value indicates higher task priority

  • Zero-crossing control

  • Time tolerance

  • Number of consecutive zero crossings

  • Algorithm

Выбор ode15s (stiff/NDF), ode23t (Mod. stiff/Trapezoidal), или ode23tb (stiff/TR-BDF2) включает следующие параметры:

  • Max step size

  • Min step size

  • Initial step size

  • Solver reset method

  • Number of consecutive min steps

  • Relative tolerance

  • Absolute tolerance

  • Shape preservation

  • Maximum order

  • Automatically handle rate transition for data transfers

  • Higher priority value indicates higher task priority

  • Zero-crossing control

  • Time tolerance

  • Number of consecutive zero crossings

  • Algorithm

Информация о командной строке

Параметр: SolverName или Solver
Значение: 'VariableStepAuto' | 'VariableStepDiscrete' | 'ode45' | 'ode23' | 'ode113' | 'ode15s' | 'ode23s' | 'ode23t' | 'ode23tb' | 'daessc' | 'FixedStepAuto' | 'FixedStepDiscrete' |'ode8'| 'ode5' | 'ode4' | 'ode3' | 'ode2' | 'ode1' | 'ode14x'
По умолчанию: 'VariableStepAuto

Похожие темы