Simulink проверки Performance Advisor

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

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

Смотрите также

Улучшайте производительность симуляции Используя Performance Advisor

BaseLine

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

Смотрите также

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

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

Эти проверки требуют, чтобы Update Diagram произошел для того, чтобы запуститься.

Смотрите также

Улучшайте производительность симуляции Используя Performance Advisor

Проверки, которые Требуют, чтобы Симуляция Запустилась

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

Смотрите также

Улучшайте производительность симуляции Используя Performance Advisor

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

Эти проверки оценивают режимы симуляции (Нормальный, Акселератор, Быстрый Акселератор, Быстрый Акселератор с актуальным вычетом) и идентифицируют оптимальный режим, чтобы достигнуть самой быстрой симуляции.

Смотрите также

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

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

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

Смотрите также

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

Создайте базовую линию

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

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

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

Смотрите также

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

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

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

Смотрите также

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

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

Можно также обменять скорость времени компиляции на скорость симуляции путем установки уровня компиляторной оптимизации. Оптимизация компилятора для ускорений отключена по умолчанию. Включение их ускоряет запуски симуляции, но заканчивается в более длительные времена сборки. Скорость и КПД компилятора C, используемого для Акселератора и Быстрых Режимов Accelerator также, влияют на время, требуемое на шаге компиляции.

Смотрите также

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

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

Смотрите также

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

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

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

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

Смотрите также

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

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

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

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

Смотрите также

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

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

Смотрите также

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

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

Смотрите также

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

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

Для открытых Осциллографов можно улучшить скорость симуляции путем сокращения обновлений. В меню Scope 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 + Параллельная Сборка Служебный Фактор Оценки Времени) * (Время сборки на одной машине)

Смотрите также

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

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

Если блок Delay в настоящее время использует буфер массивов, и все следующие условия верны, 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 выбирает ode15s.

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

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

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

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

Смотрите также

Выберите установку co-симуляции мультипотока на или прочь

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

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

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

Совет

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

Смотрите также

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

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

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

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

Совет

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

Смотрите также

Проверяйте настройки области потока данных

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

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

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

Смотрите также

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

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

  • Нормальный

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

  • Быстрый акселератор

  • Быстрый Акселератор с актуальным вычетом

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

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

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

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

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

Смотрите также

Выберите оптимизацию компилятора на или прочь

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

Примечание

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

Смотрите также

Итоговая валидация

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

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

Смотрите также