Ускорьте моделирование путем ускорения фазы инициализации, использования этих методов.
Объедините графику, и большие изображения занимают много времени, чтобы загрузить и представить. Блоки маскированные, которые содержат такие изображения, могут сделать вашу модель менее быстро реагирующей. Где возможно, удалите комплексные рисунки и изображения от блоков маскированных.
Если вы хотите сохранить изображение, замените его на меньшую, версию с низкой разрешающей способностью. Используйте редактор маски и отредактируйте команды рисования значка, чтобы сохранить изображение, которое загружается вызовом image()
.
Для получения дополнительной информации о редакторе маски см. Редактор Маски Обзор.
Когда вы открываете или обновляете модель, Simulink® запускает код инициализации маски. Если ваша модель содержит сложные команды инициализации маски, которые содержат много вызовов set_param
, консолидируют последовательные вызовы в единственный вызов с несколькими парами аргумента. Консолидация вызовов может уменьшить издержки, сопоставленные с этими вызовами функции.
Чтобы узнать больше, см. Код Обратного вызова Маски.
При использовании скрипты MATLAB®, чтобы загрузить и инициализировать данные, можно улучшить производительность путем загрузки MAT-файлов вместо этого. Данные в MAT-файле находятся в двоичном файле и могут быть более трудными работать с, чем скрипт. Однако операция загрузки обычно инициализирует данные более быстро, чем эквивалентный скрипт MATLAB.
Для получения дополнительной информации смотрите MAT-файлы для Данных сигнала.
В целом, чем более интерактивный модель, тем дольше она берет, чтобы моделировать. Используйте эти методы, чтобы уменьшить интерактивность вашей модели.
Некоторые активированные диагностические опции могут значительно замедлить моделирования. Рассмотрите отключение их в образцовой панели Диагностики параметров конфигурации.
Рабочие границы Массивов превысили, и противоречивость данных Решателя может замедлить образцовую производительность во время выполнения. Для получения дополнительной информации смотрите, что границы Массивов превысили и противоречивость данных Решателя.
После проверки, что ваш код MATLAB работает правильно, отключите эти регистрации образцовой Целевой панели Моделирования параметров конфигурации.
Включите отладку/анимацию
Обнаружьте переносятся на переполнении (с отладкой)
Повторите выражения без точек с запятой
Для получения дополнительной информации смотрите Образцовые Параметры конфигурации: Цель Моделирования.
Если ваше моделирование включает низкоуровневые операции над матрицей MATLAB, пользуйтесь библиотеками Basic Linear Algebra Subprograms (BLAS), чтобы использовать высоко оптимизированные внешние стандартные программы линейной алгебры.
По умолчанию графики Stateflow® подсвечивают текущие активные состояния в модели и анимируют изменения состояния, которые происходят, когда модель моделирует. Эта функция полезна для отладки, но это замедляет моделирование.
Чтобы ускорить моделирования, или закройте все диаграммы Stateflow или отключите анимацию. Точно так же рассмотрите анимацию отключения или сокращение точности сцены, когда вы будете использовать:
Simulink 3D Animation™
Визуализация Simscape™ Multibody™
FlightGear
Любой другой 3D пакет анимации
Чтобы узнать больше, смотрите, Ускоряют Моделирование (Stateflow).
Если ваша модель содержит средство просмотра осциллографа, которое отображает высокий показатель журналирования, и вы не можете удалить осциллограф, настроить свойства средства просмотра обменять точность на рендеринг скорости.
Однако, когда вы используете десятикратное уменьшение, чтобы сократить количество нанесенных на график точек данных, можно скучать по коротким переходным процессам и другим явлениям, которые вы видите с большим количеством точек данных. Чтобы иметь более точный контроль над включением визуализации, поместите средства просмотра в активированные подсистемы.
Для получения дополнительной информации смотрите Средство просмотра Осциллографа.
Используйте эти методы, чтобы улучшить производительность моделирования путем упрощения модели, не жертвуя точностью.
Замените комплексную подсистему на одну из этих альтернатив:
Линейная или нелинейная динамическая модель, которая была создана из измеренных данных ввода - вывода с помощью Системы идентификации Toolbox™.
Высокочастотная, нелинейная статистическая модель, которая была создана с помощью Основанной на модели Калибровки Toolbox™.
Линейная модель, которая была создана с помощью Управления Simulink Design™.
Интерполяционная таблица. Для получения дополнительной информации смотрите интерполяционную таблицу.
Можно поддержать оба представления подсистемы в библиотеке и использовать различные подсистемы, чтобы управлять ими. В зависимости от модели можно сделать эту замену, не влияя на полный результат. Для получения дополнительной информации смотрите, Оптимизируют Сгенерированный код для Блоков Интерполяционной таблицы.
Когда вы сокращаете количество блоков в вашей модели, меньше блоков требует обновлений во время моделирований, и моделирование быстрее.
Векторизация является одним способом уменьшить ваше блочное количество. Например, если у вас есть несколько параллельных сигналов, которые подвергаются подобному набору вычислений, пытаются объединить их в вектор с помощью блока Mux и выполнить единственное вычисление.
Можно также включить Блочный параметр Сокращения в диалоговом окне Параметров конфигурации.
В основанной на кадре обработке, выборках процессов Simulink в пакетах вместо по одному. Если модель включает аналого-цифровой конвертер, например, можно собрать выходные выборки в буфере. Обработайте буфер в единственной операции, такой как быстрое преобразование Фурье. Обработка данных во фрагментах, этот путь уменьшает число раз, что моделирование должно вызвать блоки в модели.
В целом планирование наверху уменьшается, когда формат кадра увеличивается. Однако большие кадры используют больше памяти, и ограничения памяти могут оказать негативное влияние на производительность сложных моделей. Экспериментируйте с различными форматами кадра, чтобы найти тот, который максимизирует выигрыш в производительности основанной на кадре обработки, не вызывая проблемы памяти.
Simulink обеспечивает всестороннюю библиотеку решателей, включая фиксированный шаг и решатели переменного шага, чтобы обработать жесткие и нежесткие системы. Каждый решатель определяет время следующего шага моделирования. Решатель применяет численный метод решить обыкновенные дифференциальные уравнения, которые представляют модель.
Решатель, который вы выбираете и опции решателя, которые вы выбираете, может влиять на скорость симуляции. Выберите и сконфигурируйте решатель, который помогает повысить производительность вашей модели с помощью этих критериев. Для получения дополнительной информации смотрите, Выбирают Solver (Global Optimization Toolbox).
Жесткая система имеет непрерывные движущие силы, которые отличаются медленно и быстро. Неявные решатели особенно полезны для жестких проблем. Явные решатели лучше подходят для нежестких систем. Используя явный решатель, чтобы решить жесткую систему может привести к неправильным результатам. Если нежесткий решатель использует размер очень небольшого шага, чтобы решить модель, это - знак, что ваша система жестка.
Когда вы решаете между использованием переменного шага или решателя фиксированного шага, имеете в виду размер шага и динамику вашей модели. Выберите решатель, который использует временные шаги, чтобы получить только движущие силы, которые важны для вас. Выберите решатель, который выполняет только вычисления, должен был разработать следующий временной шаг.
Вы используете решатели фиксированного шага, когда размер шага меньше чем или равен основной частоте дискретизации модели. С решателем переменного шага может отличаться размер шага, потому что решатели переменного шага динамически настраивают размер шага. В результате размер шага в течение некоторого времени продвигается, больше, чем основная частота дискретизации, сокращая количество шагов, требуемых завершать моделирование. В целом моделирования с решателями переменного шага запускаются быстрее, чем те, которые запускаются с решателями фиксированного шага.
Выберите решатель фиксированного шага, когда основная частота дискретизации вашей модели будет равна одной из частот дискретизации. Выберите решатель переменного шага, когда основная частота дискретизации вашей модели будет меньше, чем самая быстрая частота дискретизации. Можно также использовать решатели переменного шага, чтобы получить непрерывную динамику.
Когда вы уменьшаете порядок решателя, вы сокращаете количество вычислений, которые Simulink выполняет, чтобы определить выходные параметры состояния, который улучшает скорость симуляции. Однако результаты становятся менее точными, когда порядок решателя уменьшается. Выберите самый низкий порядок решателя, который приводит к результатам с приемлемой точностью.
Увеличение допуска размера или ошибки шага решателя обычно увеличивает скорость симуляции за счет точности. Внесите эти изменения с осторожностью, потому что они могут заставить Simulink пропускать потенциально важную динамику во время моделирований.
Решатели переменного шага динамически настраивают размер шага, увеличивая его, когда переменная изменяется медленно и уменьшение его, когда переменная изменяется быстро. Это поведение заставляет решатель делать много небольших шагов около разрыва, потому что это - когда переменная изменяется быстро. Точность улучшается, но часто за счет длинных времен симуляции.
Чтобы избежать маленьких временных шагов и долгих моделирований, сопоставленных с этими ситуациями, Симулинк использует обнаружение пересечения нулем, чтобы определить местоположение таких разрывов точно. Для систем, которые показывают частые колебания между режимами работы — явлением, известным болтающий — это обнаружение пересечения нулем может иметь противоположный эффект и таким образом замедлить моделирования. В этих ситуациях можно отключить обнаружение пересечения нулем, чтобы улучшить производительность.
Можно включить или отключить обнаружение пересечения нулем для определенных блоков в модели. Чтобы улучшить производительность, рассмотрите обнаружение пересечения нулем отключения для блоков, которые не влияют на точность моделирования.
Для получения дополнительной информации смотрите Обнаружение Пересечения нулем.
В классическом рабочем процессе модель Simulink неоднократно моделирует для различных входных параметров, граничных условий и условий работы. Во многих ситуациях эти моделирования совместно используют общую фазу запуска в который образцовые переходы от начального состояния до другого состояния. Например, можно принести электродвигателю до скорости, прежде чем вы протестируете различные управляющие последовательности.
Используя SimState
, можно сохранить состояние моделирования в конце фазы запуска и затем восстановить его для использования в качестве начального состояния для будущих моделирований. Этот метод не улучшает скорость симуляции, но это может уменьшить общее время симуляции для последовательных выполнений, потому что фаза запуска должна быть моделирована только однажды.
Смотрите Сохраняют и состояние Моделирования Восстановления как SimState для получения дополнительной информации.