Обнаружьте движение Используя блок датчика преобразования

Образцовый обзор

Блок Transform Sensor предусматривает самую широкую обнаруживающую движение возможность в моделях Simscape™ Multibody™. Используя этот блок, можно обнаружить переменные движения между любыми двумя кадрами в модели. Эти переменные могут включать переводное и вращательное положение, скорость и ускорение.

В этом примере вы используете блок Transform Sensor, чтобы обнаружить более низкую ссылку переводное положение относительно Мирового кадра. Вы выводите координаты положения непосредственно к рабочему пространству модели, и затем строите эти координаты с помощью команд MATLAB®. Путем варьирования объединенных целей состояния можно анализировать движение более низкой ссылки при квазипериодических и хаотических условиях.

Моделирование подхода

В этом примере вы полагаетесь на силу тяжести, чтобы заставить двойной маятник перемещаться. Вы перемещаете ссылки от равновесия и затем позволяете силе тяжести действовать на них. Чтобы переместить ссылки в нуле времени, вы используете раздел State Targets диалогового окна блока Revolute Joint. Можно задать положение или скорость. Когда вы готовы, вы моделируете модель, чтобы анализировать ее движение.

Чтобы обнаружить движение, вы используете блок Transform Sensor. Во-первых, вы соединяете основу и порты кадра последователя к Мировому Кадру и более низким блокам подсистемы ссылки. Путем соединения портов с этими блоками можно обнаружить движение в более низкой ссылке относительно Мирового кадра. Затем вы выбираете параметры перевода, чтобы распознаться. Путем выбора Y и Z, можно обнаружить перевод вдоль Y и осей Z, соответственно. Можно построить эти координаты друг относительно друга и анализировать движение, что они показывают.

Создайте модель

  1. В подсказке команды MATLAB введите smdoc_double_pendulum. Двойная модель маятника открывается. Для получения инструкций по тому, как создать эту модель, см. Модель Разомкнутый цикл Кинематическая Цепочка.

  2. Перетащите эти блоки в модель, чтобы обнаружить движение.

    БиблиотекаБлокКоличество
    Simscape> Multibody> Frames and TransformsПреобразуйте датчик1
    Simscape> Multibody> Frames and TransformsМировой кадр1
    Simscape> UtilitiesКонвертер Simulink PS2
    Simulink> SinksК рабочей области2

  3. В диалоговом окне блока Transform Sensor выберите Translation> Y и Translation> Z. Блок представляет два выходных порта физического сигнала, маркировал y и z.

  4. В блоках Конвертера Simulink PS задайте модули cm.

  5. В К блокам Рабочей области, введите имена переменных y_link и z_link.

  6. Соедините блоки с моделью как показано в фигуре. Необходимо соединить порт опорной рамы блока Transform Sensor к блоку World Frame. Новые блоки заштрихованы серые.

Ведите образцовый блок

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

  1. В диалоговом окне блока Revolute Joint выберите State Targets> Specify Position Target.

  2. Установите Value на 10 deg.

  3. В диалоговом окне блока Revolute Joint1 проверяйте, что State Targets> Specify Position Target очищен.

Моделируйте модель

Запустите симуляцию. Mechanics Explorer проигрывает основанную на физике анимацию двойного блока маятника.

Можно теперь построить координаты положения более низкой ссылки. Для этого, в командной строке MATLAB, введите:

figure; 
plot(y_link.data, z_link.data, 'color', [60 100 175]/255);
xlabel('Y Coordinate (cm)'); 
ylabel('Z Coordinate (cm)'); 
grid on;

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

Моделируйте хаотическое движение

Путем корректирования шарнирного соединения утверждают цели, можно моделировать модель при хаотических условиях. Один способ получить хаотическое движение состоит в том, чтобы вращать лучшее шарнирное соединение большим углом. Для этого, в диалоговом окне Revolute Joint, измените State Targets> Position> Value к 90 и нажмите OK.

Моделируйте модель с новой объединенной целью состояния. Чтобы построить координаты положения более низкой ссылки маятника относительно мирового кадра, в подсказке команды MATLAB, вводят этот код:

figure; 
plot(y_link.data, z_link.data, 'color', [60 100 175]/255);
xlabel('Y Coordinate (cm)'); 
ylabel('Z Coordinate (cm)'); 
grid on;

Данные показывают график, который открывается.

Сохраните модель

Сохраните модель в удобной папке под именем double_pendulum_sensing. Вы снова используете эту модель в последующем примере, Предписываете Совместное движение в Плоской Модели Манипулятора.