Режимы Accelerator и Rapid Accelerator дают лучшее улучшение скорости по сравнению с режимом normal mode, когда время выполнения симуляции превышает время, необходимое для генерации кода. По этой причине режимы Accelerator и Rapid Accelerator обычно работают лучше, чем режим normal mode, когда времена выполнения симуляции составляют несколько минут или более. Однако модели со значительным количеством Stateflow® или Блоки MATLAB function могут показать только небольшое улучшение скорости по сравнению с режимом normal mode, потому что в режиме normal mode эти блоки также моделируют генерацию кода.
Включение настраиваемых параметров в модель также может увеличить время симуляции.
Рисунок показывает в общих чертах эффективность гипотетической модели, моделируемой в режимах Normal, Accelerator и Rapid Accelerator.
Сплошные линии на рисунке показывают эффективность, когда целевой код должен быть перестроен («все цели устарели»). Для этой гипотетической модели шкала времени составляет порядка минут, но она может быть длиннее для более сложных моделей.
Как обобщено на рисунке, время, необходимое для компиляции модели в режиме normal mode, меньше, чем время, необходимое для создания исполняемого файла Accelerator или Rapid Accelerator. Из рисунка видно, что для малой симуляции времен остановки Режима normal mode результатов в более быстрое общее время симуляции, чем Режим Accelerator или Rapid Режима Accelerator.
Точка перехода, в которой режим Accelerator или режим Rapid Accelerator приводят к более быстрым временам выполнения, зависит от сложности и содержимого вашей модели. Например, модели, работающие в режиме Accelerator, содержащие большое количество блоков с использованием интерпретированного кода (см. «Выбор блоков для режима Accelerator»), могут работать не намного быстрее, чем в режиме normal mode, если время остановки симуляции не очень велико. Точно так же модели с большим количеством блоков Диаграммы Stateflow или Блоков MATLAB function могут не показывать большого улучшения скорости по сравнению с Режимом normal mode, если только времена остановки симуляции не являются длинными. Можно ускорить модели с блоками Диаграмма Stateflow или блоками MATLAB Function посредством генерации кода.
В рисунок целях график представляет модель с большим количеством Диаграммы Stateflow блоков или Блоков MATLAB function. Кривая, помеченная как «Normal», имела бы гораздо меньшее начальное время, чем показано, если бы модель не содержала эти блоки.
Как показано ломаными линиями на рисунке («все цели в актуальном состоянии»), время для Simulink® программа, позволяющая определить, актуален ли целевой объект Accelerator или исполняемый файл Rapid Accelerator, значительно меньше времени, необходимого для генерации кода («все целевые объекты устарели»). Вы можете воспользоваться этой характеристикой, когда хотите протестировать различные проекты компромиссы.
Например, можно сгенерировать целевой код режима Accelerator один раз и использовать его, чтобы симулировать модель с серией настроек усиления. Это особенно эффективный способ использования режимов Accelerator или Rapid Accelerator, поскольку этот тип изменения не приводит к регенерации целевого кода. Это означает, что целевой код генерируется при первом запуске модели, но при последующих запусках код Simulink тратит только время, необходимое для проверки того, что целевой объект устарел. Этот процесс намного быстрее, чем генерация кода, поэтому последующие запуски могут быть значительно быстрее, чем начальный запуск.
Поскольку проверка целей происходит быстрее, чем генерация кода, точка кроссовера меньше, когда цель актуальна, чем когда код должен быть сгенерирован. Это означает, что последующие запуски вашей модели могут симулировать быстрее в режиме Accelerator или Rapid Accelerator по сравнению с режимом normal mode, даже для коротких времен остановки.
Можно использовать tic
, toc
, и sim
команды для сравнения режима Accelerator или режима Rapid Accelerator времен выполнения с Режимом normal mode.
Откройте свою модель.
На вкладке Simulation, в разделе Simulate, выберите Normal
из раскрывающегося меню.
Используйте tic
, toc
, и sim
команды в командной строке, чтобы измерить, сколько времени занимает модель для симуляции в режиме normal mode:
tic,[t,x,y]=sim('myModel',10000);toc
tic
и toc
работать вместе, чтобы записать и вернуть истекшее время и отобразить следующее сообщение:
Elapsed time is 17.789364 seconds.
На вкладке Simulation, в разделе Simulate, выберите Accelerator
или Rapid Accelerator
из раскрывающегося меню. Создайте исполняемый файл для модели, нажав Run. Режимы ускорения используют этот исполняемый файл в последующих симуляциях, пока модель остается структурно неизменной. Регенерация кода в ускоренных моделях обсуждает вещи, которые заставляют вашу модель перестраиваться.
Повторно запустите скомпилированную модель в командной строке:
tic,[t,x,y]=sim('myModel',10000);toc
Истекшее время показов время запуска для ускоренной модели. Для примера:
Elapsed time is 12.419914 seconds.
Различие за прошедшее время (5,369450 секунд в этом примере) показывает улучшение, полученное путем ускорения вашей модели.