Выберите решатель, который будет использоваться для вычисления состояний модели во время моделирования или генерации кода.
Категория: Решатель
Выберите один из следующих типов:
Настройка по умолчанию для новых моделей: VariableStepAuto.
По умолчанию:
FixedStepAuto
В общем случае, все решатели с фиксированным шагом, за исключением ode 14x рассчитать следующий шаг как:
X (n + 1) = X (n) + h dX (n)
где 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 - это решатель типа Обратный Эйлер, который использует фиксированное число итераций Ньютона и несет только фиксированную стоимость. Вы можете использовать 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), также известные как метод Gear.
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)Использует формулу интегрирования фиксированного шага N-го порядка для вычисления состояния модели как явной функции текущего значения состояния и производных состояний, аппроксимированных в промежуточных точках.
В то время как решатель сам по себе является решателем с фиксированным шагом, 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) решатели с фиксированным шагом включают следующие параметры:
Фиксированный размер шага (основное время выборки)
Периодическое ограничение времени выборки
Рассматривать каждую дискретную скорость как отдельную задачу
Автоматическая обработка изменения скорости передачи данных
Более высокое значение приоритета указывает на более высокий приоритет задачи
Выбор odeN (fixed step with zero crossings) решатель переменных шагов включает следующие параметры:
Максимальный размер шага
Метод интеграции
Выбор ode14x (extrapolation) включает следующие параметры:
Фиксированный размер шага (основное время выборки)
Порядок экстраполяции
Число итераций Ньютона
Периодическое ограничение времени выборки
Рассматривать каждую дискретную скорость как отдельную задачу
Автоматическая обработка изменения скорости передачи данных
Более высокое значение приоритета указывает на более высокий приоритет задачи
Выбор ode1be (Backward Euler) включает следующие параметры:
Фиксированный размер шага (основное время выборки)
Число итераций Ньютона
Периодическое ограничение времени выборки
Рассматривать каждую дискретную скорость как отдельную задачу
Автоматическая обработка изменения скорости передачи данных
Более высокое значение приоритета указывает на более высокий приоритет задачи
Выбор Discrete (no continuous states) решатель переменных шагов включает следующие параметры:
Максимальный размер шага
Автоматическая обработка изменения скорости передачи данных
Более высокое значение приоритета указывает на более высокий приоритет задачи
Контроль пересечения нуля
Допуск по времени
Количество последовательных нулевых пересечений
Алгоритм
Выбор ode45 (Dormand-Prince), ode23 (Bogacki-Shampine), ode113 (Adams), или ode23s (stiff/Mod. Rosenbrock) включает следующие параметры:
Максимальный размер шага
Минимальный размер шага
Начальный размер шага
Относительный допуск
Абсолютный допуск
Сохранение формы
Количество последовательных минимальных шагов
Автоматическая обработка изменения скорости передачи данных
Более высокое значение приоритета указывает на более высокий приоритет задачи
Контроль пересечения нуля
Допуск по времени
Количество последовательных нулевых пересечений
Алгоритм
Выбор ode15s (stiff/NDF), ode23t (Mod. stiff/Trapezoidal), или ode23tb (stiff/TR-BDF2) включает следующие параметры:
Максимальный размер шага
Минимальный размер шага
Начальный размер шага
Метод сброса решателя
Количество последовательных минимальных шагов
Относительный допуск
Абсолютный допуск
Сохранение формы
Максимальный заказ
Автоматическая обработка изменения скорости передачи данных
Более высокое значение приоритета указывает на более высокий приоритет задачи
Контроль пересечения нуля
Допуск по времени
Количество последовательных нулевых пересечений
Алгоритм
Параметр: SolverName или Solver |
Значение: 'VariableStepAuto' | 'VariableStepDiscrete' | 'ode45' | 'ode23' | 'ode113' | 'ode15s' | 'ode23s' | 'ode23t' | 'ode23tb' | 'daessc' | 'FixedStepAuto' | 'FixedStepDiscrete' |'ode8'| 'ode5' | 'ode4' | 'ode3' | 'ode2' | 'ode1' | 'ode14x' |
По умолчанию:
'VariableStepAuto |