Проверки Simulink Performance Advisor

Обзор проверки Simulink Performance Advisor

Используйте проверки Performance Advisor, чтобы улучшить время симуляции модели.

См. также

Повышение эффективности симуляции с помощью Performance Advisor

Основание

Установите измерение для сравнения эффективности симуляции после того, как Performance Advisor реализует улучшения.

См. также

Создайте базовое измерение Performance Advisor

Проверки, которые требуют обновления схемы

Эти проверки требуют, чтобы Update Diagram происходило в порядок для выполнения.

См. также

Повышение эффективности симуляции с помощью Performance Advisor

Проверки, которые требуют выполнения симуляции

Эти проверки требуют симуляции, чтобы запустить порядок, чтобы собрать достаточное количество эффективности данных. Performance Advisor сообщает результаты после завершения симуляции.

См. также

Повышение эффективности симуляции с помощью Performance Advisor

Проверяйте настройки режимов симуляции

Эти проверки оценивают режимы симуляции (Normal, Accelerator, Rapid Accelerator, Rapid Accelerator с актуальной проверкой) и идентифицируют оптимальный режим для достижения самой быстрой симуляции.

См. также

Что такое ускорение?

Проверяйте настройки оптимизации компилятора

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

См. также

Уровень оптимизации компилятора

Проверьте настройки аппаратного ускорения

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

См. также

Аппаратное ускорение

Создайте базовый уровень

Установите этот флажок, чтобы создать базовый уровень при запуске Performance Advisor. Опорную структуру можно также создать вручную. Базовая структура является измерением эффективности симуляции перед запуском проверок в Performance Advisor. Базовая линия включает время выполнения симуляции и результаты симуляции (записанные сигналы). Перед созданием опорной структуры для модели на панели Data Import/Export диалогового окна Параметры конфигурации (Configuration Parameters):

  • Установите флажок States.

  • Установите параметр Format равным Structure with time.

См. также

Создайте базовое измерение Performance Advisor

Идентифицируйте ресурсоемкие настройки диагностики

Чтобы улучшить скорость симуляции, отключите диагностику, где это возможно. Для примера, некоторые диагностики, такие как Solver data inconsistency или Array bounds exceeded, несут перегрузки во время выполнения во время симуляции.

См. также

Проверяйте настройки оптимизации

Чтобы улучшить скорость симуляции, включите оптимизацию, где это возможно. Для примера, если некоторые оптимизации, такие как Сокращение блоков, отключены, включите эти оптимизации, чтобы улучшить скорость симуляции.

Можно также сравнить скорость компиляции для скорости симуляции путем установки уровня оптимизации компилятора. Оптимизация компилятора для ускорений по умолчанию отключена. Включение их ускоряет запуски симуляции, но приводит к увеличению времен сборки. Скорость и эффективность компилятора C, используемого для режимов Accelerator и Rapid Accelerator, также влияют на время, необходимое на шаге компиляции.

См. также

Идентифицируйте неэффективные блоки интерполяционной таблицы

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

См. также

Проверяйте режим симуляции системных блоков MATLAB

В целом, чтобы улучшить скорость симуляции, выберите Code generation для параметра Simulate using блока MATLAB System. Потому что обмен данными между MATLAB® и Simulink® проходит через несколько программных слоев, Interpreted execution обычно замедляет симуляции, особенно если модели нужно много обменов данными.

Эта проверка определяет, какие системные блоки MATLAB могут генерировать код, и изменяет значение параметров Simulate using на Code generation где это возможно.

Пока Code generation не поддерживает все функции MATLAB, подмножество языка MATLAB, которое он поддерживает, обширно. При помощи этой Code generation, можно улучшить эффективность.

См. также

Идентифицируйте интерпретированные функциональные блоки MATLAB

Чтобы улучшить скорость симуляции, замените блоки Interpreted MATLAB Function на блоки MATLAB Function, где это возможно. Поскольку обмен данными между MATLAB и Simulink проходит через несколько программных слоев, Interpreted MATLAB Function блоки обычно медленно моделируют, особенно если модели нужно много обменов данными.

