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

В этом примере для перемещения двойного маятника используется сила тяжести. Вы смещаете звенья из равновесия, а затем позволяете гравитации действовать на них. Чтобы переместить связи в нулевое время, используйте раздел Цели состояния (State Targets) диалогового окна Блок вращения соединения (Revolute Joint). Можно указать положение или скорость. Когда вы готовы, вы имитируете модель для анализа ее движения.
Для измерения движения используется блок «Трансформировать сенсор». Сначала подключаются порты основной и ведомой полок к блокам подсистем World Frame и нижних звеньев. Подключив порты к этим блокам, можно почувствовать движение в нижнем звене относительно фрейма World. Затем выберите параметры перевода для считывания. Выбирая Y и Z, можно измерять перемещение вдоль осей Y и Z. Можно построить график этих координат относительно друг друга и проанализировать движение, которое они обнаруживают.
В командной строке MATLAB введите smdoc_double_pendulum. Открывается модель двойного маятника. Инструкции по созданию этой модели см. в разделе Моделирование кинематической цепи с разомкнутым контуром.
Перетащите эти блоки в модель, чтобы почувствовать движение.
| Библиотека | Блок | Количество |
|---|---|---|
| Simscape > Multibody > Кадры и преобразования | Трансформировать сенсор | 1 |
| Simscape > Multibody > Кадры и преобразования | Мировая рамка | 1 |
| Simscape > Утилиты | Преобразователь PS-Simulink | 2 |
| Simulink > Раковины | К рабочему пространству | 2 |
В диалоговом окне Transform Sensor block выберите Translation > Y and Translation > Z. Блок открывает два порта вывода физического сигнала с метками y и z.
В блоках PS-Simulink Converter укажите единицы измерения cm.
В блоках «В рабочую область» введите имена переменных y_link и z_link.
Подключите блоки к модели, как показано на рисунке. Необходимо подключить порт базового кадра блока датчика преобразования к блоку мирового кадра. Новые блоки затенены серым цветом.

Укажите начальное состояние каждого соединения. Позже можно изменить это состояние, чтобы исследовать различные типы движения. Для первой итерации поверните только верхнее звено на небольшой угол.
В диалоговом окне «Вращение блока соединения» выберите «Цели состояния» > «Указать цель положения».
Задать значение для 10 deg.
В диалоговом окне «Вращение блока Joint1» установите флажок «Цели состояния» > «Указать цель положения».
Запустите моделирование. 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;На рисунке показан график, который открывается. Этот график показывает, что путь нижнего звена изменяется лишь незначительно при каждом колебании. Такое поведение характерно для квазипериодических систем.

Корректируя цели вращающегося совместного состояния, можно моделировать модель в хаотических условиях. Одним из способов получения хаотического движения является поворот верхнего поворотного соединения на большой угол. Для этого в диалоговом окне «Поворотное соединение» выберите «Цели состояния» > «Положение» > «Значение». 90 и нажмите кнопку ОК.
Смоделировать модель с помощью новой цели состояния соединения. Для отображения координат положения нижнего маятникового звена относительно мировой рамки в командной строке 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. Эту модель можно повторно использовать в последующем учебном пособии «Назначение движения соединения в модели плоского манипулятора».