Я хочу, чтобы некоторые рекомендуемые методы улучшали неудовлетворительную производительность приложения реального времени.
Эффективность во время выполнения и уменьшает время выполнения задачи (TET) модели, зависят от проекта модели, способности целевого компьютера и использования целевого компьютера.
Можно улучшать производительность во время выполнения и уменьшать время выполнения задачи (TET) модели с этими методами.
Компиляция с GCC - ffast-математическая опция включает компилятору GCC -ffast-math
опция при компиляции кода приложения реального времени. Эта опция отключена по умолчанию для Simulink® Модели Real-Time™.
Путем включения Компиляции с GCC - ffast-математическая опция, вы предоставляете компилятору больше гибкости, чтобы оптимизировать математику с плавающей точкой за счет отклонения от IEEE 754 стандарт с плавающей точкой.
Для получения дополнительной информации о -ffast-math
опция, смотрите Семантику Математики С плавающей точкой в GCC и.gcc.gnu.org/wiki/FloatingPointMath/
Используйте эти инструменты эффективности:
Чтобы профилировать выполнение приложения реального времени, используйте startProfiler
команда.
Чтобы запустить профилировщик и построить результаты, используйте plot
функция.
Для получения дополнительной информации смотрите, что Выполнение Профилирует для Приложений реального времени.
Можно улучшать производительность во время выполнения путем конфигурирования модели, чтобы использовать в своих интересах многожильный целевой компьютер:
Разделите модель в подсистемы согласно физическим требованиям системы, чтобы вы моделируете. Установите частоты дискретизации блока в каждой подсистеме к самому медленному уровню, который удовлетворяет физические требования системы.
В диалоговом окне Configuration Parameters, на панели Solver, устанавливают флажок для Treat each discrete rate as a separate task.
Нажмите Configure Tasks, и затем установите флажок Enable explicit model partitioning for concurrent behavior.
Создайте задачи и триггеры, и затем явным образом присвойте разделы подсистемы задачам. Смотрите Раздел Ваша Модель Используя Явное Разделение и Многоядерное программирование с Simulink.
Запустите приложение реального времени.
Примечание
Не используйте блоки MATLAB System в верхнем уровне моделей Simulink Real-Time, в которых явным образом разделено выполнение задачи. Эти блоки генерируют ошибку TLC при создании приложения реального времени, например:
"Unable to find TLCBlockSID within the Block scope"
Можно улучшать производительность во время выполнения путем минимизации модели, чтобы сделать больше память и циклы ЦП доступными для приложения реального времени:
На панели Solver увеличьте Fixed-step size (fundamental sample time). Выполнение со временем краткого образца может перегрузить центральный процессор.
Используйте режим опроса. Смотрите Режимы выполнения.
Сократите количество каналов ввода-вывода в модели.
Для дополнительного разъяснения обратитесь к этим источникам:
MathWorks® Техническая поддержка: веб-сайт MathWorks Help Center
MATLAB® Ответы: www.mathworks.com/matlabcentral/answers/? term=Simulink+Real-Time
Центральный MATLAB: www.mathworks.com/matlabcentral
Для аппаратных проблем Speedgoat свяжитесь с Технической поддержкой Speedgoat: www.speedgoat.com/learn-support.
Скомпилируйте с GCC - ffast-математика