Акселератор и Быстрые Режимы 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. Кривая маркировала "Normal", имел бы намного меньшее начальное прошедшее время, чем показанный, если бы модель не содержала эти блоки.
Как показано прерывистыми линиями в фигуре (“все цели, актуальные”), время для программного обеспечения Simulink®, чтобы определить, актуальны ли цель Акселератора или Быстрый исполняемый файл Акселератора, является значительно меньше, чем время, требуемое сгенерировать код (“все цели, которые устарели”). Можно использовать в своих интересах эту характеристику, когда вы хотите протестировать различные компромиссы дизайна.
Например, можно сгенерировать целевой код Режима Accelerator однажды и использовать его, чтобы моделировать модель с рядом настроек усиления. Это - особенно эффективный способ использовать Акселератор или Быстрые Режимы Accelerator, потому что этот тип изменения не приводит к целевому регенерируемому коду. Это означает, что целевой код сгенерирован в первый раз образцовые выполнения, но на последующих выполнениях код Simulink проводит только время, необходимое, чтобы проверить, что цель актуальна. Этот процесс намного быстрее, чем генерация кода, таким образом, последующие выполнения могут быть значительно быстрее, чем начальное выполнение.
Поскольку проверка целей более быстра, чем генерация кода, точка перехода меньше, когда цель актуальна чем тогда, когда код должен быть сгенерирован. Это означает, что последующие выполнения вашей силы модели моделируют быстрее в Акселераторе или Быстром Режиме Accelerator когда по сравнению с Режимом normal mode, даже для коротких времен остановки.
Можно использовать tic
, toc
и команды sim
, чтобы сравнить Режим Accelerator или Быстрые времена выполнения Режима Accelerator к Режиму normal mode.
Откройте свою модель.
Из меню Simulation> Mode выберите Normal.
Используйте tic
, toc
и команды sim
при приглашении командной строки измериться, сколько времени модель берет, чтобы моделировать в Режиме normal mode:
tic,[t,x,y]=sim('myModel',10000);toc
tic
и toc
работают совместно, чтобы записать и возвратить прошедшее время и отобразить сообщение, такое как следующее:
Elapsed time is 17.789364 seconds.
Выберите Accelerator или Rapid Accelerator из меню Simulation> Mode, и создайте исполняемый файл для модели путем щелкания по кнопке Run. Ускоряющие режимы используют этот исполняемый файл в последующих моделированиях, пока модель остается структурно неизменной. Регенерация кода в Ускоренных Моделях обсуждает вещи, которые заставляют вашу модель, восстанавливают.
Повторно выполните скомпилированную модель в командной строке:
tic,[t,x,y]=sim('myModel',10000);toc
Отображенное прошедшее время показывает время выполнения для ускоренной модели. Например:
Elapsed time is 12.419914 seconds.
Различие в прошедшие времена (5,369450 секунд в этом примере) показывает улучшение, полученное путем ускорения модели.