Профилировщик получает данные о производительности, в то время как ваша модель симулирует. Это идентифицирует части вашей модели, которые требуют, чтобы большая часть времени симулировала. Используйте профильную информацию, чтобы решить, где фокусировать ваши усилия по оптимизации модели.
Вы не можете использовать Профилировщик в Быстром Режиме Accelerator.
Simulink® хранит данные о производительности в отчете профиля симуляции. Данные показывают, что время потратило выполнение каждой функции в вашей модели.
Основанием для Профилировщика является модель выполнения, которую обобщает этот псевдокод.
Sim() ModelInitialize(). ModelExecute() for t = tStart to tEnd Output() Update() Integrate() Compute states from derivs by repeatedly calling: MinorOutput() MinorDeriv() Locate any zero crossings by repeatedly calling: MinorOutput() MinorZeroCrossings() EndIntegrate Set time t = tNew. EndModelExecute ModelTerminate EndSim
Согласно этой концептуальной модели, Simulink запускает модель путем вызова следующего нуля функций, один, или много раз, в зависимости от функции и модели.
Функция | Цель | Уровень |
---|---|---|
sim | Симулируйте модель. Эта функция верхнего уровня вызывает другие функции, требуемые симулировать модель. Время, проведенное в этой функции, является общим временем, требуемым симулировать модель. | Система |
ModelInitialize | Настройте модель для симуляции. | Система |
ModelExecute | Выполните модель путем вызова выхода, обновления, интегрируйте, и т.д., функции для каждого блока на каждом временном шаге от запуска в конец симуляции. | Система |
Output | Вычислите выходные параметры блока на шаге текущего времени. | Блок |
Update | Обновите состояние блока на шаге текущего времени. | Блок |
Integrate | Вычислите непрерывные состояния блока путем интеграции производных состояния на шаге текущего времени. | Блок |
MinorOutput | Вычислите блокируют выход на незначительном временном шаге. | Блок |
MinorDeriv | Вычислите производные состояния блока на незначительном временном шаге. | Блок |
MinorZeroCrossings | Вычислите значения пересечения нулем блока на незначительном временном шаге. | Блок |
ModelTerminate | Освободите память и выполните любую другую очистку конца симуляции. | Система |
Nonvirtual Subsystem | Вычислите выход невиртуальной подсистемы на шаге текущего времени путем вызова выхода, обновления, интегрируйте, и т.д., функции для каждого блока, который это содержит. Время, проведенное в этой функции, является временем, требуемым выполнить невиртуальную подсистему. | Блок |
Профилировщик измеряет время, требуемое выполнить каждый вызов этих функций. После того, как модель симулирует, Профилировщик генерирует отчет, который описывает сумму времени симуляции, потраченного на каждую функцию.
Откройте модель.
На вкладке Debug выберите Performance Advisor> Activate Profiler.
Симулируйте модель.
Когда симуляция завершена, Simulink генерирует и отображает профиль симуляции для модели в веб-браузере MATLAB®.
Сводный файл отображает следующие общие количества производительности.
Элемент | Описание |
---|---|
Общее записанное время |
Общее время, требуемое симулировать модель |
Количество методов блока |
Общее количество вызовов функций блочного уровня (например, |
Количество внутренних методов |
Общее количество вызовов функций уровня системы (например, |
Количество методов модели |
Количество методов вызвано моделью |
Количество невиртуальных методов подсистемы |
Общее количество вызовов невиртуальных функций подсистемы |
Синхронизируйте точность |
Точность измерения времени профилировщика |
Тактовая частота |
Скорость измерения времени профилировщика |
Функциональный список показывает итоговые профили для каждой функции, вызванной, чтобы симулировать модель. Для каждой перечисленной функции итоговый профиль указывает эту информацию.
Элемент | Описание |
---|---|
Имя |
Имя функции. Этот элемент является гиперссылкой. Кликните по нему, чтобы отобразить подробный профиль этой функции. |
Время |
Общее время потратило выполнение всех вызовов этой функции как абсолютное значение и как процент общего времени симуляции. |
Вызовы |
Число раз эта функция было вызвано. |
Время/Вызов |
Среднее время, требуемое для каждого вызова этой функции, включая время, проведенное в функциях, вызывается этой функцией. |
Сам время |
Общее время, требуемое выполнить эту функцию, исключая время, проведенное в функциях, вызванных этой функцией. |
Местоположение |
Задает блок или модель, выполняемую, для которого вызывается эта функция. Этот элемент является гиперссылкой. Кликните по нему, чтобы подсветить соответствующий элемент в диаграмме модели. |
Этот раздел отчета содержит подробные профили для каждой функции, которую Simulink вызвал, чтобы симулировать модель. В дополнение к информации в итоговом профиле для функции подробный профиль отображает функцию (родительская функция), который вызвал профилируемую функцию и функции (дочерние функции) вызванный профилируемой функцией. Кликните по имени родительского элемента или дочерней функции, чтобы видеть подробный профиль для этой функции.
Включение Профилировщика на родительской модели не позволяет профилировать для моделей, на которые ссылаются. Необходимо позволить профилировать отдельно для каждой модели, на которую ссылаются. Профилирование происходит, только если модель, на которую ссылаются, выполняется в Режиме normal mode. Смотрите Режим normal mode для получения дополнительной информации.
Отчеты для моделей, на которые ссылаются, отличаются от той из родительской модели.
Можно сохранить Отчет профилирования в переменную в рабочем пространстве MATLAB, и после этого, к mat
файл. В более позднее время можно регенерировать и рассмотреть отчет.
Сохраните Отчет профилирования для модели vdp
к переменной profile1
и к файлу данных report1.mat
.
В окне Simulink Profiler Report, в разделе Summary, щелкают по ссылке click here. Simulink сохраняет данные об отчете к переменной vdpProfileData
.
Рассмотрите отчет. В командной строке MATLAB, введите:
slprofreport
(vdpProfileData
)
Сохраните данные к переменной под названием profile1
в базовом рабочем пространстве.
profile1 = vdpProfileData;
Сохраните данные к mat
файл с именем report1
.
save report1 profile1
Просмотреть отчет позже, в командной строке MATLAB, введите:
load report1 slprofreport(profile1);