Solver Profiler

Идентифицируйте узкие места производительности решателя

Описание

Используйте Solver Profiler, чтобы исследовать решатель и поведение модели, чтобы идентифицировать проблемы, которые могут способствовать плохой производительности симуляции.

Используйте Solver Profiler, чтобы анализировать модель для шаблонов, которые влияют на ее симуляцию. Solver Profiler представляет графическую и статистическую информацию о симуляции, настройках решателя, событиях и ошибках. Можно использовать эти данные, чтобы идентифицировать местоположения в модели, которая вызвала узкие места симуляции.

Кроме того, существует несколько факторов, которые могут ограничить скорость симуляции. Solver Profiler регистрирует и сообщает обо всех крупных событиях, которые происходят при симуляции модели:

  • События пересечения нулем

  • События исключения решателя

  • Решатель сбросил события

  • Якобиевские события вычисления

Эти события распространены и необходимы для точной симуляции. Однако они действительно несут вычислительные расходы, и частые случаи могут замедлиться или даже остановить симуляцию.

Доступные действия

  • Trace

  • Filter

  • Explore

Информационные панели

  • Statistics

  • Step Size

  • Suggestions

Откройте Solver Profiler

Откройте Solver Profiler путем нажатия на гиперссылку в нижнем правом углу Редактора Simulink®.

Примеры

развернуть все

Этот пример показывает, как найти источник конкретного события решателя с помощью модели, которая моделирует шар, возвращающийся от земли. Когда шар останавливается, плотность увеличения нулевых пересечений, ведя к замедлению решателя.

Чтобы начаться, откройте модель ex_spi_show_zc и запустите Solver Profiler.

Нажмите Run, чтобы профилировать модель.

Заметьте, что модель имеет 45 событий пересечения нулем, Выбор вкладка Zero Crossing в панели Результатов.

Выберите поле ex_spi_show_zc/Switch в панели Результатов. Все нулевые события пересечения, вызванные блоком switch, подсвечены в графике Step Size.

В разделе Trace панели инструментов выберите Highlight Block.

Необходимо видеть, что блок switch вызывает нулевые события пересечения.

Связанные примеры

Параметры

развернуть все

Журнал

По умолчанию профилировщик не сохраняет состояния модели. Включение этого параметра конфигурирует профилировщик, чтобы сохранить состояния в MAT-файл.

Позвольте этому параметру сохранить состояния Simscape в MAT-файл.

Опция, чтобы регистрировать матрицы якобиана решателя к памяти. Эта опция полезна для симуляций, которые используют неявные решатели. Для сравнения решателей смотрите, Сравнивают Решатели.

Время, в секундах, симуляции, что профилировщик начинает анализировать модель. Это не то же самое как время начала симуляции.

Время, в секундах, симуляции, к которой профилировщик должен профилировать модель. По умолчанию анализ продолжается до конца симуляции. Изменение этого параметра не изменяет время остановки модели, которую вы задаете в Образцовых Параметрах конфигурации.

Значение меньше, чем сконфигурированное время остановки модели останавливает профилирование и симуляцию в StopTime.

Максимальное количество событий, которые регистрируются. Если количество регистрируемых событий достигает этого значения, и память доступна, увеличение BufferSize. Если память ограничивается, рассмотрите понижение значения.

Фильтр

Позвольте этому параметру подсветить события исключения решателя в графике Размера Шага Solver Profiler.

Позвольте этому параметру подсветить события сброса решателя в графике Размера Шага Solver Profiler.

Позвольте этому параметру подсветить нулевые события пересечения в графике Размера Шага Solver Profiler.

Позвольте этому параметру подсветить якобиевские события обновления в графике Размера Шага Solver Profiler.

Нажмите Rule Customization в Solver Profiler, чтобы получить доступ к набору правила. Можно изменить пороги для большинства этих правил и также выбрать, какие правила вы хотите применить выборочно во время запущенной симуляции.

Чтобы изменить правило, включите его индивидуальную настройку и затем введите желаемое пороговое значение.

Набор пользовательского правила

Можно заменить настройки на диалоговом окне Rule Set путем определения набора пользовательского правила.

Создайте набор правила как скрипт MATLAB® и задайте путь к скрипту в разделе Custom Rule Set диалогового окна Rule Set.

Простое правило установило взгляды в качестве примера можно следующим образом:

function diagnosticsString = customRule(profilerData)
		if isempty(profilerData.zcEvents)
			diagnosticsString{1} = 'No zero crossing event detected.';
		else
			diagnosticsString{1} = 'Zero-crossing events detected.';
		end
end
Вход к функции является массивом структур под названием profilerData. Этот массив структур организует всю информацию, которую Solver Profiler собирает во время запущенного профилирования. Это содержит следующие подструктуры.

ПодструктураПоля
stateInfo: Хранит информацию на состояниях блока
  • имя: Имя блока

  • значение: значения Состояния

  • blockIdx: блокируйте ID

blockInfo: перекрестная ссылка блоков и удостоверений личности штата
  • имя: Имя блока

  • stateIdx: удостоверение личности штата

zcSrcInfo: Хранит информацию на блоках, вызывающих нулевые события пересечения
  • имя: Имя блока

  • blockIdx: блокируйте ID

zcEvents: перекрестная ссылка меток времени нулевых событий пересечения и соответствующих удостоверений личности штата
  • t: метка времени События

  • srcIdx: блокируйте ID

exceptionEvents: перекрестная ссылка меток времени события исключения, ID соответствующего состояния, которое вызвало событие и причину.
  • t: метка времени События

  • stateIdx: удостоверение личности штата

  • cause: Причина исключения

resetTime: метки времени Хранилищ сброса решателя.'none'
tout: времена симуляции Хранилищ.'none'

Типы данных: double

Больше о

развернуть все

Введенный в R2016a