Kinematika (Скамко)
Описание файла
Файл "Kinematika" внутри архива находится в следующих папках: Скамко, inform. Текстовый-файл из архива "Скамко", который расположен в категории "". Всё это находится в предмете "микропроцессорные устройства" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "микропроцессорные устройства управления" в общих файлах.
Просмотр текстового-файла онлайн
1. Прямая позиционная задача.
> restart:with(linalg):
Warning, new definition for norm
Warning, new definition for trace
>
> A:=table():
> q:=array([q1,q2,q3,0]): d:=array([520,0,0,d4]): alpha:=array([0,0,0,0]): a:=([0,-250,-170,0]):
> A[i]:=array([[cos(q[i]),-cos(alpha[i])*s in(q[i]),sin(alpha[i])*sin(q[i]),a[i]*co s(q[i])],[sin(q[i]),cos(alpha[i])*cos(q[ i]),-sin(alpha[i])*cos(q[i]),a[i]*sin(q[ i])],[0,sin(alpha[i]),cos(alpha[i]),d[i] ],[0,0,0,1]]);
A[i] :=
[cos(q[i]) , -cos(alpha[i]) sin(q[i]) , sin(alpha[i]) sin(q[i]) ,
[0, -250, -170, 0][i] cos(q[i])]
[sin(q[i]) , cos(alpha[i]) cos(q[i]) , -sin(alpha[i]) cos(q[i]) ,
[0, -250, -170, 0][i] sin(q[i])]
[0 , sin(alpha[i]) , cos(alpha[i]) , d[i]]
[0 , 0 , 0 , 1]
> for i from 1 to 4 do
> A[i]:=array([[cos(q[i]),-cos(alpha[i])*s in(q[i]),sin(alpha[i])*sin(q[i]),a[i]*co s(q[i])],[sin(q[i]),cos(alpha[i])*cos(q[ i]),-sin(alpha[i])*cos(q[i]),a[i]*sin(q[ i])],[0,sin(alpha[i]),cos(alpha[i]),d[i] ],[0,0,0,1]]) od;
[cos(q1) -sin(q1) 0 0]
[ ]
[sin(q1) cos(q1) 0 0]
A[1] := [ ]
[ 0 0 1 520]
[ ]
[ 0 0 0 1]
[cos(q2) -sin(q2) 0 -250 cos(q2)]
[ ]
[sin(q2) cos(q2) 0 -250 sin(q2)]
A[2] := [ ]
[ 0 0 1 0 ]
[ ]
[ 0 0 0 1 ]
[cos(q3) -sin(q3) 0 -170 cos(q3)]
[ ]
[sin(q3) cos(q3) 0 -170 sin(q3)]
A[3] := [ ]
[ 0 0 1 0 ]
[ ]
[ 0 0 0 1 ]
[1 0 0 0 ]
[ ]
[0 1 0 0 ]
A[4] := [ ]
[0 0 1 d4]
[ ]
[0 0 0 1 ]
> E:=diag(1,1,1,1);
[1 0 0 0]
[ ]
[0 1 0 0]
E := [ ]
[0 0 1 0]
[ ]
[0 0 0 1]
> T:=table():
> T[0]:=E:print(T[0]);
[1 0 0 0]
[ ]
[0 1 0 0]
[ ]
[0 0 1 0]
[ ]
[0 0 0 1]
> T[1]:=multiply(E,A[1]);
[cos(q1) -sin(q1) 0 0]
[ ]
[sin(q1) cos(q1) 0 0]
T[1] := [ ]
[ 0 0 1 520]
[ ]
[ 0 0 0 1]
>
> T[2]:=multiply(A[1],A[2]);
T[2] :=
[cos(q1) cos(q2) - sin(q1) sin(q2) ,
-cos(q1) sin(q2) - sin(q1) cos(q2) , 0 ,
-250 cos(q1) cos(q2) + 250 sin(q1) sin(q2)]
[sin(q1) cos(q2) + cos(q1) sin(q2) ,
cos(q1) cos(q2) - sin(q1) sin(q2) , 0 ,
-250 sin(q1) cos(q2) - 250 cos(q1) sin(q2)]
[0 , 0 , 1 , 520]
[0 , 0 , 0 , 1]
> T[3]:=multiply(A[1],A[2],A[3]);
T[3] :=
[%1 cos(q3) + (-cos(q1) sin(q2) - sin(q1) cos(q2)) sin(q3) ,
-%1 sin(q3) + (-cos(q1) sin(q2) - sin(q1) cos(q2)) cos(q3) , 0 ,
-170 %1 cos(q3)
- 170 (-cos(q1) sin(q2) - sin(q1) cos(q2)) sin(q3)
- 250 cos(q1) cos(q2) + 250 sin(q1) sin(q2)]
[(sin(q1) cos(q2) + cos(q1) sin(q2)) cos(q3) + %1 sin(q3) ,
-(sin(q1) cos(q2) + cos(q1) sin(q2)) sin(q3) + %1 cos(q3) , 0 ,
-170 (sin(q1) cos(q2) + cos(q1) sin(q2)) cos(q3) - 170 %1 sin(q3)
- 250 sin(q1) cos(q2) - 250 cos(q1) sin(q2)]
[0 , 0 , 1 , 520]
[0 , 0 , 0 , 1]
%1 := cos(q1) cos(q2) - sin(q1) sin(q2)
> T[4]:=multiply(A[1],A[2],A[3],A[4]);
T[4] :=
[%1 cos(q3) + (-cos(q1) sin(q2) - sin(q1) cos(q2)) sin(q3) ,
-%1 sin(q3) + (-cos(q1) sin(q2) - sin(q1) cos(q2)) cos(q3) , 0 ,
-170 %1 cos(q3)
- 170 (-cos(q1) sin(q2) - sin(q1) cos(q2)) sin(q3)
- 250 cos(q1) cos(q2) + 250 sin(q1) sin(q2)]
[(sin(q1) cos(q2) + cos(q1) sin(q2)) cos(q3) + %1 sin(q3) ,
-(sin(q1) cos(q2) + cos(q1) sin(q2)) sin(q3) + %1 cos(q3) , 0 ,
-170 (sin(q1) cos(q2) + cos(q1) sin(q2)) cos(q3) - 170 %1 sin(q3)
- 250 sin(q1) cos(q2) - 250 cos(q1) sin(q2)]
[0 , 0 , 1 , 520 + d4]
[0 , 0 , 0 , 1]
%1 := cos(q1) cos(q2) - sin(q1) sin(q2)
Положение схвата :
> p[x]=-170*(cos(q1)*cos(q2)-sin(q1)*sin(q 2))*cos(q3)-170*(-cos(q1)*sin(q2)-sin(q1 )*cos(q2))*sin(q3)-250*cos(q1)*cos(q2)+2 50*sin(q1)*sin(q2):
> p[y]=-170*(sin(q1)*cos(q2)+cos(q1)*sin(q 2))*cos(q3)-170*(cos(q1)*cos(q2)-sin(q1) *sin(q2))*sin(q3)-250*sin(q1)*cos(q2)-25 0*cos(q1)*sin(q2):
> p[z]=520+d4:
Ориентация схвата :
> x[4]=((cos(q1)*cos(q2)-sin(q1)*sin(q2))* cos(q3)+(-cos(q1)*sin(q2)-sin(q1)*cos(q2 ))*sin(q3),(sin(q1)*cos(q2)+cos(q1)*sin( q2))*cos(q3)+(cos(q1)*cos(q2)-sin(q1)*si n(q2))*sin(q3),0)^T:
> y[4]=(-(cos(q1)*cos(q2)-sin(q1)*sin(q2)) *sin(q3)+(-cos(q1)*sin(q2)-sin(q1)*cos(q 2))*cos(q3),-(sin(q1)*cos(q2)+cos(q1)*si n(q2))*sin(q3)+(cos(q1)*cos(q2)-sin(q1)* sin(q2))*cos(q3),0)^T:
> z[4]=(0,0,1)^T:
Матрица вращений :
> R:=table():
> R:=submatrix(T[4],1..3,1..3);
Error, non-algebraic terms in a power must be of the same type
Error, non-algebraic terms in a power must be of the same type
Error, non-algebraic terms in a power must be of the same type
R :=
[%1 cos(q3) + (-cos(q1) sin(q2) - sin(q1) cos(q2)) sin(q3) ,
-%1 sin(q3) + (-cos(q1) sin(q2) - sin(q1) cos(q2)) cos(q3) , 0]
[(sin(q1) cos(q2) + cos(q1) sin(q2)) cos(q3) + %1 sin(q3) ,
-(sin(q1) cos(q2) + cos(q1) sin(q2)) sin(q3) + %1 cos(q3) , 0]
[0 , 0 , 1]
%1 := cos(q1) cos(q2) - sin(q1) sin(q2)
Проверка (вытянутая рука):
> A_:=table():q:=array([0,0,0,0]):d:=array ([0,0,0,50]):
> for i from 1 to 4 do
> A_[i]:=array([[cos(q[i]),-cos(alpha[i])* sin(q[i]),sin(alpha[i])*sin(q[i]),a[i]*c os(q[i])],[sin(q[i]),cos(alpha[i])*cos(q [i]),-sin(alpha[i])*cos(q[i]),a[i]*sin(q [i])],[0,sin(alpha[i]),cos(alpha[i]),d[i ]],[0,0,0,1]]) od;