Ускорение симуляции

Несколько факторов могут замедлить симуляцию. Проверьте свою модель на некоторые из этих условий.

  • Ваша модель включает блок Interpreted MATLAB Function. Когда модель включает в себя Interpreted MATLAB Function блок, MATLAB® механизм выполнения вызывается на каждом временном шаге, резко замедляя симуляцию. Используйте блок Math Function по возможности.

  • Ваша модель включает в себя S-функцию файла MATLAB. ФАЙЛЫ MATLAB S-функции также вызывают механизм выполнения MATLAB на каждом временном шаге. Рассмотрите преобразование S-функции либо в подсистему, либо в S-функцию файла MEX на C.

  • Ваша модель включает блок Memory. Использование блока Memory приводит к тому, что решатели переменного порядка (ode15s и ode113) для возврата к порядку 1 на каждом временном шаге.

  • Максимальный размер шага слишком мал. Если вы изменили максимальный размер шага, попробуйте запустить симуляцию снова со значением по умолчанию (auto).

  • Ваши требования к точности слишком высоки. Относительная погрешность по умолчанию (точность 0,1%) обычно достаточен. Для моделей с состояниями, которые идут в нуль, если параметр абсолютной погрешности слишком мал, симуляция может сделать слишком много шагов вокруг значений почти нулевого состояния. Обсуждение этой ошибки смотрите в Максимальном порядке.

  • Слишком длинная шкала времени. Уменьшите временной интервал.

  • Задача жесткая, но вы используете нежесткий решатель. Попробуйте использовать ode15s. Для получения дополнительной информации смотрите Жесткость системы.

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

  • Модель содержит алгебраический цикл. Решения алгебраических циклов итерационно вычисляются на каждом временном шаге. Поэтому они сильно ухудшают эффективность. Для получения дополнительной информации см. Алгебраические Циклы Концепций.

  • Ваша модель подает блок Случайное число в блок Integrator. Для непрерывных систем используйте блок Band-Limited White Noise в библиотеке Sources.

  • Ваша модель содержит средство просмотра возможностей, которое отображает слишком много точек данных. Попробуйте настроить параметры свойства Viewer, которые могут повлиять на эффективность. Для получения дополнительной информации см. раздел Scope Viewer.

  • Вам нужно итерационно симулировать модель. Вы изменяете настраиваемые параметры между итерациями, но не вносите структурных изменений в модель. Каждая итерация требует, чтобы модель компилировалась снова, таким образом увеличивая общее время симуляции. Используйте быстрый перезапуск для выполнения итерационных симуляций. В этом рабочем процессе модель компилируется только один раз, и итерационные симуляции привязаны к одной фазе компиляции. Дополнительные сведения см. в разделе «Как быстрый перезапуск улучшает итеративные симуляции».

Похожие примеры

Подробнее о