exponenta event banner

Ускорение моделирования

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

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

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

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

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

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

  • Шкала времени слишком велика. Сократите временной интервал.

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

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

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

  • Модель подает блок случайных чисел в блок интегратора. Для непрерывных систем используйте блок «Белый шум с ограниченным диапазоном» в библиотеке источников.

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

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

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

Подробнее