Кроме того, поскольку вы не можете скомпилировать Interpreted MATLAB Function, блок Interpreted MATLAB Function препятствует попыткам использовать режим ускорения для ускорения симуляций.

Хотя блоки MATLAB Function не поддерживают все функции MATLAB, подмножество языка MATLAB, которое он поддерживает, обширно. Заменив интерпретированный код MATLAB на код, который использует только это встраиваемое подмножество MATLAB, можно улучшить эффективность.

См. также

Идентифицируйте настройки цели симуляции

Чтобы улучшить скорость симуляции, отключите настройки цели симуляции, где это возможно. Для примера в диалоговом окне Параметры конфигурации снимите флажок Simulation Target > Echo expression without semicolons, чтобы улучшить скорость симуляции.

См. также

Проверьте модель-ссылку перестроите настройку

Чтобы улучшить скорость симуляции, в диалоговом окне Параметров конфигурации проверьте, что для параметра Model Referencing > Rebuild задано значение If any changes in known dependencies detected.

См. также

Идентифицируйте блоки Scope

Открытые и необычные блоки Scope могут повлиять на эффективность симуляции. Чтобы улучшить эффективность симуляции, закройте и закройте Возможности блоки. Щелкните правой кнопкой мыши блок возможностей и выберите Comment Out.

Для открытых возможности улучшить скорость симуляции, сократив обновления. В меню Simulation возможности выберите Reduce Updates to Improve Performance.

См. также

Идентифицируйте активные настройки инструментирование на модели

Идентифицируйте активные настройки инструментирование в модели. Режим инструментирование с фиксированной точкой управляет тем, какие объекты регистрируют данные минимума, максимума и переполнения во время симуляции. Инструментирование требуется для сбора областей значений симуляции с помощью Fixed-Point Tool. Эти области значений используются для предложения типов данных для модели (требует Fixed-Point Designer™). Когда вы не активно преобразуете модель в фиксированную точку, отключите инструментирование с фиксированной точкой, чтобы восстановить максимальную скорость симуляции в вашей модели.

На вкладке Apps выберите Fixed-Point Tool. В разделе System under design нажмите Continue.

На панели «Иерархия модели» Fixed-Point Tool обозначает системы, в которых в настоящее время включено инструментирование с (mmo), или (o). Щелкните правой кнопкой мыши систему в иерархии модели и, под Fixed-point instrumentation mode, выберите Use local settings или Force off.

См. также

Проверяйте модель-ссылку параллельную сборку

Чтобы улучшить симуляцию, проверьте количество моделей-ссылок в модели. Если существует две или более моделей-ссылок, создайте модель параллельно, если это возможно.

Performance Advisor анализирует модель и оценивает время сборки на текущем компьютере как при использовании нескольких ядер. Он также оценивает время параллельных сборок модели таким же образом, как и оценка, если бы на компьютере было установлено программное обеспечение Parallel Computing Toolbox™ или MATLAB Parallel Server™. Performance Advisor выполняет эту оценку следующим образом:

  1. Поиск в модели ссылочных моделей, которые не ссылаются на другие модели ссылок.

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

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

  4. Создайте эту модель, чтобы получить время сборки.

  5. Основываясь на количестве блоков и времени сборки для этой ссылочной модели, оцените время сборки для всех других ссылочных моделей.

  6. Основываясь на этих временах сборки, оцените время параллельных сборок для верхней модели.

Чтобы вычислить служебное время, введенное механизмом параллельного построения, установите коэффициент оценки служебного времени параллельного построения. Performance Advisor вычисляет предполагаемое время сборки с накладными расходами как:

(1 + Parallel Build Overhead Time Estimation Factor) * (Время сборки на одной машине)

См. также

Проверяйте настройку кольцевого буфера блока Delay

