exponenta event banner

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

В этом примере показан алгоритмический метод выбора соответствующего решателя с фиксированным шагом для модели. Для рабочих процессов моделирования в Simulink ® настройка по умолчанию для параметра решателя в окне Параметры конфигурации модели ( Model Configuration Parameters)auto. Эвристика, используемая Simulink для выбора решателя с переменным шагом, показана на рисунке ниже.

Когда использовать решатель с фиксированным шагом

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

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

Любой из непрерывных решателей с фиксированной стадией в изделии Simulink может моделировать модель до любого требуемого уровня точности, учитывая достаточно малый размер шага. К сожалению, невозможно или практически невозможно решить без испытания комбинацию решателя и размера шага, которая даст приемлемые результаты для непрерывных состояний за самое короткое время. Определение наилучшего решателя для конкретной модели обычно требует экспериментов.

Примерная модель представляет алгоритм управления полетом для продольного полета самолета.

Создание результатов опорной структуры с помощью решателя с переменным шагом

Перед началом моделирования определите допустимые допуски ошибок для решателя с переменным шагом. Модель в настоящее время настроена со значениями абсолютных и относительных допусков по умолчанию 1e-6 и 1e-4 соответственно.

Если эти значения допустимы, продолжите с примера. В противном случае их можно изменить в спецификации с помощью команды Параметры конфигурации модели (Model Configuration Parameters).

Выберите решатель с переменным шагом из списка решателей в раскрывающемся списке Решатель (Solver) на панели Решатель (Solver) окна Параметры конфигурации модели (Model Configuration Parameters), чтобы смоделировать модель. Значение по умолчанию в Simulink для параметра Solver равно VariableStepAuto. Simulink выбирает решатель и максимальный размер шага моделирования на основе содержимого и динамики модели.

Моделирование модели с помощью auto решатель или выберите другой решатель. Кроме того, включите опции Сохранить состояния (Save states), Сохранить время (Save time) и Сохранить (Save), чтобы вывести параметры на панели Импорт/экспорт данных (Data Import/Export) окна Параметры конфигурации модели (Model Configuration Parameters). Задайте формат регистрации для модели как Dataset позволяет инспектору данных моделирования регистрировать сигналы.

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

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

Обратите внимание на максимальные и средние размеры шагов, возвращаемые профилировщиком решателя.

             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 (максимальный размер шага, обнаруженный профилировщиком решателя). При этом учитывается дискретное время выборки 0.1 блока Dryden Wind-Gust, а также периодический характер движений палок и реакции самолета.

Убедитесь, что состояние модели, выходные данные и время моделирования включены для регистрации и что формат регистрации установлен в Dataset в окне Параметры конфигурации модели (Model Configuration Parameters).

Смоделировать модель, выбрав один или все нежесткие решатели с фиксированным шагом из раскрывающегося списка Решатель (Solver) параметров конфигурации модели, если для параметра Тип решателя (Solver Type) задано значение Fixed-step.

A Simulink.sdi.Run создается для моделирования решателя с фиксированным шагом и сохраняется в fsRuns структура в базовой рабочей области.

Сравнение моделирования с фиксированным шагом с базовой линией с переменным шагом

Используйте инспектор данных моделирования для визуализации и проверки зарегистрированных сигналов в модели. С помощью функции «Сравнить» (Compare) можно также сравнивать сигналы между моделированиями или прогонами. Дополнительные сведения об использовании инспектора расчетных данных см. в разделе Инспектор расчетных данных. Дополнительные сведения о сравнении моделирования с помощью инспектора данных моделирования см. в разделе Сравнение данных моделирования.

Чтобы сравнить сигналы, перейдите на вкладку Сравнить (Compare) в Инспекторе данных моделирования (Simulation Data Inspector). Задайте для прогона опорной структуры моделирование с переменным шагом и выберите моделирование с фиксированным шагом из раскрывающегося списка Сравнить с. Установите глобальный допуск Abs, глобальный допуск Rel и глобальный допуск времени на основе требований.

В этом примере для параметра «Глобальный абс-допуск» установлено значение 0.065, для параметра «Глобальный допуск Rel» установлено значение 0,005, а для параметра «Глобальный допуск по времени» - значение 0.1.

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

Самый низкий порядок со всеми сигналами в пределах допуска определяется как ode4. Рассмотрим результаты для решателя ode1 с фиксированным шагом, где результаты сравнения показали, что 11 сигналов вышли за пределы допуска. Обратите внимание на наличие 11 сигналов вне допуска, если параметры сравнения сигналов установлены как:

  • Допуск сигнала Abs: 0,065

  • Допуск сигнала Rel: 0,065

  • Допуск по времени сигнала: 0.1