Matrices de rotación como funciones en matlab
Enviado por JorgeCris06 • 8 de Octubre de 2024 • Resumen • 349 Palabras (2 Páginas) • 26 Visitas
%MATRIZ DE ROTACION EN X
function R=Rx(alpha)
R= [ 1 0 0 ;
0 cos(alpha) - sin(alpha);
0 sin(alpha) cos(alpha)]
end
%MATRIZ DE ROTACION EN Y
function R=Ry(phi)
R = [ cos(phi) 0 sin(phi) ;
0 1 0;
-sin(phi) 0 cos(phi)]
end
%MATRIZ DE ROTACION EN Z
function R=Rz(theta)
R = [ cos(theta) -sin(theta) 0 ;
sin(theta) cos(theta) 0;
0 0 1]
end
%%%EJEMPLOS ROTACIONES BASICAS%%%
clc, clear all, close all
auvw=[-4;7;-2]
buvw=[2;9;1]
%----------------------
Rz(30*pi/180)
axyz=Rz(30*pi/180)*auvw
bxyz=Rz(30*pi/180)*buvw
%%CASO 2----------------
clc, clear all
axyz=[-4;7;-2]
bxyz=[2;9;1]
auvw=Rz(30*pi/180)^-1*axyz
auvw=Rz(30*pi/180)'*axyz
buvw=Rz(30*pi/180)'*bxyz
%COMPOSICION DE ROTACIONES
clc , clear all
syms theta alpha beta
%ROTACIONES RESPECTO AL SITEMA FIJO
R=simplifly(Ry(theta)*Rz(beta)*Rx(alpha))
%ROTACIONES RESPECTO AL SITEMA MOVIL
R=simplifly(Rx(alpha)*Rz(beta)*Ry(theta))
clc, clear all
%................................................................
w = [2;3;1]
P1 = [4;1;6]
wants = [0 -w(3) w(2);
w(3) 0 -w(1);
-w(2) w(1) 0]
Vp = cross(w,P1)
Vp = (wants*P1)
%---------------------------------------------------------
syms theta dtheta
%dRx(theta
dR = [0 0 0;
0 -sin(theta)*dtheta -cos(theta)*dtheta;
0 cos(theta)*dtheta -sin(theta)*dtheta]
wants = simplify(dR*Rx(theta).')
%la respuesta de esto coincide con el w antisimetrico considerando que solo
%hay rotacion en el eje x
%---------------------------------------------------------
clc, clear all
w = [2;-6;7]
t = 1
Modw = sqrt(w(1)^2 + w(2)^2 + w(3)^2)
wants = [0 -w(3) w(2);
w(3) 0 -w(1);
-w(2) w(1) 0]
ExpWt = eye(3) + (wants/Modw)*sin(Modw*t) + (wants^2/Modw^2)*(1-cos(Modw*t))
ExpWt*ExpWt'
%----------------------------
clc, clear all
syms theta
w = [0;0;1]
wants = [0 -w(3) w(2);
w(3) 0 -w(1);
-w(2) w(1) 0]
R = simplify(eye(3)+wants*sin(theta)+wants^2*(1-cos(theta)))
%-------------------------------
clc, clear all
theta = 60*pi/180
w = [1;3;2]
Modw = sqrt(w(1)^2 + w(2)^2 + w(3)^2)
wuni
...