Кинематические уравнения в обобщенных координатах. Углы Эйлера, Крылова, кватернионы. Выбор осей координат. Углы Крылова (корабельные углы). Кинематические уравнения корабельного носителя на волнении

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

Число степеней свободы свободно движущегося в пространстве твердого тела равно шести. Если во время движения тела одна его точка остается неподвижной, то число степеней свободы такого тела при его вращении вокруг этой неподвижной точки будет равно трем и для оценки его положения необходимо задать три независимых параметра. Сделать это можно различными способами. Например, А.Н. Крылов в качестве таких параметров предложил так называемые корабельные углы, определяющие положение твердого тела (корабля) относительно системы координат, связанной своим началом с его центром тяжести (рис. 3.1).

За оси неподвижной системы координат приняты CXYZ, а за оси жестко связанные с кораблем – Cxyz (рис. 3.1). Ось СХ направлена от кормы к носу корабля, ось CZ –к его правому борту, а ось CY образует с ними правую систему координат (вертикально вверх). Положение подвижной системы координат Cxyz , неизменно связанной с кораблем, относительно неподвижной CXYZ для каждого момента времени определяется тремя углами Крылова: углом дифферента , углом крена , углом рыскания (рис. 3.2).

Как видно на рис. 3.2, плоскость CXY пересекает плоскость Cxy по некоторой прямой , образующей угол с осьюCX и угол с осью Cx . Плоскость CYZ пересекает плоскость Cхy полинии Cy 1 , образующей угол с осью Cy . Рассмотрим переход от системы CXYZ к системе Cxyz , выполненный с помощью трех поворотов.

Для совмещения системы CXYZ с системой Cxyz достаточно:

1) повернуть систему CXYZ вокруг третьей из координатных осей CZ на угол дифферента , в результате чего получим систему Cx 1 y 1 z 1 , причем Cz 1 =CZ (рис. 3.3);

2) повернуть систему вокруг первой из координатных осей на угол крена , в результате чего получим систему , при этом (рис. 3.4);

3) повернуть систему вокруг второй из координатных осей на угол рыскания (рис. 3.5), в результате чего приходим к системе Cxyz .

Формулы преобразования координат связаны следующими соотношениями:

1) от CXYZ к (рис. 3.3)

X = x 1 cos y - y 1 sin y + 0 ,

Y =x 1 sin y + y 1 cos y + 0 , (3.1)

Z = 0 + 0 + z 1 ,

или в матричной форме:

[X ] ={ a 3 y } т [x 1 ] , или , (3.2)

где - матрица, транспонированная к матрице , описывающей поворот системы CXYZ вокруг третьей координатной оси СZ на угол дифферента y,

; (3.3)

2) от системы к системе (рис. 3.4)

x 1 = x 2 + 0 + 0 ,

y 1 = 0 + y 2 - z 2 , (3.4)

z 1 = 0 + y 2 + z 2 ,

или в матричной форме

[x 1 ] = [x 2 ] , или , (3.5)

где – матрица, транспонированная к матрице , задающей преобразование поворота от осей системы к осям системы вокруг первой из координатных осей на угол крена , при этом = ,

; (3.6)

3) от системы координат к системе Cxyz (рис. 3.5)

x 2 = x cos j + 0 + z sin j,

y 2 = 0 + y + 0 , (3.7)

z 2 = -x sin j + 0 + z cos j,

или в матричной форме [x 2 ]= [x ], или

. (3.8)

Причем поворотная матрица {a 2 j } т – это матрица, транспонированная к матрице { a 2 j }, задающей преобразование поворота от осей системы к осям системы Cxyz на угол рысканияjвокруг второй из координатных осей = , имеет вид

. (3.9)

Для любой точки М тела с координатами x , y , z в подвижной системе координат, жестко связанной с ним, и с ее же координатами X , Y , Z – в неподвижной системе координат можно установить взаимосвязь проекций вектора точки на оси двух систем координат,

, (3.10)

или в матричном виде

или , (3.11)

где углы Крылова являются некоторыми функциями времени: угол дифферента ,угол крена ,угол рыскания .

Матрица транспонирована к матрице направляющих косинусов , задающей преобразование поворота от осей неподвижной системы CXYZ к осям подвижной системы Cxyz , неизменно связанной с кораблем. Очевидно, что при движении тела координаты x , y , z остаются постоянными в отличие от координат X , Y , Z.

