Этот пример показывает алгоритмический метод выбора подходящего решателя с фиксированным шагом для вашей модели. Для рабочих процессов симуляции в Simulink®настройка по умолчанию для параметра Solver в параметрах конфигурации модели auto
. Эвристика, используемая Simulink для выбора решателя с переменным шагом, показана на рисунке ниже.
Один из распространенных случаев использования решателя с фиксированным шагом - для рабочих процессов, где вы планируете сгенерировать код из вашей модели и запустить код в системе реального времени.
С помощью решателя с переменным шагом размер шага может варьироваться от шага к шагу, в зависимости от динамики модели. В частности, решатель с переменным шагом увеличивает или уменьшает размер шага, чтобы соответствовать допускам ошибок, которые вы задаете, и как таковые, переменные размеры шага не могут быть сопоставлены с часами реального времени целевой системы.
Любой из решателей с непрерывным фиксированным шагом в продукте Simulink может симулировать модель до любого желаемого уровня точности, учитывая достаточно небольшой размер шага. К сожалению, невозможно или практично принять решение без испытания, комбинации решателя и размера шага, которая даст приемлемые результаты для непрерывных состояний в кратчайшие сроки. Определение наилучшего решателя для конкретной модели обычно требует экспериментов.
Пример модели представляет алгоритм управления полетом для продольного рейса самолета.
Прежде чем вы начнете симуляцию, определите приемлемые допуски ошибок для вашего решателя с переменным шагом. Модель в настоящее время настраивается со значениями по умолчанию абсолютных и относительных погрешностей 1e-6
и 1e-4
соответственно.
Если эти значения приемлемы, продолжите с примером. В противном случае можно изменить их на свои спецификации с помощью параметров конфигурации модели.
Выберите решатель с переменным шагом из списка решателей в выпадающем списке Решатель (Solver) на панели Решатель (Solver) Параметра конфигурации модели (Model Параметры Конфигурации), чтобы симулировать модель. Настройка по умолчанию в Simulink для параметра Solver VariableStepAuto
. Simulink выбирает решатель и максимальный размер шага симуляции на основе содержимого и динамики модели.
Симулируйте модель с помощью auto
решатель или выберите другой решатель. Кроме того, включите параметры Сохранить состояния, Сэкономить время и Сохранить выходы в панели Импорт/Экспорт данных параметров конфигурации модели. Установите формат логгирования для модели равным Dataset
чтобы позволить Данным моделирования Inspector регистрировать сигналы.
Результаты симуляции этого запуска будут обозначены как базовые результаты для этой задачи. Модель содержит 13 сигналов, но этот пример фокусируется только на нескольких сигналах, нанесенных ниже.
Профилируйте модель с помощью Solver Profiler, чтобы найти подходящий размер шага для потенциальных симуляций модели с фиксированным шагом. Смотрите Solver Profiler для получения информации о том, как запустить и использовать инструмент. Для использования в командной строке смотрите solverprofiler.profileModel
.
Обратите внимание на максимальный и средний размеры шага, возвращенные Solver Profiler.
solver: 'ode45' tStart: 0 tStop: 60 absTol: 1.0000e-06 relTol: 1.0000e-04 hMax: 0.1000 hAverage: 0.0447 steps: 1342 profileTime: 0.0665 zcNumber: 0 resetNumber: 600 jacobianNumber: 0 exceptionNumber: 193
Как только вы получите результаты симуляции модели с переменным шагом, симулируйте ее с помощью одного или нескольких решателей с фиксированным шагом. В этом примере модель моделируется с использованием всех нежестких решателей с фиксированным шагом: ode1
, ode2
, ode3
, ode4
, ode5
, и ode8
. Можно также выбрать конкретный решатель из выпадающего списка Решатель (Solver) в Параметрах конфигурации модели (Model Configuration Parameters), чтобы работать с базой переменных шагов.
Факторы по выбору фиксированного размера шага
Оптимальный размер шага для симуляции с фиксированным шагом вашей модели обеспечивает баланс между скоростью и точностью, учитывая такие ограничения, как цели генерации кода, физика или динамика модели и используемые шаблоны моделирования. Например, генерация кода диктует, что размер шага должен быть больше или равен тактовой частоте процессора (обратная частота центральный процессор). Для чистых целей симуляции размер шага должен быть меньше дискретные шаги расчета, заданного отдельными блоками в модели. Для моделей с периодическими сигналами размер шага должен быть таким, чтобы сигнал дискретизировался с удвоенной его самой высокой частотой; это известно как частота Найквиста.
В данном конкретном примере установите фиксированный размер шага решателя равным 0,1 (максимальный размер шага, обнаруженный Solver Profiler). При этом учитывается дискретный шаг расчета 0,1 блока Dryden Wind-Gust, а также периодический характер движений палки и отклика самолета.
Убедитесь, что состояния модели, выходы и время симуляции включены для логгирования и что формат логгирования установлен в Dataset
в параметрах конфигурации модели.
Симулируйте модель, выбрав любой один или все нежесткие решатели с фиксированным шагом из выпадающего списка Решатель параметров конфигурации модели, когда для решателя Type задано значение Fixed-step
.
A Simulink.sdi.Run
объект создается для симуляций (симуляций ) (й) решателя с фиксированным шагом и хранится в fsRuns
struct в базовом рабочем пространстве.
Используйте Данные Моделирования Inspector, чтобы визуализировать и просмотреть записанные сигналы в вашей модели. Можно также сравнить сигналы между симуляциями или запусками, используя функцию Compare. Для получения дополнительной информации об использовании Данных моделирования Inspector см. Данные моделирования Inspector. Для получения дополнительной информации о том, как сравнить симуляции с помощью Simulation Data Inspector, смотрите Сравнение данных моделирования.
Для сравнения сигналов перейдите на вкладку Compare в Данные моделирования Inspector. Установите запуск базовой линии на симуляцию переменного шага и выберите симуляцию с фиксированным шагом из раскрывающегося списка Сравнить (Compare). Установите допуск Global Abs, допуск Global Rel и допуск Global Time на основе ваших требований.
В данном примере для параметра Global Abs Tolerance задано значение 0.065
, Глобальный допуск Rel устанавливается равным 0,005, и Глобальный допуск времени устанавливается равным 0.1
.
Графики сравнения отображают результаты для симуляции решателя с самым низким порядком фиксированного шага, где все сигналы попадали в допуск, по сравнению с симуляцией переменного шага базиса. Для выбранного решателя результаты сравнения нескольких сигналов построены ниже.
Самый низкий порядок со всеми сигналами в пределах допуска определяется как ode4
. Рассмотрим результаты для решателя с фиксированным шагом ode1, где результаты сравнения показали 11 сигналов вне допуска. Заметьте, что существует 11 сигналов вне допуска, когда параметры сравнения сигналов установлены как:
Сигнал Abs Допуск: 0.065
Сигнал Rel Tolerance: 0.065
Допустимое время сигнала: 0.1