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 файла.

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

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

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

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

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

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

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

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

Фильтр

Включите этот параметр, чтобы подсветить события исключений решателя на графике Step Size Solver Profiler.

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

Включите этот параметр, чтобы выделить события пересечения нуля на графике Step Size Solver Profiler.

Включите этот параметр, чтобы выделить события обновления Якобяна на графике Step Size 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: Сохраняет информацию о состояниях блока
  • name: Имя блока

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробнее о

расширить все

Введенный в R2016a