Чтобы улучшить симуляцию, проверяйте, что каждый блок Delay в модели использует соответствующий тип буфера. По умолчанию блок использует буфер массива (опция Use circular buffer for state не выбрана). Однако, когда длина задержки большая, циклический буфер может улучшить скорость выполнения, сохраняя количество операций копирования постоянным.

Если блок Delay в данный момент использует буфер массива, и все следующие условия равны true, Performance Advisor выбирает циклический буфер:

  • Блок Delay находится в основанном на выборке режиме, то есть либо параметр Input processing установлен в Elements as channels (sample based), или тип входного сигнала устанавливается на Sample based.

  • Значение или верхний предел длины задержки составляет 10 или более.

  • Размер состояния - равный длине задержки, умноженной на общую длину всех выходных сигналов - составляет 1000 или больше.

См. также

Проверяйте непрерывную и дискретную муфту скорости

Если ваша модель содержит как дискретные, так и непрерывные скорости, связь между этими скоростями может замедлить симуляцию. Performance Advisor проверяет эти условия в вашей модели.

  • Модель использует решатель переменного шага.

  • Модель содержит как непрерывные, так и дискретные скорости.

  • Самая быстрая дискретная скорость относительно меньше, чем Max step size определено решателем.

Установка DecoupledContinuousIntegration параметр в on может ускорить симуляцию.

См. также

Проверяйте влияние пересечения нулем на непрерывное интегрирование

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

  • Модель использует решатель с переменной степенью.

  • Модель содержит блоки, которые имеют непрерывные состояния и пересечения нулем.

  • Некоторые пересечения пересечений нулем не влияют на интегрирование непрерывных состояний.

Установка MinimalZcImpactIntegration параметр в On может ускорить симуляцию.

См. также

Проверяйте дискретные сигналы, приводящие в действие производный порт

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

Можно отредактировать модель вокруг обнаруженных дискретных сигналов, которые управляют этими блоками, чтобы удалить такие случаи. Например, вставка Zero Order Hold блока между дискретным сигналом и соответствующим блоком с непрерывными состояниями может помочь решить проблему.

См. также

Проверяйте выбор типа решателя

Чтобы улучшить симуляцию, проверяйте, что модель использует соответствующий тип решателя.

Явный и неявный решатели

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

МодельРекомендуемый решатель
Представляет жесткую системуode15s
Не представляет жесткую системуode45

Performance Advisor использует эвристику, показанную в таблице, чтобы выбрать между явным и неявным решателями.

Исходный решательPerformance Advisor
Переменный решатель шага

Сначала вычисляет жесткость системы при 0. Затем:

  • Если жесткость больше 1000, Performance Advisor выбирает ode15.

  • Если жесткость меньше 1000, Performance Advisor выбирает ode45.

Решатель с непрерывным фиксированным шагом
  • Если жесткость больше 1000, Performance Advisor выбирает ode14x.

  • Если жесткость меньше 1000, Performance Advisor выбирает ode3.

Этот эвристический метод работает лучше всего, если жесткость системы не изменяется во время симуляции. Если жесткость системы изменяется со временем, выберите наиболее подходящий решатель для этой системы, а не один Performance Advisor.

См. также

Выберите многопоточную настройку ко-симуляции on или off

Настройте настройки ко-симуляции для лучшей эффективности и точности.

  • Проверьте и верните изменения, если время симуляции увеличивается - Performance Advisor возвращает предыдущие настройки ко-симуляции, когда время симуляции увеличивается.

  • Проверьте и верните изменения, если степень точности больше допуска - Performance Advisor возвращает предыдущие настройки ко-симуляции, если степень точности больше допуска.

Совет

Вы можете использовать tic и toc функции для измерения времени симуляции.

См. также

Идентифицируйте сигналы ко-симуляции для числовой компенсации

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

  • Проверьте и верните изменения, если время симуляции увеличивается - Performance Advisor возвращает предыдущие настройки ко-симуляции, время симуляции увеличивается.

  • Проверьте и верните изменения, если степень точности больше допуска - Performance Advisor возвращает ко-симуляции, если степень точности больше допуска.

