Сравнив его с равенством (14), можно заметить, что
ˆ
U
l
1
...l
k
kjk
= ˆ
A
l
1
...l
k
kjk
.
Матрицы
ˆ
A
l
1
...l
i
ijk
(
i
= 1
, . . . , k
,
j
= 1
, . . . , k
)
определяются с помощью
следующей рекурсивной процедуры:
ˆ
A
l
1
...l
i
−
1
1
ijk
=
D
1
i
˜
A
1
i
т
ˆ
A
l
1
...l
k
−
1
i
−
1
,jk
D
2
i
˜
A
1
i
+
D
1
i
˜
A
3
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
3
i
;
ˆ
A
l
1
...l
k
−
1
2
ijk
=
D
1
i
˜
A
1
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
2
i
+
D
1
i
˜
A
2
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
1
i
;
ˆ
A
l
1
...l
k
−
1
3
ijk
=
D
1
i
˜
A
1
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
3
i
+
D
1
i
˜
A
3
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
1
i
;
ˆ
A
l
1
...l
k
−
1
4
ijk
=
D
1
i
˜
A
2
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
2
i
−
D
1
i
˜
A
3
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
3
i
;
ˆ
A
l
1
...l
k
−
1
5
ijk
=
D
1
i
˜
A
2
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
3
i
+
D
1
i
˜
A
3
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
2
i
(18a)
— в случае вращательного звена;
ˆ
A
l
1
...l
k
−
1
1
ijk
=
D
1
i
˜
A
1
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
1
i
;
ˆ
A
l
1
...l
k
−
1
2
ijk
=
D
1
i
˜
A
1
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
2
i
+
D
1
i
˜
A
2
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
1
i
;
ˆ
A
l
1
...l
k
−
1
3
ijk
=
D
1
i
˜
A
2
i
т
ˆ
A
l
1
...l
i
−
1
i
−
1
,jk
D
2
i
˜
A
2
i
(18б)
— в случае поступательного звена, причем
D
1
i
=
E,
i
=
j,
D
rot
σ
j
+
D
tr
(1
−
σ
j
)
, i
=
j,
D
2
i
=
E,
i
=
k,
D
rot
σ
k
+
D
tr
(1
−
σ
k
)
, i
=
k.
Для инициализации процедуры следует положить
ˆ
A
0
jk
=
E
.
Практическая реализация.
Итак, соотношения (3), (16) и (18)
определяют рекуррентный алгоритм вычисления проекций. Однако
эта обратная рекурсивная схема вычислений (от
N
-го звена к первому)
оказывается неэффективной, поскольку одни и те же матрицы
˜
T
,
ˆ
U
и
ˆ
A
рассчитываются множество раз. Гораздо эффективнее применение
прямой рекурсии, которая позволяет вычислять указанные матрицы
только один раз. Правда в этом случае требуется дополнительно хра-
нить в оперативной памяти
2+
N
k
=1
(
k
(
k
+1)
/
2+
k
+2)
матриц размера
4
×
4
(на максимальной глубине рекурсии). Например, для
N
= 6
это значение равно 56. Если элементы матриц являются числами с
плавающей точкой двойной точности (согласно IEEE 754), то допол-
нительное потребление памяти составит около 7 кБ. При этом для хра-
нения матрицы координат
Z
в случае всех вращательных сочленений
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012. № 1 51