Подставляя в (3.2) соотношения (3.5) и (3.8), получаем:

Сравнивая (3.11) и (3.12), находим, что искомая матрица является произведением трех поворотных матриц

=

=

.(3.13)

Подставляя в (3.2) соотношение (3.5), получаем промежуточное соотношение, которое может понадобиться в дальнейшем, [X ] = [x 2 ]. Промежуточная поворотная матрица = находится как произведение двух матриц поворота:

=

= (3.13a )

Углы Эйлера

В тех случаях, когда угловая скорость вращения в одном направлении значительно больше, чем в двух других (генераторы, моторы, турбины, гироскопы), для определения положения тела в качестве трех независимых параметров выбирают три угла Эйлера: угол прецессии y (t ),угол нутацииq (t ) иугол ротации (собственного вращения) j (t ). Их названия заимствованы из астрономии.

Чтобы задать эти углы, рассмотрим вращение твердого тела вокруг неподвижной точки О . Пусть даны некоторая система отсчета и связанная с ней неподвижная система координат ОXYZ , относительно которой движется твердое тело, и связанная с твердым телом система координат Оxyz , которая движется относительно первой (рис. 3.6 … 3.8). Это означает, что первая и вторая системы координат имеют общее начало O , а углы, образуемые осями Оxyz с осями ОXYZ , изменяются, т.е. система Оxyz
поворачивается вместе с твердым телом вокруг неподвижной точки О (рис. 3.5 … 3.8).


Рис. 3.6

Углы Эйлера описывают поворот объекта в трёхмерном евклидовом пространстве. При этом рассматриваются две прямоугольные системы координат, имеющие общий центр: неподвижная система и подвижная, связанная с объектом. На рис.1 неподвижная система координат имеет обозначение XYZ (она наклонена), а подвижная система обозначена как xyz. Углы Эйлера представляют собой углы, на которые поворачивается подвижная система координат, связанная с объектом, до совмещения с неподвижной системой. В классическом варианте первый поворот происходит на угол α вокруг оси z, связанной с объектом, до тех пор, пока не произойдет совпадение оси x, связанной с объектом, c плоскостью XY неподвижной системы. Такое совпадение произойдет по линии пересечения плоскостей XY и xy (линия N на рис. 1). Следующий поворот осуществляется на угол β вокруг нового положения оси x, связанной с объектом, до тех пор, пока не совместятся оси аппликат обеих прямоугольных систем. При этом ось y, связанная с объектом, окажется в плоскости xy неподвижной системы координат XYZ. Последний поворот производится на угол γ вокруг нового положения оси аппликат подвижной системы координат (она будет совпадать с такой же осью неподвижной системы), после чего оси координат XY и xy совместятся.

Рис. 1. Углы Эйлера

Такие повороты некоммутативны, и конечное положение подвижной системы координат зависит от порядка, в котором совершаются повороты.

Если известны координаты вектора R(r x , r y , r z) в подвижной системе координат XYZ и известны углы Эйлера (α, β, γ) подвижной системы координат xyz относительно неподвижной, то можно вычислить координаты этого вектора в неподвижной системе координат xyz. Для этого следует построить матрицы трех последовательных поворотов на углы α, β и γ:

Перемножая эти матрицы в обратном порядке, получим итоговую ортогональную матрицу:

T = T 3 × T 2 × T 1 ,

которая преобразует координаты вектора R(r x , r y , r z) подвижной системы координат в координаты вектора N(n x , n y , n z) такой же длины в неподвижной системе координат:

N = R ,

где N и R - матрицы-столбцы соответствующих координат.

Углы Эйлера являются наиболее естественными и понятными при выполнении различных операций вращения объектов, поскольку они соответствуют вращениям объекта, наблюдаемым в видовых окнах трехмерных графических систем. Однако их использование в системах компьютерной анимации сталкивается с рядом трудностей. Прежде всего, это необходимость выбора определенной последовательности поворотов объекта относительно осей системы координат. Если повернуть объект сначала вокруг оси X, затем вокруг оси Y и, наконец, вокруг оси Z, то это будет совсем не тот поворот, если бы повернуть этот объект на те же углы, но в другой последовательности.

Рассмотрим другой пример - создание анимации кубика при повороте его вокруг оси Z мировой системы координат на угол, превышающий 360°, например на угол 450°. Попробуем создать два ключевых кадра, между которыми кубик должен повернуться на этот угол. Для этого в программе MaxScript создайте стандартный параллелепипед:

