Сравнение эффективности

Эффективность режимов симуляции

Акселератор и Быстрые Режимы Accelerator дают лучшее улучшение скорости по сравнению с Режимом normal mode, когда время выполнения симуляции превышает время, требуемое для генерации кода. Поэтому Акселератор и Быстрые Режимы Accelerator обычно выполняют лучше, чем Режим normal mode, когда времена выполнения симуляции являются несколькими минутами или больше. Однако модели со значительным количеством Stateflow® или блоков MATLAB function могут показать только маленькое улучшение скорости по сравнению с Режимом normal mode, потому что в Режиме normal mode эти блоки также симулируют через генерацию кода.

Включая настраиваемые параметры в вашей модели может также увеличить время симуляции.

Рисунок показывает в общих чертах эффективность гипотетической модели, симулированной в Нормальном, Акселераторе и Быстрых Режимах Accelerator.

Эффективность, когда цель должна быть восстановлена

Сплошные линии на рисунке показывают эффективность, когда целевой код должен быть восстановлен (“все цели, которые устарели”). Для этой гипотетической модели масштаб времени находится порядка минут, но это могло быть более длинно для более сложных моделей.

Как обобщено на рисунке, время, требуемое скомпилировать модель в Режиме normal mode, меньше времени, требуемого создавать или Акселератор целевой или Быстрый исполняемый файл Акселератора. Очевидно от фигуры, что для маленького Режима normal mode времен остановки симуляции приводит к более быстрым полным временам симуляции или, чем Режим Accelerator или, чем Быстрый Режим Accelerator.

Точка перехода, где Режим Accelerator или Быстрый результат Режима Accelerator в более быстрые времена выполнения зависят от сложности и содержимого вашей модели. Например, те модели, запускающиеся в Режиме Accelerator, содержащем большие количества блоков с помощью интерпретированного кода (см., Выбирают Blocks for Accelerator Mode), не может запуститься намного быстрее, чем они были бы в Режиме normal mode, если время остановки симуляции не является очень большим. Точно так же модели с большим количеством блоков диаграммы Stateflow или блоков MATLAB function не могут показать много улучшения скорости по сравнению с Режимом normal mode, если времена остановки симуляции не длинны. Можно ускорить модели с блоками диаграммы Stateflow или блоками MATLAB function через генерацию кода.

В целях рисунка диаграмма представляет модель большим количеством блоков диаграммы Stateflow или блоков MATLAB function. Кривая пометила "Normal", имел бы намного меньшее начальное прошедшее время, чем показанный, если бы модель не содержала эти блоки.

Эффективность, когда цели актуальны

Как показано прерывистыми линиями на рисунке (“все цели, актуальные”), время для программного обеспечения Simulink®, чтобы определить, актуальны ли цель Акселератора или Быстрый исполняемый файл Акселератора, значительно меньше времени, требуемого сгенерировать код (“все цели, которые устарели”). Можно использовать в своих интересах эту характеристику, когда вы хотите протестировать различные компромиссы проекта.

Например, можно сгенерировать целевой код Режима Accelerator однажды и использовать его, чтобы симулировать модель с рядом настроек усиления. Это - особенно эффективный способ использовать Акселератор или Быстрые Режимы Accelerator, потому что этот тип изменения не приводит к целевому регенерируемому коду. Это означает, что целевой код сгенерирован в первый раз запуски модели, но на последующих запусках код Simulink проводит только время, необходимое, чтобы проверить, что цель актуальна. Этот процесс намного быстрее, чем генерация кода, таким образом, последующие запуски могут быть значительно быстрее, чем начальный запуск.

Поскольку проверка целей быстрее, чем генерация кода, точка перехода меньше, когда цель актуальна чем тогда, когда код должен быть сгенерирован. Это означает, что последующие запуски вашей силы модели симулируют быстрее в Акселераторе или Быстром Режиме Accelerator когда по сравнению с Режимом normal mode, даже для коротких времен остановки.

Измерьте уровень

Можно использовать tictoc, и sim команды, чтобы сравнить Режим Accelerator или Быстрые времена выполнения Режима Accelerator к Режиму normal mode.

  1. Откройте свою модель.

  2. На вкладке Simulation, в разделе Simulate, выбирают Normal в выпадающем меню.

  3. Используйте tictoc, и sim команды при приглашении командной строки измериться, сколько времени модель берет, чтобы симулировать в Режиме normal mode:

    tic,[t,x,y]=sim('myModel',10000);toc

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

    Elapsed time is 17.789364 seconds.

  4. На вкладке Simulation, в разделе Simulate, выбирают Accelerator или Rapid Accelerator в выпадающем меню. Создайте исполняемый файл для модели путем нажатия на Run. Ускоряющие режимы используют этот исполняемый файл в последующих симуляциях, пока модель остается структурно неизменной. Регенерация кода в Ускоренных Моделях обсуждает вещи, которые заставляют вашу модель восстанавливать.

  5. Повторно выполните скомпилированную модель в командной строке:

    tic,[t,x,y]=sim('myModel',10000);toc

  6. Отображенное прошедшее время показывает время выполнения для ускоренной модели. Например:

    Elapsed time is 12.419914 seconds.
    

Различие в прошедшие времена (5,369450 секунд в этом примере) показывает улучшение, полученное путем ускорения модели.

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

Больше о