Ошибка автоматически вычисляемого крутящего момента при повороте шарнирного блока? - PullRequest
0 голосов
/ 05 августа 2020

Имитация распашной двери с генератором с использованием Simscape / Simulink. Я предполагаю, что для системы есть только один вход, а именно сила на ручке, необходимая для открытия двери, поэтому для всех поворотных шарниров установлен автоматический расчет крутящего момента. Однако я получаю сообщение об ошибке:

«В динамически связанном компоненте, содержащем Revolute Joint 'SDL / SwingMotion', существует больше совместных примитивных степеней свободы с автоматически вычисляемой силой или крутящим моментом (4), чем с движением из входы (0). Как правило, уравнения движения не имеют однозначного решения. Решите эту проблему, увеличив количество примитивов соединения с движением от входов или уменьшив количество примитивов соединения с автоматически вычисляемой силой или крутящим моментом. Решите эту проблему чтобы смоделировать модель. "

Анимация работает нормально, если я установил срабатывание крутящего момента всех 4 шарниров на 0, но крутящий момент, создаваемый силой, не будет передаваться таким образом, и вал генератора не будет любой крутящий момент. Однако я могу измерить количество оборотов на выходе (angular скорость вала генератора). Я не совсем понимаю ошибку. Почему блок вращения рассматривает степень движения других блоков вращения как свою собственную? Как мне решить эту проблему? Блок-схему можно увидеть здесь.

Блок-схема

Сборка выглядит так:

Сборка

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 05 августа 2020

Для поворотного соединения есть три варианта:

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

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

Кажется, что вы хотите, чтобы База и Последователь были жестко связаны и следовали одному и тому же движению. Затем вы можете рассмотреть возможность использования блока Rigid Transform, который представляет собой просто жесткую ссылку, в которой вы можете определить смещение перемещения или поворота.

EDIT

То, чем вы были на самом деле делать было совмещать прямую и обратную динамику. Вы прикладываете силу к дверной ручке, позволяете Simulink вычислять движение (до сих пор прямую динамику), затем вы хотите получить крутящий момент на GenShaft из движения, которое он совершает, что является обратной динамикой. Это не работает.

Лучший способ проверить крутящий момент на GenShaft - это, например, запросить скорость определенного дверного шарнира angular, надеть на него пропорциональный контроллер и проверить требуемый крутящий момент. Обратите внимание, что без моделирования трения в шарнире требуемый крутящий момент будет go равным нулю.

Поэтому, если вы установите для всего вычисленного крутящего момента значение «none», кроме GenShaft, установите это значение, предоставленное входными данными. Затем установите пропорциональный регулятор на скорость angular дверной петли. Затем вы можете проверить необходимый крутящий момент.

Обновленная модель

Обновленная модель

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