Ускорьте симуляцию

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

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

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

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

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

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

  • Масштаб времени является слишком длинным. Уменьшайте временной интервал.

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

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

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

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

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

  • Необходимо симулировать модель итеративно. Вы изменяете настраиваемые параметры между итерациями, но не вносите структурные изменения в модель. Каждая итерация требует, чтобы модель скомпилировала снова, таким образом увеличив полное время симуляции. Использование быстро перезапускает, чтобы выполнить итеративные симуляции. В этом рабочем процессе модель компилирует только однажды, и итеративные симуляции связываются к одной фазе компиляции. Смотрите, Как Быстрый Перезапуск Улучшает Итеративные Симуляции для получения дополнительной информации.

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

Больше о