Решатели с фиксированным шагом решают модель через регулярные интервалы времени от начала до конца моделирования. Размер интервала называется размером шага. Можно указать размер шага или разрешить решателю выбирать размер шага. Обычно меньший размер шага увеличивает точность результатов, но также увеличивает время, необходимое для моделирования системы.
Дискретный решатель с фиксированным шагом вычисляет время следующего этапа моделирования, добавляя фиксированный размер шага к текущему времени. Точность и продолжительность получаемого моделирования зависит от размера шагов, выполняемых при моделировании: чем меньше размер шага, тем более точны результаты, но тем больше времени занимает моделирование. По умолчанию Simulink ® выбирает размер шага или его можно выбрать самостоятельно. При выборе значения по умолчанию autoи если модель имеет дискретное время выборки, то Simulink устанавливает размер шага на фундаментальное время выборки модели. В противном случае, если дискретных скоростей не существует, Simulink устанавливает размер в результате деления разницы между временем начала и временем окончания моделирования на 50.
Непрерывные решатели с фиксированным шагом, как и дискретный решатель с фиксированным шагом, вычисляют следующее время моделирования путем добавления временного шага с фиксированным размером к текущему времени. Для каждого из этих шагов непрерывные решатели используют численное интегрирование для вычисления значений непрерывных состояний для модели. Эти значения вычисляются с использованием непрерывных состояний на предыдущем временном шаге и производных состояний в промежуточных точках (малых шагах) между текущим и предыдущим временным шагом.
Примечание
Simulink использует дискретный решатель с фиксированным шагом для модели, которая не содержит состояний или только дискретных состояний, даже если для модели указан непрерывный решатель с фиксированным шагом.
Simulink предоставляет два типа непрерывных решателей с фиксированным шагом - явные и неявные.

Разница между этими двумя типами заключается в скорости и стабильности. Неявный решатель требует больше вычислений на шаг, чем явный решатель, но является более стабильным. Поэтому неявный решатель с фиксированным шагом, предоставляемый Simulink, является более совершенным в решении жесткой системы, чем решатели с фиксированным шагом. Сравнение явных и неявных решателей см. в разделе Явные и неявные непрерывные решатели.
Явные решатели вычисляют значение состояния на следующем шаге времени как явную функцию текущих значений как состояния, так и производной состояния. Явный решатель с фиксированным шагом математически выражается как:
+h∗Dx (n)
где
x - состояние.
Dx - функция, зависящая от решателя, которая оценивает производную состояния.
h - размер шага.
n указывает текущий временной шаг.
Simulink предоставляет набор постоянных решателей с фиксированным шагом. Решатели отличаются специфическим методом численного интегрирования, который они используют для вычисления производных состояния модели. В этой таблице перечислены каждый решатель и используемый им метод интеграции. В таблице перечислены решатели в порядке вычислительной сложности используемых ими методов интегрирования, от наименее сложных (ode1) наиболее сложным (ode8).
| Решающее устройство | Методика интеграции | Порядок точности |
|---|---|---|
| Метод Эйлера | Сначала |
| Метод Хын | Второй |
| Формула Богацки-Шампина | Треть |
| Формула Рунге-Кутты четвертого порядка (RK4) | Четвертый |
| Формула Дорманда-Принса (RK5) | Пятый |
| Формула Дорманда-Принса RK8 (7) | Восьмой |
Ни один из этих решателей не имеет механизма управления ошибками. Поэтому точность и длительность моделирования напрямую зависят от размера шагов, выполняемых решателем. По мере уменьшения размера шага результаты становятся более точными, но моделирование занимает больше времени. Кроме того, для любого заданного размера шага чем выше порядок решателя, тем точнее результаты моделирования.
Если для модели задан тип решателя с фиксированным шагом, то по умолчанию Simulink выбирает FixedStepAuto решатель. Затем автоматический решатель выбирает соответствующий решатель с фиксированным шагом, который может обрабатывать как непрерывные, так и дискретные состояния с умеренными вычислительными усилиями. Как и в случае с дискретным решателем, если модель имеет дискретные скорости (время выборки), то Simulink по умолчанию устанавливает размер шага на базовое время выборки модели. Если модель не имеет дискретных скоростей, Simulink автоматически использует результат деления общей продолжительности моделирования на 50. Следовательно, решатель делает шаг в каждый момент моделирования, в который Simulink должен обновлять дискретные состояния модели с заданной частотой дискретизации. Однако это не гарантирует, что решатель по умолчанию точно вычислит непрерывные состояния модели. Поэтому может потребоваться выбрать другой решатель, другой фиксированный размер шага или и то, и другое для достижения приемлемой точности и приемлемого времени моделирования.
Неявный решатель вычисляет состояние на следующем шаге времени как неявную функцию состояния на текущем шаге времени и производной состояния на следующем шаге времени, как описано следующим выражением.
(n + 1) = 0
Simulink предоставляет один неявный решатель с фиксированным шагом: ode14x. Этот решатель использует комбинацию метода Ньютона и экстраполяции из текущего значения для вычисления значения состояния на следующем шаге времени. Можно указать количество итераций метода Ньютона и порядок экстраполяции, используемый решателем для вычисления следующего значения состояния модели. См. раздел Фиксированный размер шага (время основной выборки). Чем больше итераций и выше выбранный порядок экстраполяции, тем больше точность. Однако одновременно создается большая вычислительная нагрузка на шаг.
Выбор решателя с фиксированным шагом