Идентифицируйте узкие места производительности решателя
Используйте Solver Profiler, чтобы исследовать решатель и поведение модели, чтобы идентифицировать проблемы, которые могут способствовать плохой производительности симуляции.
Используйте Solver Profiler, чтобы анализировать модель для шаблонов, которые влияют на ее симуляцию. Solver Profiler представляет графическую и статистическую информацию о симуляции, настройках решателя, событиях и ошибках. Можно использовать эти данные, чтобы идентифицировать местоположения в модели, которая вызвала узкие места симуляции.
Кроме того, существует несколько факторов, которые могут ограничить скорость симуляции. Solver Profiler регистрирует и сообщает обо всех крупных событиях, которые происходят при симуляции модели:
События пересечения нулем
События исключения решателя
Решатель сбросил события
Якобиевские события вычисления
Эти события распространены и необходимы для точной симуляции. Однако они действительно несут вычислительные расходы, и частые случаи могут замедлиться или даже остановить симуляцию.
Trace
Filter
Explore
Statistics
Step Size
Suggestions
Откройте 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 вызывает нулевые события пересечения.
States & Zero Crossing
— Save утверждает к файлуПо умолчанию профилировщик не сохраняет состояния модели. Включение этого параметра конфигурирует профилировщик, чтобы сохранить состояния в MAT-файл.
Simscape States
— Сохраните состояния Simscape™ в файлПозвольте этому параметру сохранить состояния Simscape в MAT-файл.
Model Jacobian
— SaveОпция, чтобы регистрировать матрицы якобиана решателя к памяти. Эта опция полезна для симуляций, которые используют неявные решатели. Для сравнения решателей смотрите, Сравнивают Решатели.
From
— Время начала профилировщикаВремя, в секундах, симуляции, что профилировщик начинает анализировать модель. Это не то же самое как время начала симуляции.
To
— Время остановки профилировщикаВремя, в секундах, симуляции, к которой профилировщик должен профилировать модель. По умолчанию анализ продолжается до конца симуляции. Изменение этого параметра не изменяет время остановки модели, которую вы задаете в Образцовых Параметрах конфигурации.
Значение меньше, чем сконфигурированное время остановки модели останавливает профилирование и симуляцию в StopTime
.
Buffer
— Влияние памяти журналированияМаксимальное количество событий, которые регистрируются. Если количество регистрируемых событий достигает этого значения, и память доступна, увеличение BufferSize
. Если память ограничивается, рассмотрите понижение значения.
Solver Exception
— Покажите события исключения решателяПозвольте этому параметру подсветить события исключения решателя в графике Размера Шага Solver Profiler.
Solver Reset
— Покажите события сброса решателяПозвольте этому параметру подсветить события сброса решателя в графике Размера Шага Solver Profiler.
Zero Crossing
— Покажите нулевые события пересеченияПозвольте этому параметру подсветить нулевые события пересечения в графике Размера Шага Solver Profiler.
Jacobian Update
— Покажите якобиевские события обновленияПозвольте этому параметру подсветить якобиевские события обновления в графике Размера Шага Solver Profiler.
Rule Customization
— Измените пороги для правил профилировщикаНажмите 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 : Хранит информацию на состояниях блока |
|
blockInfo : перекрестная ссылка блоков и удостоверений личности штата |
|
zcSrcInfo : Хранит информацию на блоках, вызывающих нулевые события пересечения |
|
zcEvents : перекрестная ссылка меток времени нулевых событий пересечения и соответствующих удостоверений личности штата |
|
exceptionEvents : перекрестная ссылка меток времени события исключения, ID соответствующего состояния, которое вызвало событие и причину. |
|
resetTime : метки времени Хранилищ сброса решателя. | 'none' |
tout : времена симуляции Хранилищ. | 'none' |
Типы данных: double
Статистические данные разделяют информацию об отображениях на области о параметрах модели, включая:
Средний размер шага — мера как быстро усовершенствования решателя. Это вычисляется как общее время симуляции, разделенное на количество шагов используемый решатель. Это ограничено образцовыми параметрами конфигурации размер шага Max и размер шага Min.
Использование размера шага Max — процент максимальных размеров шага используется решателем среди всех размеров шага.
Нулевое пересечение — специфичное для решателя событие, которое влияет на образцовую динамику. Во время симуляции решатель обнаруживает нулевое пересечение. Нулевое обнаружение пересечения несет расходы вычисления. Для получения дополнительной информации смотрите Обнаружение Пересечения нулем.
Сброс решателя — событие, которое заставляет решатель сбрасывать свои параметры. Обнаружение сброса решателя несет расходы вычисления. Статистические данные сброса решателя разломаны на Нулевое Пересечение, Дискретный Сигнал, Сигнал ZOH, Изменение Блока, Начальный Сброс и Внутренние события сброса решателя. Для получения дополнительной информации смотрите Сброс Решателя
Исключение решателя — событие, которое представляет решатель, не могущий решить образцовые состояния, чтобы соответствовать спецификациям точности. Чтобы решить образцовые состояния точно, решатель должен запустить несколько настроенных испытаний, которые несут расходы вычисления.
Исключение контроля ошибок — событие, где решение, полученное решателем, имеет ошибку, которая больше, чем спецификация допуска.
Исключение итерации ньютона — событие, характерное для неявных решателей. Итерации ньютона не сходятся после нескольких испытаний.
Исключение состояния Бога — событие, где одно или несколько состояний, решенных решателем, бесконечны.
Исключение итерации ньютона ДАУ — событие, характерное для неявных решателей для моделей Simscape. Итерация Ньютона не сходится даже при том, что решатель нарушает минимальное ограничение размера шага.
Предложения и исключения разделяют информацию об отображениях на области об исключениях, включая:
Нулевое пересечение — специфичное для решателя событие, которое влияет на образцовую динамику. Во время симуляции решатель обнаруживает нулевое пересечение. Нулевое обнаружение пересечения несет расходы вычисления. Для получения дополнительной информации смотрите Обнаружение Пересечения нулем.
Сброс решателя — событие, которое заставляет решатель сбрасывать свои параметры. Обнаружение сброса решателя несет расходы вычисления. Статистические данные сброса решателя разломаны на Нулевое Пересечение, Дискретный Сигнал, Сигнал ZOH, Изменение Блока, Начальный Сброс и Внутренние события сброса решателя. Для получения дополнительной информации смотрите Сброс Решателя
Исключение решателя — событие, которое представляет решатель, не могущий решить образцовые состояния, чтобы соответствовать спецификациям точности. Чтобы решить образцовые состояния точно, решатель должен запустить несколько настроенных испытаний, которые несут расходы вычисления.
Исключение контроля ошибок — событие, где решение, полученное решателем, имеет ошибку, которая больше, чем спецификация допуска.
Исключение итерации ньютона — событие, характерное для неявных решателей. Итерации ньютона не сходятся после нескольких испытаний.
Исключение состояния Бога — событие, где одно или несколько состояний, решенных решателем, бесконечны.
Исключение итерации ньютона ДАУ — событие, характерное для неявных решателей для моделей Simscape. Итерация Ньютона не сходится даже при том, что решатель нарушает минимальное ограничение размера шага.
Панель Solver Reset показывает сведенный в таблицу список сброса решателя, который произошел при симуляции модели. Каждая строка таблицы соответствует блоку в модели. Следующие причины сброса решателя зарегистрированы:
Нулевое пересечение
Дискретный сигнал
Сигнал ZOH
Блокируйте изменение
Начальный сброс
Внутренний
Проводник состояний | Нулевой проводник пересечения | solverprofiler.profileModel
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.