4.1.45 Угловая ориентация
Данный метод создает не один датчик, а массив датчиков. Поэтому тип объекта, создаваемого этим методом, записывается в файле проекта не sensor, а sensor_array.Угловая ориентация узла Node2 представляется как результат последовательности трех поворотов (
,
,
), в начале которых узел Node2 совпадает с узлом Node1. Последовательность поворотов задается вращением вокруг осей
,
,
. Первый поворот вокруг оси
, второй – вокруг оси
, третий – вокруг оси
. Каждый из параметров
,
,
может принимать одно из значений axisX:, axisY:, axisZ:. При этом должны выполняться условия
,
.
Датчики массива являются дифференцируемыми по параметрам положения механизма, если узлы Node1 и Node2 прикреплены к звеньям.
При определении значений углов
− Если
− Если
В этих случаях значения датчиков массива и их производных неопределенны.
|
Синтаксис метода создания
orientation(Node1, Node2, axisI, axisJ, axisK)
Обязательные позиционные параметры метода
node Node1
node Node2
axisI = [axisX:/axisY:/axisZ]
Ось, вокруг которой осуществляется первый поворот.
axisX:Ось X.
axisY:Ось Y.
axisZ:Ось Z.
axisJ = [axisX:/axisY:/axisZ]
Ось, вокруг которой осуществляется второй поворот.
axisX:Ось X.
axisY:Ось Y.
axisZ:Ось Z.
axisK = [axisX:/axisY:/axisZ]
Ось, вокруг которой осуществляется третий поворот.
axisX:Ось X.
axisY:Ось Y.
axisZ:Ось Z.
Описание
В общем случае могут быть заданы 12 комбинаций трех последовательных поворотов. Наиболее часто используемыми на практике являются следующие комбинации:
Углы Кардана
Углы Кардана представляют собой последовательность трех поворотов
,
,
(рис. 5). Первый поворот на угол
выполняется вокруг оси
. Второй поворот на угол
выполняется вокруг оси
. Третий поворот на угол
выполняется вокруг оси
. Ниже проведен пример задания датчика угловой ориентации для определения углов Кардана.
Пример
sensor_array cardanAngles ”углы Кардана” = orientation(Node1, Node2, axisX:, axisY:, axisZ:);
|

Рис. 5. Углы Кардана
При определении углов Кардана существует критический случай, когда
(
). При этом оси первого и третьего поворотов совпадают, так что углы
и
нельзя отличить друг от друга. В этом случае значения датчиков массива и их производных неопределенны.
В случае, когда все три угла близки к нулю, при определении углов Кардана не возникает математических особенностей. По этой причине углы Кардана особенно удобны, когда звено движется таким образом, что узел Node2, прикрепленный к этому звену, незначительно отклоняется от узла Node1, прикрепленного к другому звену.
Углы Эйлера
Углы Эйлера представляют собой последовательность трех поворотов
,
,
. Ниже проведен пример задания датчика угловой ориентации для определения углов Эйлера.
Пример
sensor_array anglesR “углы Эйлера” = orientation(Node1, Node2, axisZ:, axisX:, axisZ:);
|
При определении углов Эйлера существует критический случай, когда
Корабельные углы Крылова
В кораблестроении принято использовать следующую последовательность поворотов -
(курс),
(крен),
(дифферент). Ниже проведен пример задания датчика угловой ориентации для определения корабельных углов.
Пример
sensor_array anglesS “корабельные углы Крылова” = orientation(Node1, Node2, axisY:, axisX:, axisZ:)
|
При определении корабельных углов существует критический случай, когда
(
). При этом оси первого и третьего поворотов совпадают, так что углы
и
нельзя отличить друг от друга. В этом случае значения датчиков массива и их производных неопределенны.
Самолетные углы
В самолетостроении принято использовать следующую последовательность поворотов -
(рыскание),
(тангаж),
(крен). Ниже проведен пример задания датчика угловой ориентации для определения самолетных углов.
Пример
sensor_array anglesF “самолетные углы” = orientation(Node1, Node2, axisY:, axisZ:, axisX:);
|
При определении самолетных углов существует критический случай, когда
(
). При этом оси первого и третьего поворотов совпадают, так что углы
и
нельзя отличить друг от друга. В этом случае значения датчиков массива и их производных неопределенны.
Ракетные углы
В ракетостроении принято использовать следующую последовательность поворотов -
(тангаж),
(рыскание),
(крен). Ниже проведен пример задания датчика угловой ориентации для определения ракетных углов.
Пример
sensor_array anglesR “ракетные узлы” = orientation(Node1, Node2, axisZ:, axisY:, axisX:);
|
При определении ракетных углов существует критический случай, когда
(
). При этом оси первого и третьего поворотов совпадают, так что углы
и
нельзя отличить друг от друга. В этом случае значения датчиков массива и их производных неопределенны.
Внутренние системные объекты
sensor fiI [angle]
Угол первого поворота.
sensor fiJ [angle]
Угол второго поворота.
sensor fiK [angle]
Угол третьего поворота.