Совет

Вы можете использовать tic и toc функции для измерения времени симуляции.

См. также

Проверяйте настройки области Dataflow

Чтобы увеличить пропускную способность области dataflow, может быть выгодно увеличить задержку системы. Performance Advisor анализирует области dataflow в вашей модели и находит оптимальные настройки задержки. Анализ также идентифицирует любые другие ограничения многопоточности в областях dataflow.

Анализ dataflow является многостадийным процессом, где анализ может симулировать модель с профилированием во время выполнения, активированным для каждого блока в областях dataflow, перед выполнением анализа разбиения.

После завершения анализа Performance Advisor предлагает значение задержки, которое оптимизирует пропускную способность системы для многоядерной архитектуры центрального процессора хоста-компьютера и идентифицирует любые другие ограничения многопоточности в dataflow областей

См. также

Выберите режим симуляции

Чтобы достичь самого быстрого времени симуляции, используйте эту проверку, чтобы оценить следующие режимы и идентифицировать оптимальный выбор:

  • Нормальный

  • Акселератор

  • Быстрый Accelerator

  • Быстрый Accelerator с актуальной проверкой

В режиме Normal Mode Simulink интерпретирует вашу модель во время каждого запуска симуляции. Если вы часто изменяете модель, это обычно предпочтительный режим, который нужно использовать, потому что он не требует отдельного шага компиляции. Это также обеспечивает максимальную гибкость для внесения изменений в вашу модель.

В режиме Accelerator Simulink компилирует модель в двоичную общую библиотеку или DLL, где это возможно, устраняя накладные расходы между блоками интерпретированного симуляции в режиме normal mode. Режим Accelerator поддерживает отладчик и профилировщик, но не диагностику во время выполнения.

В режиме Rapid Accelerator скорости симуляции самые быстрые, но этот режим работает только с моделями, где код С доступен для всех блоков в модели. Кроме того, этот режим не поддерживает отладчик или профилировщик.

При выборе Rapid Accelerator с актуальной проверкой Performance Advisor не выполняет актуальную проверку во время симуляции. Можно запускать исполняемый файл Rapid Accelerator неоднократно во время настройки параметров, не внося накладных расходов на актуальные проверки. Например, если у вас есть большая модель или модель, которая широко использует модель-ссылку, этот метод выполнения может увеличить эффективность.

Для моделей с 3-D сигналами лучше всего работают режимы Normal или Accelerator.

См. также

Выберите оптимизацию компилятора on или off

Используйте эту проверку, чтобы определить, может ли выполнение оптимизации компилятора помочь улучшить скорость симуляции. Оптимизация может быть выполнена только в режимах Accelerator или Rapid Accelerator.

Примечание

Эта проверка будет пропущена, если MATLAB не настроен на использование оптимизирующего компилятора.

См. также

Выберите оборудование ускорения

Эта проверка сравнит три опции оборудования ускорения на основе их времен симуляции.

  • Off - Аппаратное ускорение отключено, и SIMD не используется.

  • Leverage generic hardware (Faster, no rebuild) - Используйте инструкции SIMD для аппаратного обеспечения в соответствии с системными требованиями Simulink. Эта опция не требует перестроения модели для симуляции при изменении хоста-компьютера.

  • Leverage native hardware (Fastest, rebuild allowed) - Используйте инструкции SIMD для оборудования, встроенного в хост-компьютер. Эта опция может потребовать перестроения модели для симуляции при изменении хоста-компьютера.

Вы можете выбрать аппаратное ускорение на основе сравнения.

См. также

Окончательная валидация

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

Глобальные параметры для валидации не применяются к этой проверке. Если вы не подтвердили улучшение эффективности из-за изменений, полученных в результате других проверок, используйте эту проверку, чтобы выполнить окончательную валидацию всех изменений в модели.

См. также