Улучшание производительности

Предупреждение

Это содержимое характерно для программного обеспечения Simscape™ Multibody™ First Generation. Функции первого поколения намечают, чтобы быть удержанными от использования и нужно избежать.

Оптимизация механических и математических настроек

Программное обеспечение Simscape Multibody является механическим средством моделирования общего назначения. С ним можно смоделировать и симулировать много типов машин с совсем другими поведениями. В некоторых случаях настройки, которые вы используете в машинах “хорошего поведения”, не оптимальны для более трудного, чтобы симулировать системы. Simulink® и программное обеспечение Simscape Multibody дают вам большую свободу изменить механические и математические настройки, используемые в ваших симуляциях. Используйте эту гибкость, чтобы избежать ошибок симуляции и оптимизировать производительность согласно основному компромиссу между скоростью и точностью. Этот раздел объясняет методы для достижения этих целей.

Смотрите также:

Упрощение степеней свободы

В общем случае, чем больше степеней свободы (число степеней свободы) вы добавляете к своей модели, тем медленнее симуляция.

Устранение ненужных степеней свободы

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

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

Замораживание “быстро” и “медленные” степени свободы

Связанное различие может быть сделано между числом степеней свободы, которое изменяется быстро и те, которые медленно изменяются. Такие системы “жестки” (буквально, в случае жесткой пружины, которая колеблется в очень высокой частоте) и часто трудно симулировать точно в соответствующее время.

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

  1. Заморозьте или устраните “быстрое” число степеней свободы и симулируйте только “медленное” число степеней свободы.

  2. Заморозьте “медленное” число степеней свободы в некоторой представительной настройке и симулируйте движение только “быстрого” числа степеней свободы.

Такая симуляция разделения между “быстрым” и “медленным” числом степеней свободы может изолировать важные функции поведения системы при игнорировании неважных функций.

Внимание

Разделение числа степеней свободы между “быстрыми” и “медленными” наборами и симуляция двух наборов отдельно забыли связываться между двумя наборами числа степеней свободы. Только полная симуляция может получить такую связь.

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

Удаление приводов прилипания

Прилипание требует в вычислительном отношении дорогих алгебраических циклов. Если возможно, удалите блоки Joint Stiction Actuator из своей модели, чтобы ускорить его.

Симуляция в двух измерениях

Если ваша машина перемещается только в две размерности, не три, она имеет право на Simscape Multibody двумерная опция симуляции. Путем сокращения линейных и вращательных направлений с три до два и три одному, соответственно, эта опция может заметно улучшать производительность симуляции.

Смотрите выбор размерности вашей машины.

Корректировка допусков ограничения

Поддержание ограничений на число степеней свободы системы является главной и в вычислительном отношении дорогой частью симуляции. Если ваша симуляция, кажется, запускается медленно или остановки с ограничительными ошибками, особенно когда механизм проходит через определенные настройки, рассмотрите ослабление допусков ограничения и/или решателя. Этот шаг обычно ускоряет симуляцию, несмотря на то, что это также делает симуляцию менее точной. Уменьшение допусков увеличивает точность симуляции, но может увеличить время, требуемое симулировать модель.

Чтобы просмотреть и изменить эти настройки в вашей машине, смотрите Ограничения Поддержания и ссылку блока Machine Environment.

Сглаживание сингулярности движения

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

Точная сингулярность является восстанавливаемой, если они формируют изолированные настройки, которых можно избежать путем беспокойства начального состояния или “переступания” через них в процессе моделирования. В этом случае окружение точной сингулярности квазисингулярно и подходит для устойчивой обработки сингулярности. Если машина имеет целое окружение постоянно связанных сингулярных настроек, движение в том окружении не может быть симулировано. Для примеров типичной сингулярности смотрите Ошибки Несоответствия и Сингулярности Движения.

Предотвращение сингулярных начальных настроек

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

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

  • Два или больше идентичных тела пространственно совпадают в положении и ориентации.

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

Узел Simscape Multibody 1G диалогового окна Параметров конфигурации позволяет вам включать предупреждения симуляции для возможных сингулярных начальных настроек. Смотрите Отказы Симуляции Предотвращения.

Изменение решателя Simulink и допусков

Решатель Dormand-принца (ode45) тот Simulink использование по умолчанию работает хорошо на многие механические системы. Но если ваша симуляция, кажется, является медленной, и/или неточными необходимо рассмотреть изменение решателя и/или корректировку относительных и абсолютных допусков решателя. Хаотические и очень нелинейные системы особенно требуют, чтобы экспериментирование с другими решателями и допусками получило оптимальные результаты.

Консультируйтесь с документацией Simulink для больше о выборе решателей Simulink и допусков.

Решение жестких систем

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

См. документацию Simulink относительно выбора решателя (Simulink) для больше о жестких решателях.

Детали движения симуляции и игнорирования в реальном времени с решателями Фиксированного Шага

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

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

  • Если вы хотите проигнорировать неважные детали движения. Игнорирование их может ускорить вашу симуляцию, специально для большего временного шага.

  • Если вы симулируете в режиме реального времени со сгенерированным кодом. Решатели фиксированного шага обычно, но не исключительно, норма для симуляции в реальном времени.

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

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

Корректировка временного шага в режиме реального времени симуляция

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

Чтобы удовлетворить этому условию, вам придется увеличить временной шаг или уменьшить время вычисления. Увеличение временного шага часто требует удаления “быстрого” числа степеней свободы модели. Уменьшение времени вычисления требует упрощения вашей модели. Можно сделать это наиболее легко путем удаления числа степеней свободы и/или ограничений. Смотрите Упрощение Степеней свободы.