exponenta event banner

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

Ускорение фазы инициализации

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

Упрощение графики с помощью редактора масок

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

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

Дополнительные сведения о редакторе масок см. в разделе Обзор редактора масок.

Консолидация вызовов функций

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

Дополнительные сведения см. в разделе Маскирование кода обратного вызова.

Загрузка данных с помощью MAT-файла

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

Дополнительные сведения см. в разделе Файлы MAT для сигнальных данных.

Снижение интерактивности модели

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

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

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

Примечание

Превышены границы выполнения массива, и несогласованность данных решателя может снизить производительность среды выполнения модели. Дополнительные сведения см. в разделах Превышение границ массива и несогласованность данных решателя.

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

После проверки правильности работы кода MATLAB отключите эти проверки на панели «Цель моделирования» параметров конфигурации модели.

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

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

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

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

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

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

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

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

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

  • Симулинк 3D Animation™

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

  • FlightGear

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

Дополнительные сведения см. в разделе Ускорение моделирования (Stateflow).

Настройка свойств средства просмотра области

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

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

Дополнительные сведения см. в разделе Просмотр области.

Снижение сложности модели

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

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

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

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

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

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

  • Таблица подстановки. Дополнительные сведения см. в разделе Таблица подстановки.

Существует возможность ведения обоих представлений подсистемы в библиотеке и использования для управления ими подсистем вариантов. В зависимости от модели эту замену можно выполнить без влияния на общий результат. Дополнительные сведения см. в разделе Оптимизация сгенерированного кода для блоков таблицы подстановки.

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

При уменьшении числа блоков в модели меньшее количество блоков требует обновления во время моделирования, и моделирование выполняется быстрее.

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

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

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

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

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

Выбор и настройка решателя

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

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

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

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

Размер и динамика шага модели

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

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

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

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

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Обнаружение пересечения нулей.

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

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

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

Дополнительные сведения см. в разделе Сохранение и восстановление рабочей точки моделирования.

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

Подробнее