b = box ()

После этого переместите ползунок временной шкалы анимации к кадру 10, включите режим Auto Key, а затем выполните команду:

b. rotation. z_ rotation = 450

Воспроизведите анимацию. Объект повернется только на 90°, поскольку его оборот на 360° будет игнорирован. Теперь то же самое проделайте в окне программы 3ds Max. Анимация объекта между двумя ключевыми кадрами произойдет на угол 450°. Таким образом, применение эйлеровых вращений в программах компьютерной графики, аналогичных MaxScript, ограничивается одновременным вращением на угол, не превышающий 360°. Однако это не мешает создавать анимацию вручную за экраном дисплея.

Другая проблема углов Эйлера заключается в наличии Gimbal lock, или шарнирного замка. Его появление зависит от выбора порядка поворотов объекта. Например, повернем объект вначале вокруг оси Z на угол 140°, затем вокруг оси X на угол 90°, а потом на угол 130° вокруг оси Y (рис. 2).

Рис. 2. Последовательные повороты объекта

Если теперь заново выполнить ту же последовательность поворотов, например, на углы 10° вокруг оси Z, затем на 90° вокруг оси X, а потом на 0° вокруг оси Y, то получим тот же результат. Проблема заключается в том, что когда вращение вокруг оси X становится равным 90° или -90°, то локальная ось вращения Y становится параллельной оси Z, но с обратным направлением, и поэтому вращение вокруг нее вступает в конфликт с предыдущим вращением вокруг оси Z.

Шарнирный замок отсутствует у матриц и кватернионов. Кватернионы предоставляют удобное математическое обозначение положения и вращения объектов в пространстве. В сравнении с углами Эйлера, кватернионы позволяют проще комбинировать вращения, а также избежать проблемы, связанной с невозможностью поворота вокруг оси, независимо от совершённого вращения по другим осям. В сравнении с матрицами они обладают большей вычислительной устойчивостью и могут быть более эффективными. Кватернионы используют для выполнения вращений в компьютерной графике , робототехнике , игровых движках, навигации, молекулярной динамике и вообще везде, где возникают проблемы с углами Эйлера или матрицами.

Литература

  1. Углы Эйлера и Gimbal lock [Электронный ресурс] / http://habrahabr.ru – Хабрахабр, 2006. – Режим доступа: http://habrahabr.ru/post/183116/. – Дата доступа: 10.10.2013.
  2. Кватернионы и вращение пространства [Электронный ресурс] / http://ru.wikipedia.org/ – Википедия - свободная энциклопедия, 2001. – Режим доступа: http://ru.wikipedia.org/wiki/ Кватернионы_и_вращение_пространства. – Дата доступа: 11.10.2013.

Матрица поворот применяется для вращения системы координат или объекта, сцены.

Матрицы поворота вокруг основных осей.

Матрица поворота вокруг произвольной оси.

Обобщённая матрица поворота.

Хочется задавать положение объекта в пространстве однозначно. Достаточно очевидно что любое положение однозначно определяется 3 поворотами вокруг разных осей. Но встаёт вопрос в каком порядке вращать и как выбрать оси?

Обобщённую матрица поворота можно задать по разному. С одной стороны мы можем вращать объект вокруг неподвижных осей. С другой вокруг осей связанных с объектом ещё их называют локальными. Стоит вспомнить что операции умножения матриц не коммутативна поэтому для однозначного определения положения нужно знать не только 3 угла, но и схему умножения матриц.

Можно выделить 2 популярные схемы.
1) Матрица поворота через углы Эйлера.
2) Матрица поворота через углы летательного аппарата (ЛА): рыскание, тангаж и крен(yaw, pitch и roll).
В виду того что первая требует большого числа вычислений, то на практике обычно применяют вторую.

Матрица поворота через углы Эйлера.

Углы Эйлера - три угла однозначно определяющие ориентацию твёрдого тела, определяющие переход от неподвижной системы координат к подвижной.
Подвижная система координат это система координат привязанная к телу. Иногда говорят в мороженная в тело. Прежде чем дать определения углов нам понадобиться ещё одно. Линия узлов ON - линия пересечение плоскости OXY и Oxy

α (или φ) это угол между осью Оx и осью ON. Диапазон значений }