exponenta event banner

Профилировщик решателя

Определение узких мест производительности решателя

Описание

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

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

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

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

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

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

  • Вычислительные события Якобиана

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

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

  • След

  • Фильтр

  • Исследовать

Информационные области

  • Статистика

  • Размер шага

  • Предложения

Открытие профилировщика решателя

Откройте профилировщик решателя, щелкнув гиперссылку в правом нижнем углу редактора Simulink ®.

Примеры

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

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

Для начала откройте ex_spi_show_zc и запустите приложение Solver Profiler.

Щелкните Выполнить (Run), чтобы профилировать модель.

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

Выберите ex_spi_show_zc/Switch на панели «Результаты». Все события пересечения нулей, вызванные блоком Switch, подсвечиваются на графике «Размер шага».

В разделе «Трассировка» панели инструментов выберите «Выделить блок».

Вы должны видеть блок Switch, вызывающий события пересечения нуля.

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

Параметры

Настроить

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

Этот параметр используется для сохранения состояний Simscape в MAT-файле данных профилировщика.

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

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

Более подробное описание решателя Jacobian см. в разделе Выбор метода Jacobian для неявного решателя.

Этот параметр используется для регистрации анализа жесткости состояний Simscape в MAT-файле данных профилировщика. Дополнительные сведения о представлении в Simscape концепций жесткости и других физических систем см. в разделе Как модели Simscape представляют физические системы (Simscape)

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

Время (в секундах) моделирования, на которое профилировщик должен профилировать модель. По умолчанию анализ продолжается до конца моделирования. При изменении этого параметра не изменяется время остановки модели, указанное в окне Параметры конфигурации модели (Model Configuration Parameters).

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

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

Фильтр

Включите этот параметр, чтобы выделить события исключения решателя на графике Размер шага (Step Size) профилировщика решателя.

Этот параметр используется для выделения событий сброса решателя на графике Размер шага (Step Size) профилировщика решателя.

Этот параметр используется для выделения событий пересечения нулей на графике Размер шага (Step Size) профилировщика решателя.

Этот параметр используется для выделения событий обновления Jacobian на графике Размер шага (Step Size) профилировщика решателя.

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

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

Пользовательский набор правил

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

Создайте набор правил как сценарий MATLAB ® и укажите путь к сценарию в разделе «Пользовательский набор правил» диалогового окна «Набор правил».

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

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. Этот массив структур упорядочивает всю информацию, которую профилировщик решателя собирает во время выполнения профилирования. Он содержит следующие подструктуры.

ФундаментОбласти
stateInfoХранение информации о состояниях блоков
  • name: Имя блока

  • value: Значения состояния

  • blockIdx: Идентификатор блока

blockInfoПерекрестная ссылка на блоки и идентификаторы состояний
  • name: Имя блока

  • stateIdx: Идентификатор состояния

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

  • blockIdx: Идентификатор блока

zcEventsПерекрестная ссылка на временные метки событий пересечения нулей и соответствующие идентификаторы состояний
  • tОтметка времени события

  • srcIdx: Идентификатор блока

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

  • stateIdx: Идентификатор состояния

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

resetTime: Сохраняет метки времени сброса решателя.Ничего
tout: Сохраняет время моделирования.Ничего

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

Подробнее

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

Представлен в R2016a