Это содержимое характерно для программного обеспечения Simscape™ Multibody™ First Generation. Функции первого поколения намечают, чтобы быть удержанными от использования и нужно избежать.
В этом разделе вы выбираете и конфигурируете настройки, необходимые, чтобы симулировать механическое движение с моделью Simscape Multibody.
Чтобы получить лучшее понимание того, как программное обеспечение Simscape Multibody решает для механического движения, смотрите Как работы Simscape Multibody Software и Улучшающая Производительность.
Самым основным аспектом среды машины является гравитационное ускорение, которое он испытывает. Вы управляете силой тяжести машины во вкладке Parameters его диалогового окна Machine Environment.
Универсальное поле силы тяжести применяется к движению каждой машины. Значением по умолчанию является постоянный вектор [0 -9.81 0]
с модулями meters/seconds2 и x - y - и z - компоненты, соответственно.
Можно изменить это значение в различный постоянный вектор путем изменения записи в поле Gravity vector вкладки Parameters. Можно изменить модули при помощи модульного выпадающего меню.
В дополнение к постоянной силе тяжести можно применить изменяющийся во времени, пространственно универсальный, вектор силы тяжести через сигнал Simulink®. Вы включаете эту опцию путем установки флажка Input gravity as signal во вкладке Parameters.
Если вы делаете этот выбор, блок Machine Environment получает импорт Simulink, чтобы принять этот Сигнал Simulink. Сигнал должен быть трехкомпонентным вектором. Можно все еще изменить модули через выпадающее меню.
В общем случае вы симулируете движение машины во всех трех пространственных размерностях. Если машина может переместиться только в две размерности, однако, игнорирование третьей размерности делает симуляцию более эффективной. По умолчанию симуляция автоматически определяет, оптимизируют ли ваши перемещения машины во всех трех или только двух размерностях и симуляцию соответственно.
Можно заменить это значение по умолчанию путем требования симуляции в или трех или двух размерностях. Вы выбираете размерность симуляции машины в выпадающем меню Machine dimensionality вкладки Parameters диалогового окна Среды Машины. При попытке симулировать 3D машину в двух измерениях, симуляция останавливается с ошибкой.
Ваша машина должна соответствовать определенным критериям, прежде чем можно будет потребовать симуляции в двух измерениях:
Призматические примитивы должны задать набор параллельных плоскостей.
Вращательные примитивы должны вращаться о перпендикуляре осей к призматическим плоскостям.
Корпуса двумерной машины не должны все лежать в одной плоскости, но они должны скользить и вращаться только в параллельных плоскостях.
Код, сгенерированный от симуляций, ограниченных двумерным движением, также ограничивается двумерным движением. Смотрите Ограничения на Двумерную Симуляцию.
Библиотека Simscape Multibody содержит определенные блоки, которые, если вы используете их в машине, требуют, чтобы вы симулировали в трех измерениях.
Любой Блок соединений больше чем с двумя призматическими примитивами, больше чем одним вращательным примитивом или любыми сферическими примитивами
Демонтированные соединения
Невесомые коннекторы
Можно анализировать движение в модели Simscape Multibody с этими аналитическими типами.
Результат анализа | Аналитический тип |
---|---|
Движение, которое следует из того, чтобы прикладывать силы | Передайте динамику |
Установившееся движение | Обрезка |
Эффект небольшого беспокойства движения | Линеаризация |
Силы потребовали, чтобы произвести заданное движение | Обратная динамика |
Вкладка Parameters диалогового окна Machine Environment позволяет вам выбирать аналитический режим, в котором вы хотите симулировать. Вы делаете этот выбор с помощью выпадающего меню Analysis mode. В случае линеаризации используйте вкладку Linearization, чтобы установить размер небольших возмущений.
Путем выбора одного из этих аналитических режимов вы реализуете тип анализа движения, который вы хотите.
Аналитический тип | Аналитический режим | Описание |
---|---|---|
Передайте динамику | Передайте динамику | Вычисляет положения и скорости тел системы на каждом временном шаге, учитывая исходные положения и скорости его тел, и любые силы обратились к системе. |
Линеаризация | Передайте динамику | Вычисляет эффект небольших возмущений на системном движении через linmod Simulink команда. |
Обрезка | Обрезка | Включает trim Simulink команда, чтобы вычислить установившиеся решения системного движения. |
Обратная динамика (разомкнутый цикл) | Обратная динамика | Вычисляет силы, требуемые произвести заданную скорость для каждого тела системы разомкнутого цикла. |
Обратная динамика (с обратной связью) | Кинематика | Вычисляет силы, требуемые произвести заданную скорость для каждого корпуса машины с обратной связью. |
Используйте этот режим, чтобы симулировать модель, которая представляет исходные положения и скорости тел системы и сил на этих телах.
Запустите эти примеры в режиме Forward Dynamics:
Используйте этот режим, чтобы позволить вам запускать trim
Simulink команда на вашей модели.
trim
команда позволяет вам находить установившиеся решения для своей модели.
Режим Trimming вставляет подсистему и выходной порт в верхнем уровне вашей модели. Эти выходные сигналы блоков, соответствующие ограничениям на систему, представлены вашей моделью. Сконфигурируйте trim
команда, чтобы найти точки равновесия, где ограничительные сигналы являются нулем. Это гарантирует что точки равновесия, найденные trim
команда удовлетворяет ограничениям на смоделированную систему.
См. Обрезающие Механические Модели для примеров использования этого режима, чтобы найти точки равновесия механической системы.
Можно определить эффект небольших возмущений на системном движении путем линеаризации машины. Чтобы линеаризовать, установите аналитический режим Передавать Динамику и запускать linmod
Simulink команда на вашей модели.
Можно зафиксировать размер возмущения или позволить симуляции найти оптимальное возмущение для вас. Введите эти настройки во вкладку Linearization диалогового окна Среды Машины.
См. Линеаризующие Механические Модели для примеров использования этого режима, чтобы найти эффект небольших возмущений на механическом движении.
Используйте этот режим, чтобы симулировать систему разомкнутого цикла, модель которой задает скорость каждой степени свободы каждого тела на каждом временном шаге.
Смотрите Обратный Режим Динамики с Двойным Маятником для примера использования этого режима, чтобы найти силы в системе разомкнутого цикла.
Используйте этот режим, чтобы симулировать машину с обратной связью, модель которой задает скорость каждой независимой степени свободы на каждом временном шаге. tolerancing ограничительный решатель рекомендуется в этом режиме. (См. Ограничения Поддержания.)
Смотрите Режим Кинематики с Машиной Четырёхзвенника для примера использования этого режима, чтобы найти силы на машине с обратной связью.
Симуляция вашей модели Simscape Multibody является совместным усилием между программным обеспечением Simscape Multibody и Simulink. Симуляция Simscape Multibody интерпретирует чисто механические аспекты вашей машины посредством блока машины и ограничительного решателя. Simulink управляет чисто математическими аспектами симуляции через ваш выбранный решатель Simulink. Вместе, они пытаются согласовать ваш выбор допусков решателя и решателя Simulink, ограничительного решателя и допусков решателя и допусков блока в этой динамической иерархии:
Линейные и угловые допуски блока задают точность с который
Модель должна задать начальные местоположения и углы соединений машины.
Симуляция должна решить исходные положения и углы несобранных соединений машины.
Вкладка Parameters диалогового окна Machine Environment машины позволяет вам изменять допуски блока по умолчанию в полях Linear assembly tolerance и Angular assembly tolerance. Можно также настроить линейное и угловые единицы в соответствующих выпадающих меню.
Для больше о допусках блока и блока машины, смотрите, что разделы Моделируют Степени свободы и Моделируют Демонтированные Соединения.
Симуляция Simscape Multibody проверяет местоположения и углы собранных соединений машины, когда она инициализирует модель и позже в симуляции. Если какому-либо из объединенных местоположений или углов не удается соответствовать соответствующим допускам блока, Simulink останавливает симуляцию и отображает сообщение об ошибке. Если это происходит, необходимо проверять машину, чтобы гарантировать, что она задает местоположения и углы ее собранных соединений к точности, заданной во вкладке Parameters. В противном случае или измените местоположения и углы, которым не удается соответствовать допускам блока или увеличить сами допуски.
Допуски блока могут также быть нарушены в ходе симуляции недостаточно точным ограничением и решателями движения. Смотрите Ограничения Поддержания и Конфигурирование Решателя Simulink.
Если ваша модель содержит неявные или явные ограничения на движение машины, симуляция Simscape Multibody использует ограничительный решатель, чтобы найти решение для движения, которое удовлетворяет тем ограничениям.
В этом разделе описывается ограничительные решатели работают и что необходимо решить сделать надлежащим использованием из них. Этот ограничительный выбор и настройки для машины найдены на вкладке Constraints его диалогового окна Machine Environment.
Симуляция налагает ограничения, когда она инициализирует модель, затем более поздние проверки, если ограничения остаются удовлетворенными во время симуляции. Если какой-либо из степеней свободы (число степеней свободы) не удается удовлетворить допускам ограничения, Simulink останавливает симуляцию и отображает сообщение об ошибке. Если это происходит, необходимо или переключиться на более свободный ограничительный решатель или увеличить допуски ограничения (если вы имеете ручной контроль над допуском ограничения).
Ограничения могут также быть нарушены в ходе симуляции недостаточно точным решателем Simulink. Смотрите Конфигурирование Решателя Simulink.
Потребность наложить ограничения на движение машины возникает двумя способами, явными или неявными. В любом случае движение ограничивается подпространством числа степеней свободы.
Наложение независимого от времени или зависящего от времени механического ограничения на число степеней свободы системы. Это требует, чтобы вы вставили Ограничение или Блок драйверов, который ограничивает движение, представленное Соединением.
Сокращение замкнутых циклов в блок-схеме Simscape Multibody. Каждый замкнутый цикл сокращается в одном Соединении, Ограничении или Блоке драйверов. Симуляция внутренне заменяет блок сокращения на неявное ограничение, эквивалентное исходному замкнутому циклу.
Отмечание Автоматически Соединений Сокращения. Установка флажка Mark automatically cut joints в узле Simscape Multibody 1G диалогового окна Параметров конфигурации вашей модели заставляет Simulink отмечать значки любых Блоков соединений в замкнутых циклах, которые это сокращает в процессе моделирования модели. По умолчанию флажок не устанавливается.
Сократите соединение X Марк
Пробел движения, позволенного числу степеней свободы ограничениями или разнообразному K ограничения, является подпространством полного пробела Q числа степеней свободы. (Q включает обе координаты и их скорости.) Симуляция Simscape Multibody инициализирует вашу модель путем проектирования начального состояния ее машин на K. В процессе моделирования ограничения гарантируют, что движение остается на K, и Simulink решает для движения только в ограниченном подпространстве.
Проекция не может быть сделана с бесконечной точностью, но только в допуске ограничения. Ваши ограничительные настройки определяют метод и точность проекции.
Ограничительный коллектор как подпространство числа степеней свободы
Для вас или симуляции возможно чрезмерно определить ограничения. Симуляция продолжает, если дополнительные или избыточные ограничения сопоставимы с другими, но наличие избыточных ограничений всегда рискует несоответствием, которое приводит к симуляции, останавливающейся с ошибками.
Несколько проверок идентифицируют и устраняют избыточные ограничения, и в начале и во время симуляции.
Можно включить предупреждению указать, изменяет ли небольшое возмущение к начальному состоянию модели количество ограничений.
Можно включить предупреждению указать, подвергается ли модель избыточным ограничениям, конфликтуют ли они или нет.
Можно задать, как подобные ограничения должны состоять в том, прежде чем они будут обработаны как избыточные, или можно позволить симуляции решить для вас.
Смотрите Диагностику Симуляции Simscape Multibody Конфигурирования и вкладку Constraints блока Machine Environment.
Каждый ограничительный решатель имеет преимущества и недостатки относительно других согласно основному компромиссу точности и скорости.
Ограничительный решатель | Допуск | Вычислительная стоимость | Точность | Скорость симуляции |
---|---|---|---|---|
Стабилизация | Динамический аттрактор | Самый низкий | Самый низкий | Самый быстрый |
Tolerancing | Открытый для вашего управления | Промежуточное звено | Промежуточное звено | Промежуточное звено |
Точность машины | Допуск ~ eps | Самый высокий | Самый высокий | Самый медленный |
Этот решатель добавляет самокорректирующийся термин в уравнения движения, которое стабилизирует решение, заставляя его развиться к, вместо того, чтобы дрейфовать далеко от, ограничение множат K. Это наименее точно из ограничительных решателей.
Симуляции Simscape Multibody используют этот решатель по умолчанию. Это обычно быстрее, чем другие решатели, но это может приспособиться к решению, которое превышает допуски блока машины. Если ошибки допуска блока происходят во время симуляции, используйте один из других ограничительных решателей вместо этого.
Этот решатель находит движение системы при наложении ограничений к допуску, который вы задаете. А именно, решатель прекращает совершенствовать решение, когда различие между двумя последовательными решениями удовлетворяет условию
|error | <макс. (|rtol * x |, atol)
где ошибка является различием между последовательными решениями, rtol является относительным допуском ограничения, x является движением, которое будет решено, и атолл является абсолютным допуском ограничения.
Используйте этот решатель, вы планируете запустить симуляцию в режиме Kinematics. Это более точно, чем стабилизировавшийся решатель, но менее точно, чем решатель точности машины с вычислительной стоимостью между двумя.
Установка Допусков ограничения. Если вы используете tolerancing решатель, допуски ограничения, обеспеченные в процессе моделирования, находятся под вашим контролем. Можно просмотреть и изменить допуски ограничения во вкладке Constraints диалогового окна Среды Машины.
Этот решатель налагает ограничения к числовой точности компьютера, на котором запускается симуляция. Выберите этот решатель, если вы хотите получить самую точную симуляцию, разрешенную компьютером, независимо от времени симуляции или вычислительной стоимости. Это является самым точным из решателей и обычно самым медленным.
Модель Simscape Multibody использует один из решателей для обыкновенных дифференциальных уравнений (ОДУ) Simulink, чтобы решить уравнения системы движения, обычно в тандеме с ограничительным решателем (см. Ограничения Поддержания).
Simulink обеспечивает обширный комплект решателей ОДУ, которые представляют самые усовершенствованные числовые методы, доступные для решения дифференциальных уравнений в целом и уравнений движения в частности. Узел Solver диалогового окна Параметров конфигурации вашей модели позволяет вам выбирать любой из этих решателей для использования Simulink в решении динамики модели. Дополнительную информацию см. в документации Simulink о выборе решателя Simulink.
По умолчанию Simulink использует решатель переменного шага, точностью которого управляют путем установки ее абсолютных и относительных допусков.
Можно также использовать решатель фиксированного шага, точностью которого управляют путем установки временного шага.
Смотрите Улучшающую Производительность для получения дальнейшей информации на переменной - по сравнению с решателями фиксированного шага.
По умолчанию Simulink автоматически определяет абсолютный допуск, используемый решателями ОДУ. Получившийся допуск не может быть малым достаточно для механической системы, особенно нелинейная или хаотическая система. Попытайтесь запустить симуляцию с относительным набором допуска к 1e-3
(значение по умолчанию) и абсолютный набор допуска к 1e-4
. Затем увеличьте допуски, если симуляция занимает слишком много времени, или уменьшите их, если решение не достаточно точно.
Если ваша модель содержит один или несколько блоков Joint Stiction Actuator, необходимо также учесть скоростные пороги этих блоков при установке абсолютного допуска решателя ОДУ. Если абсолютный допуск решателя больше скоростного порога соединения, симуляция никогда не может обнаруживать блокировку или разблокирование соединения. Чтобы предотвратить это, установите абсолютный допуск быть не больше, чем 10% размера самого маленького скоростного порога прилипания в вашей модели.
Можно ожидать и избежать многих типов отказа симуляции следующими корректировками. Вы делаете их в подузле Simscape Multibody 1G диалогового окна Параметров конфигурации вашей модели и вкладке Constraints диалогового окна Machine Environment машины.
Смотрите Как работы Simscape Multibody Software и Ошибки Симуляции Поиска и устранения проблем для получения дополнительной информации об идентификации и восстановлении с ошибок симуляции. Смотрите Ограничения Поддержания для больше об ограничениях.
Определенная диагностика Simscape Multibody помогает вам понять и, при необходимости, диагностировать проблемы симуляции. Можно настроить эту диагностику в области Diagnostics узла Simscape Multibody 1G.
Предупреждение на Избыточных Ограничениях. Выбор флажка Warn if machine contains redundant constraints инициировал предупреждение, если существует больше ограничений, чем необходимый в вашей модели. Эта ситуация отдельно не вызывает ошибки симуляции. Но в определенных настройках, слишком много ограничений могут привести к конфликтам и таким образом к ошибкам в ходе симуляции.
По умолчанию флажок устанавливается.
Предупреждение на Нестабильных Ограничениях в начальном состоянии. Выбор флажка Warn if number of initial constraints is unstable инициировал предупреждение, если небольшие изменения в начальном состоянии вашей модели приводят к изменениям в количестве ограничений. В определенных настройках эта нестабильность может привести к лишь немногим или слишком многим (конфликтным) ограничениям на вашу систему и препятствовать тому, чтобы симуляция нашла решение для движения.
По умолчанию флажок не устанавливается.
В определенных временах симуляции одна или несколько степеней свободы в механической системе могут измениться быстро по сравнению с другими. Если эти внезапные, быстрые движения слишком быстры по сравнению с более медленными движениями, решатель Simulink испытывает затруднения при нахождении точного решения в разумном времени симуляции. Внушительные ограничения на движение часто усиливают эту проблему. В крайних случаях симуляция может остановиться с ошибкой.
Можно облегчить эту сингулярность движения путем выбора Use robust singularity handling на вкладке Constraints диалогового окна Среды Машины. Эта опция требует дополнительного расчета, существует ли сингулярность. Выберите его, только если вы не можете найти решатель Simulink, который решает вашу модель за разумное количество времени без него.
Смотрите Ограничения Поддержания и Конфигурирование Решателя Simulink для большего количества обсуждения сингулярности движения и их отношения к решателям Simulink.