Диагностируйте неудовлетворительную эффективность в реальном времени

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

Что означает эта проблема

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

Попробуйте это обходное решение

Можно улучшать производительность во время выполнения и уменьшать время выполнения задачи (TET) модели с этими методами.

Включите компиляцию с GCC - ffast-математическая опция

Компиляция с GCC - ffast-математическая опция включает компилятору GCC -ffast-math опция при компиляции кода приложения реального времени. Эта опция отключена по умолчанию для Simulink® Модели Real-Time™.

Путем включения Компиляции с GCC - ffast-математическая опция, вы предоставляете компилятору больше гибкости, чтобы оптимизировать математику с плавающей точкой за счет отклонения от IEEE 754 стандарт с плавающей точкой.

Для получения дополнительной информации о -ffast-math опция, смотрите Семантику Математики С плавающей точкой в GCC и.gcc.gnu.org/wiki/FloatingPointMath/

Запустите инструменты эффективности

Используйте эти инструменты эффективности:

  • Чтобы профилировать выполнение приложения реального времени, используйте startProfiler команда.

  • Чтобы запустить профилировщик и построить результаты, используйте plot функция.

Для получения дополнительной информации смотрите, что Выполнение Профилирует для Приложений реального времени.

Используйте многожильный целевой компьютер

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

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

  2. В диалоговом окне Configuration Parameters, на панели Solver, устанавливают флажок для Treat each discrete rate as a separate task.

  3. Нажмите Configure Tasks, и затем установите флажок Enable explicit model partitioning for concurrent behavior.

  4. Создайте задачи и триггеры, и затем явным образом присвойте разделы подсистемы задачам. Смотрите Раздел Ваша Модель Используя Явное Разделение и Многоядерное программирование с Simulink.

  5. Запустите приложение реального времени.

Примечание

Не используйте блоки MATLAB System в верхнем уровне моделей Simulink Real-Time, в которых явным образом разделено выполнение задачи. Эти блоки генерируют ошибку TLC при создании приложения реального времени, например:

"Unable to find TLCBlockSID within the Block scope"

Минимизируйте модель

Можно улучшать производительность во время выполнения путем минимизации модели, чтобы сделать больше память и циклы ЦП доступными для приложения реального времени:

  1. На панели Solver увеличьте Fixed-step size (fundamental sample time). Выполнение со временем краткого образца может перегрузить центральный процессор.

  2. Используйте режим опроса. Смотрите Режимы выполнения.

  3. Сократите количество каналов ввода-вывода в модели.

Контакт с технической поддержкой

Для дополнительного разъяснения обратитесь к этим источникам:

Для аппаратных проблем Speedgoat свяжитесь с Технической поддержкой Speedgoat: www.speedgoat.com/learn-support.

Смотрите также

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

Больше о

Внешние веб-сайты

Для просмотра документации необходимо авторизоваться на сайте