Этот пример показывает алгоритмический метод выбора соответствующего решателя фиксированного шага для вашей модели. Для рабочих процессов симуляции в Simulink® настройкой по умолчанию для параметра Решателя в Параметрах конфигурации Модели является auto
. Эвристика, используемая Simulink, чтобы выбрать решатель переменного шага, показана на рисунке ниже.
Один общий падеж, чтобы использовать решатель фиксированного шага для рабочих процессов, где вы планируете сгенерировать код из своей модели и запустить код по системе реального времени.
С решателем переменного шага размер шага может варьироваться от шага до шага, в зависимости от динамики модели. В частности, решатель переменного шага увеличивает или уменьшает размер шага, чтобы соответствовать ошибочным допускам, которые вы задаете и как таковой, переменные размеры шага не могут быть сопоставлены с часами реального времени целевой системы.
Любой фиксированный шаг непрерывные решатели в продукте Simulink может симулировать модель к любому желаемому уровню точности, учитывая достаточно небольшой размер шага. К сожалению, это не возможно или практично, чтобы решить без испытания, комбинации решателя и размера шага, который приведет к приемлемым результатам для непрерывных состояний в самое короткое время. Определение лучшего решателя для конкретной модели обычно требует экспериментирования.
Модель в качестве примера представляет алгоритм управления полетом для продольного рейса самолета.
Прежде чем вы начнете симуляцию, определите приемлемые ошибочные допуски к вашему решателю переменного шага. Модель в настоящее время настраивается со значениями по умолчанию абсолютных и относительных допусков 1e-6
и 1e-4
соответственно.
Если эти значения приемлемы, продолжают пример. В противном случае можно изменить их в спецификацию с помощью Параметров конфигурации Модели.
Выберите решатель переменного шага из списка решателей в Решателе, выпадающем в панели Решателя Параметров конфигурации Модели, чтобы симулировать модель. Настройкой по умолчанию в Simulink для параметра Решателя является VariableStepAuto
. Simulink выбирает решатель и максимальный размер шага симуляции на основе содержимого и динамики модели.
Симулируйте модель с помощью auto
решатель или выбор другой решатель. Кроме того, включите состояния Сохранения, Сэкономьте времени и Save параметры выходных параметров в панели Импорта/Экспорта Данных Параметров конфигурации Модели. Установите формат логгирования для своей модели к Dataset
позволить Инспектору Данных моделирования регистрировать сигналы.
Результаты симуляции от этого запуска будут определяться базовые результаты для этой задачи. Модель содержит 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
. Можно также выбрать определенный решатель из Решателя, выпадающего в Параметрах конфигурации Модели, чтобы запуститься против базовой линии переменного шага.
Факторы для выбора фиксированного размера шага
Оптимальный размер шага для симуляции фиксированного шага вашей модели устанавливает равновесие между скоростью и точностью, учитывая ограничения, такие как цели генерации кода, физика или динамика модели и используемые шаблоны моделирования. Например, генерация кода продиктовала бы размер шага, должен быть больше или быть равен тактовой частоте процессора (обратная величина частоты центрального процессора). Для чистых целей симуляции размер шага должен быть меньше дискретных шагов расчета, заданных отдельными блоками в модели. Для моделей с периодическими сигналами размер шага должен быть таков, что сигнал производится на дважды его самой высокой частоте; это известно как частоту Найквиста.
Для этого определенного примера, набор размер фиксированного шага решателя к 0,1 (максимальный размер шага, обнаруженный Solver Profiler). Это учитывает дискретный шаг расчета 0.1 из блока Dryden Wind-Gust, а также периодическая природа перемещений палки и ответа самолета.
Убедитесь, что модель утверждает, выходные параметры, и время симуляции включено для логгирования и что формат логгирования установлен в Dataset
в параметрах конфигурации модели.
Симулируйте модель путем выбора любого или всех нежестких решателей фиксированного шага от Решателя, выпадающего из Параметров конфигурации Модели, когда Тип решателя будет установлен в Fixed-step
.
Simulink.sdi.Run
объект создается для симуляции (симуляций) решателя фиксированного шага и хранится в fsRuns
struct в базовом рабочем пространстве.
Используйте Инспектора Данных моделирования, чтобы визуализировать и смотреть регистрируемые сигналы в вашей модели. Можно также сравнить сигналы через симуляции или запуски, с помощью Сравнить функции. Для получения дополнительной информации об использовании Инспектора Данных моделирования смотрите Инспектора Данных моделирования. Для получения дополнительной информации о том, как сравнить симуляции с помощью Инспектора Данных моделирования, смотрите, Сравнивают Данные моделирования.
Чтобы сравнить сигналы, переключитесь на вкладку Compare в Инспекторе Данных моделирования. Установите Базовый запуск на симуляцию переменного шага и выберите симуляцию фиксированного шага из Сравнивания, чтобы выпасть. Установите Глобальную Погрешность Abs, Глобальный Допуск Рэла и Глобальный Допуск Времени на основе ваших требований.
В данном примере Глобальная Погрешность Abs установлена 0.065
, Глобальная Погрешность Рэла установлена 0,005, и Глобальная Погрешность Времени установлена 0.1
.
Графики сравнения отображают результаты для симуляции решателя фиксированного шага самой низкоуровневой, где все сигналы находились в пределах допуска, когда по сравнению с базовой симуляцией переменного шага. Для выбранного решателя результаты сравнения нескольких сигналов построены ниже.
Самое низкоуровневое со всеми сигналами в допуске полно решимости быть ode4
. Рассмотрите результаты для ode1 решателя фиксированного шага, где результаты сравнения показали 11 сигналов из допуска. Заметьте, что существует 11 сигналов из допуска, когда параметры сравнения сигнала устанавливаются как:
Допуск Abs сигнала: 0.065
Допуск рэла сигнала: 0.065
Допуск времени сигнала: 0.1