Моделирование методов, которые улучшают производительность

Ускорьте фазу инициализации

Ускорьте моделирование путем ускорения фазы инициализации, использования этих методов.

Упростите графику Используя редактор маски

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

Если вы хотите сохранить изображение, замените его на меньшую, версию с низкой разрешающей способностью. Используйте редактор маски и отредактируйте команды рисования значка, чтобы сохранить изображение, которое загружается вызовом image().

Для получения дополнительной информации о редакторе маски см. Редактор Маски Обзор.

Консолидируйте вызовы функции

Когда вы открываете или обновляете модель, Simulink® запускает код инициализации маски. Если ваша модель содержит сложные команды инициализации маски, которые содержат много вызовов set_param, консолидируют последовательные вызовы в единственный вызов с несколькими парами аргумента. Консолидация вызовов может уменьшить издержки, сопоставленные с этими вызовами функции.

Чтобы узнать больше, см. Код Обратного вызова Маски.

Загрузите данные Используя MAT-файл

При использовании скрипты MATLAB®, чтобы загрузить и инициализировать данные, можно улучшить производительность путем загрузки MAT-файлов вместо этого. Данные в MAT-файле находятся в двоичном файле и могут быть более трудными работать с, чем скрипт. Однако операция загрузки обычно инициализирует данные более быстро, чем эквивалентный скрипт MATLAB.

Для получения дополнительной информации смотрите MAT-файлы для Данных сигнала.

Уменьшите образцовую интерактивность

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

Отключите диагностику отладки

Некоторые активированные диагностические опции могут значительно замедлить моделирования. Рассмотрите отключение их в образцовой панели Диагностики параметров конфигурации.

Примечание

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

Отключите отладку MATLAB

После проверки, что ваш код MATLAB работает правильно, отключите эти регистрации образцовой Целевой панели Моделирования параметров конфигурации.

  • Включите отладку/анимацию

  • Обнаружьте переносятся на переполнении (с отладкой)

  • Повторите выражения без точек с запятой

Для получения дополнительной информации смотрите Образцовые Параметры конфигурации: Цель Моделирования.

Используйте поддержку библиотеки BLAS

Если ваше моделирование включает низкоуровневые операции над матрицей MATLAB, пользуйтесь библиотеками Basic Linear Algebra Subprograms (BLAS), чтобы использовать высоко оптимизированные внешние стандартные программы линейной алгебры.

Отключите анимации Stateflow

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

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

  • Simulink 3D Animation™

  • Визуализация Simscape™ Multibody™

  • FlightGear

  • Любой другой 3D пакет анимации

Чтобы узнать больше, смотрите, Ускоряют Моделирование (Stateflow).

Adjust Scope Viewer Properties

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

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

Для получения дополнительной информации смотрите Средство просмотра Осциллографа.

Уменьшите сложность модели

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

Замените подсистемы на альтернативы Более низкой Точности

Замените комплексную подсистему на одну из этих альтернатив:

  • Линейная или нелинейная динамическая модель, которая была создана из измеренных данных ввода - вывода с помощью Системы идентификации Toolbox™.

  • Высокочастотная, нелинейная статистическая модель, которая была создана с помощью Основанной на модели Калибровки Toolbox™.

  • Линейная модель, которая была создана с помощью Управления Simulink Design™.

  • Интерполяционная таблица. Для получения дополнительной информации смотрите интерполяционную таблицу.

Можно поддержать оба представления подсистемы в библиотеке и использовать различные подсистемы, чтобы управлять ими. В зависимости от модели можно сделать эту замену, не влияя на полный результат. Для получения дополнительной информации смотрите, Оптимизируют Сгенерированный код для Блоков Интерполяционной таблицы.

Сократите количество блоков

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

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

  • Можно также включить Блочный параметр Сокращения в диалоговом окне Параметров конфигурации.

Используйте основанную на кадре обработку

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

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

Выберите и сконфигурируйте решатель

Simulink обеспечивает всестороннюю библиотеку решателей, включая фиксированный шаг и решатели переменного шага, чтобы обработать жесткие и нежесткие системы. Каждый решатель определяет время следующего шага моделирования. Решатель применяет численный метод решить обыкновенные дифференциальные уравнения, которые представляют модель.

Решатель, который вы выбираете и опции решателя, которые вы выбираете, может влиять на скорость симуляции. Выберите и сконфигурируйте решатель, который помогает повысить производительность вашей модели с помощью этих критериев. Для получения дополнительной информации смотрите, Выбирают Solver (Global Optimization Toolbox).

Жесткость системы

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

Образцовый размер шага и динамика

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

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

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

Уменьшите порядок решателя

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

Увеличьте допуск размера или ошибки шага решателя

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

Отключите обнаружение пересечения нулем

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

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

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

Для получения дополнительной информации смотрите Обнаружение Пересечения нулем.

Сохраните состояние моделирования

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

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

Смотрите Сохраняют и состояние Моделирования Восстановления как SimState для получения дополнительной информации.

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

Больше о

Была ли эта тема полезной?