Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Escriba programas (funciones) en MATLAB para calcular las matrices de rotación básicas,
dados como parámetros el eje de giro y el ángulo de rotación.
close all,
clear all,
clc,
fprintf('Ingrese el movimiento \n');
fprintf ('Ingrese angulo de rotacion \n ');
teta=input ('Angulo= ');
fprintf('Si desea el eje x presione 1, si desea el eje y presione 2 y
si desea el eje z presione 3\n')
Vec=input('Ingrese el eje= ');
switch (Vec) %DADA LA OPCION SE ESCOGERA UNA OPERACION DIFERENTE PARA
CADA CASO
case (1) %SI ME DAN A ESCOGER EL EJE X
T= eleccejeX (teta); %TENGO UNA FUNCION QUE DESARROLLARA LA
MATRIZ CON EL ANGULO DADO
disp(T) %SE ME MOSTRARA DICHA MATRIZ
case (2)
T= eleccejeY (teta);
disp(T)
case (3)
T=eleccejeZ (teta);
disp(T)
otherwise %EN EL CASO QUE NO SE COLOQUE LAS OPCIONES DADAS
disp('No has elegido bien')
end
Mov=input('Ingrese 1 si quiere hacer otro movimiento de lo contrario 0
\n');
while (Mov==1) %ESTE CICLO SEGUIRA MIENTRAS SE SELECCIONE 1
fprintf ('Ingrese angulo de rotacion \n ');
teta=input ('Angulo= ');
fprintf('Si desea el eje x presione 1, si desea el eje y presione 2 y
si desea el eje z presione 3\n')
Vec=input('Ingrese el eje= ');
switch (Vec)
case (1)
R= eleccejeX (teta);
disp(R)
case (2)
R= eleccejeY (teta);
disp(R)
case (3)
R=eleccejeZ (teta);
disp(R)
end
D= input('Ingrese 1 si es fijo, si es movil 0 \n');
if (D==1)
T=R*T; % T FUE LA PRIMERA MATRIZ ALMACENADA Y A ESA MATRIZ SE LE
PREMULTIPLICARA LA NUEVA MATRIZ QUE SERA R
%Y ESA MULTIPLICACION SERA LA NUEVA T ALMACENADA PARA CONTINUAR LAS
PRE O
%POST MULTIPLICACIONES SEGUN SEA EL CASO
disp(T)
else
T=T*R;
disp(T)
end
Mov=input('Ingrese 1 si quiere hacer otro movimiento de lo contrario 0
\n');% ES IMPORTANTE VOLVER A PREGUNTAR
%O MOV SEGUIRA SIENDO 1 SIEMPRE Y EL BUCLE SERA INFINITO
end
IV.3. Escriba programas (funciones) en MATLAB para calcular las matrices de rotación
básicas, dados como parámetros el eje de giro y el ángulo de rotación, en forma simbólica.
close all,
clear all,
clc,
fprintf('Ingrese el movimiento \n');
fprintf ('teta es el angulo de x, phi para y, y zhi para z \n');
syms teta phi zhi %sysms es una funcion de matlab para guardar
variables en forma simbolica
Vec=input('Ingrese el eje= ','s');%La función input acepta un
argumento extra como indicativo
%de que lo introducido será una cadena de texto
%para ello se añade una 's' como segundo argumento
switch (Vec) %DADA LA OPCION SE ESCOGERA UNA OPERACION DIFERENTE PARA
CADA CASO
disp(R)
case ('z')
R=[cos(zhi) -sin(zhi) 0; sin(zhi) cos(zhi) 0; 0 0 1];
disp(R)
end
D= input('Ingrese 1 si es fijo, si es movil 0 \n');
if (D==1)
T=R*T; % T FUE LA PRIMERA MATRIZ ALMACENADA Y A ESA MATRIZ SE LE
PREMULTIPLICARA LA NUEVA MATRIZ QUE SERA R
%Y ESA MULTIPLICACION SERA LA NUEVA T ALMACENADA PARA CONTINUAR LAS
PRE O
%POST MULTIPLICACIONES SEGUN SEA EL CASO
disp(T)
else
T=T*R;
disp(T)
end
Mov=input('Ingrese 1 si quiere hacer otro movimiento de lo contrario 0
\n');% ES IMPORTANTE VOLVER A PREGUNTAR
%O MOV SEGUIRA SIENDO 1 SIEMPRE Y EL BUCLE SERA INFINITO
end
IV.4. Solucione el problema del ítem IV.1 empleando las funciones implementadas en los dos
ítems anteriores.Contrastar los resultados obtenidos con el resultado teórico.
IV.7. Escriba un programa en MATLAB para calcular la matriz de rotación R cuando el usuario
introduzca los ángulos de Euler XYZ
IV.8. Escriba un programa MATLAB que calcule los ángulos de Euler XYZ cuando el usuario
introduzca la matriz de rotación R.
IV.10. Obtener el cuaternio que representa una rotación de 90° sobre el eje k(3,-2,1).
Rot(k,90°). Aplique sus funciones Matlab para las operaciones de la solución. Luego crear un
script solución del problema. Contraste sus resultados con la respuesta analítica.