Профилировщик получает данные о производительности, в то время как ваша модель симулирует. Это идентифицирует части вашей модели, которые требуют, чтобы большая часть времени симулировала. Используйте профильную информацию, чтобы решить, где фокусировать ваши усилия по оптимизации модели.
Вы не можете использовать Профилировщик в Быстром Режиме 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> Simulink Profiler.
Симулируйте модель.
Когда симуляция завершена, Simulink генерирует и отображает профиль симуляции для модели в панели в редакторе Simulink.
Представление иерархии блока отчета представляет профильную информацию модели во вложенной древовидной форме. Первая строка таблицы — который является верхушкой дерева — соответствует целой модели. Последующие строки на первом уровне вложения соответствуют блокам на корневом уровне модели.
Представление стека выполнения ломает профильный отчет фазой симуляции модели. Основные фазы симуляции модели являются компиляцией, инициализацией, симуляцией и завершением. Для более подробного объяснения фаз симуляции смотрите Фазы Симуляции в Динамических системах.
Можно сохранить Отчет профилирования в mat
файл. В более позднее время можно импортировать и рассмотреть отчет любой загрузкой сохраненного mat
файл к текущей рабочей области или импорту это в существующее.
Чтобы сохранить профильный отчет, выберите Export to MAT в разделе Share вкладки Profile и опционально задайте имя для mat
файл.
Чтобы просмотреть сохраненный отчет на открытом профильном сеансе в редакторе Simulink, выберите Import from File во вкладке Profile.
Чтобы просмотреть сохраненный отчет в командной строке, загрузите mat
файл, содержащий отчет. Профильная информация загружается в текущую рабочую область как Simulink.profiler.Data
объект. Для получения дополнительной информации смотрите Simulink.profiler.Data
.