exponenta event banner

Решатели для моделирования в реальном времени

Для запуска модели на целевом компьютере в реальном времени настройте модель для моделирования с фиксированным шагом и фиксированной стоимостью. Тип решателя с фиксированным шагом, размер шага и количество итераций влияют на скорость и точность моделирования в реальном времени.

Каждая отдельная Simscape™ физическая сеть в модели имеет собственный блок конфигурации Simscape Solver. Выбор решателя можно задать по-разному для каждой физической сети. Если не проверить параметр локального решателя для физической сети, то эта сеть использует указанный глобальный решатель Simulink ®.

При выборе типа решателя с фиксированным шагом для каждой сети в модели необходимо учитывать следующие основные факторы:

  • Является ли сеть дискретной или непрерывной

  • Вычислительная стоимость решателя

  • Численная жесткость сети

В следующей таблице представлены типы решателей с фиксированным шагом в библиотеках Simulink и Simscape.

СфераНапечататьЧисловой методРешающее устройство
Глобальный решатель SimulinkНепрерывныйЯвныйode1 (метод Эйлера)
ode2 (метод Хуэна)
ode3 (Богацки-Шампин)
ode4 (Рунге-Кутта четвертого порядка, RK4)
ode5 (Dormand-Prince,RK5)
ode8 (Дорманд-Принс, RK8)
Неявныйode14x (экстраполяция)
ode1be (Обратный эйлер)
ДискретныйНеприменимоДискретные (без непрерывных состояний)
Локальная сеть SimscapeНепрерывныйНеявныйНазад Эйлер
Трапециевидное правило
Разделение

Выбор между дискретными и непрерывными решателями

Чтобы выполнить моделирование в реальном времени для дискретной модели, например, для проектирования цифрового контроллера, укажите глобальный дискретный решатель Simulink. Если сеть, содержащая контроллер, имеет непрерывные состояния, дискретизируйте сеть. Пример дискретизации контроллера для гидравлического привода см. в разделе Гидравлический привод, сконфигурированный для тестирования HIL.

Примечание

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

Если модель контроллера содержит непрерывные состояния, например, при моделировании аналогового контроллера, используйте глобальный непрерывный решатель Simulink.

Вычислительные затраты для непрерывных решателей

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

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

Для заданной точности явные глобальные решатели обычно имеют более низкую вычислительную стоимость, чем неявные глобальные решатели. Локальные решатели (только Simscape) дешевле глобальных решателей.

Как численная жесткость влияет на выбор решателя

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

  • Численная жесткость системы

  • Вычислительная стоимость решателя

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

Явные решатели быстрее, чем неявные решатели, но они обеспечивают менее точные решения для численно жестких систем, потому что они имеют тенденцию гасить колебания. Неявные решатели могут лучше улавливать колебания, возникающие в жестких системах, поскольку они более надежны, чем явные решатели. Однако неявные решатели обеспечивают лучшую точность за счет скорости.

Если модель контроллера является непрерывной и численно жесткой, используйте неявный решатель ode14x. Если ode14x не позволяет моделировать модель достаточно быстро для моделирования в реальном времени, за счет точности можно:

  • Увеличьте скорость моделирования, увеличив размер шага или уменьшив число итераций.

  • Используйте решатель ode1be Backward Euler.

  • Уменьшите жесткость модели и укажите явный решатель вместо ode14x.

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

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

Использование локальных решателей с фиксированным шагом Simscape

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

Simscape позволяет задать различную конфигурацию решателя для каждой независимой физической системы (подсистемы) в модели. Можно использовать неявный решатель с фиксированным шагом в жестких локальных сетях и явный решатель с фиксированным шагом в несвязанных локальных сетях. Оптимизация решателей для каждой сети сводит к минимуму общее количество вычислений, выполняемых за шаг времени, и повышает вероятность того, что модель может работать в режиме реального времени без возникновения перегрузки.

Выберите один из трех решателей Simscape с фиксированным шагом для моделирования в реальном времени.

  • Назад Эйлер

  • Трапециевидное правило

  • Разделение

Решатель обратного Эйлера является более надежным и, следовательно, более устойчивым, чем решатель трапециевидных правил. Это имеет тенденцию к влажным колебаниям. Решатель трапециевидных правил более точен, но менее стабилен, чем решатель обратного эйлера. Он имеет тенденцию улавливать колебания, такие как синусоидальные сигналы переменного тока, которые являются общими для электрических систем. Решатель секционирования также более надежен, чем решатель трапециевидных правил, однако он не может моделировать определенные модели. Дополнительные сведения см. в разделе Увеличение скорости моделирования с помощью решателя секционирования. Независимо от выбранного локального решателя, при моделировании используется Обратный эйлер (Backward Euler), если под угрозой численная стабильность:

  • В начале моделирования.

  • После мгновенного изменения, когда соответствующий блок подвергается внутреннему дискретному изменению.

См. также

Связанные примеры

Подробнее