5.1.44 Угловая ориентация

Угловая ориентация узла Node2 представляется как результат последовательности трех поворотов (
,
,
), в начале которых узел Node2 совпадает с узлом Node1. Последовательность поворотов задается вращением вокруг осей
,
,
. Первый поворот вокруг оси
, второй – вокруг оси
, третий – вокруг оси
. Каждый из параметров
,
,
может принимать одно из значений axisX:, axisY:, axisZ:. При этом должны выполняться условия
,
.














Датчики массива являются дифференцируемыми по параметрам положения механизма, если узлы Node1 и Node2 прикреплены к звеньям.
При определении значений углов
,
,
могут возникнуть математические трудности. Если
и
(
) оси первого и третьего поворотов совпадают, так что углы
и
нельзя отличить друг от друга. Если
и
(
) оси первого и третьего поворотов совпадают, так что углы
и
нельзя отличить друг от друга. В этих случаях значения датчиков массива и их производных неопределенны.













Синтаксис метода создания
orientation(Node1, Node2, axisI, axisJ, axisK)
Обязательные позиционные параметры метода
node Node1
Первый узел.
node Node2
Второй узел.
axisI = [axisX:/axisY:/axisZ]
Ось, вокруг которой осуществляется первый поворот.

Ось X.

Ось Y.

Ось Z.
axisJ = [axisX:/axisY:/axisZ]
Ось, вокруг которой осуществляется второй поворот.

Ось X.

Ось Y.

Ось Z.
axisK = [axisX:/axisY:/axisZ]
Ось, вокруг которой осуществляется третий поворот.

Ось X.

Ось Y.

Ось Z.
Описание
В общем случае могут быть заданы 12 комбинаций трех последовательных поворотов. Наиболее часто используемыми на практике являются следующие комбинации:






























Углы Кардана
Углы Кардана представляют собой последовательность трех поворотов
,
,
(Рис. 143). Первый поворот на угол
выполняется вокруг оси
. Второй поворот на угол
выполняется вокруг оси
. Третий поворот на угол
выполняется вокруг оси
. Ниже проведен пример задания датчика угловой ориентации для определения углов Кардана.









Пример
sensor_array cardanAngles ”углы Кардана” = orientation(Node1, Node2, axisX:, axisY:, axisZ:);

Рис. 143. Углы Кардана
При определении углов Кардана существует критический случай, когда
(
). При этом оси первого и третьего поворотов совпадают, так что углы
и
нельзя отличить друг от друга. В этом случае значения датчиков массива и их производных неопределенны.




В случае, когда все три угла близки к нулю, при определении углов Кардана не возникает математических особенностей. По этой причине углы Кардана особенно удобны, когда звено движется таким образом, что узел 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]
Угол третьего поворота.