Профилировщик собирает данные о эффективности во время моделирования вашей модели. Он определяет части вашей модели, которые требуют наибольшего времени для моделирования. Используйте информацию о профилировании, чтобы решить, где сфокусировать усилия по оптимизации модели.
Примечание
Вы не можете использовать профилировщик в режиме Rapid 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 | Вычислите выходы невиртуальной подсистемы на текущем временном шаге, вызывая выходы, обновляйте, интегрируйте и т.д. функции для каждого блока, который он содержит. Время, затраченное в этой функции, является временем, необходимым для выполнения невиртуальной подсистемы. | Блок |
Профилировщик измеряет время, необходимое для выполнения каждого вызова этих функций. После моделирования модели Profiler генерирует отчет, который описывает количество времени симуляции, потраченное на каждую функцию.
Откройте модель.
На вкладке 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
.