%% Angulos de Euler % –––––––––––––––––––––––––––––––––––––––––––––--------------------------- % UTN -FRH % MECANICA ORBITAL % SISTEMAS DE COORDENADAS Y MATRIZ DE ROTACION % –––––––––––––––––––––––––––––––––––––––––––––--------------------------- % Este programa encuentra los ángulos de la secuencia clásica simetrica de % Euler dada por R3(gamma)*R1(beta)*R3(alpha) a partir de la matriz de % cosenos directores. % % Q - matriz de cosenos directores % alpha - primer ángulo de la secuencia (grados) % beta - segundo ángulo de la secuencia (grados) % gamma - tercer ángulo de la secuencia (grados) % % Función M del usuario requerida: dcm_to_euler % Sub-función requerida: ninguna % –––––––––––––––––––––––––––––––––––––––––––––--------------------------- %% Limpieza close all % Cierra todas las ventanas abiertas clear % Borra todas las variables guardadas en el Workspace clc % Limpia el Command Window %% Datos Q = [ 0.64050, 0.75309, -0.15038; 0.76737, -0.63530, 0.086823; -0.30152, -0.17101, -0.98481]; %% Desarrollo [alpha, beta, gamma] = dcm_to_euler(Q); %% Resultado fprintf('- - - - - - - - - - - - - - - - - - - - \n') fprintf('\nCosenos directores\n') fprintf('\n Primero debemos verificar que la matriz es ortogonal, es decir,\n') fprintf(' el producto de Q por su transpuesta debe la matriz identidad I.\n') fprintf(' [Q][Q]^T = %e\n',dot(Q,transpose(Q))) fprintf(' Una vez corroborado esto, podemos continuar con el ejercicio\n') fprintf('\n Calculamos los angulos de Euler\n') fprintf(' alfa = arctan(-Q31/Q32) = %+4.2f (0º <= alfa <= 360º)\n',alpha) fprintf(' beta = arccos(Q33) = %+4.2f (0º <= beta <= 180º)\n',beta) fprintf(' alfa = arctan(-Q12/Q23) = %+4.2f (0º <= gamma <= 360º)\n',gamma) fprintf('\n- - - - - - - - - - - - - - - - - - - - \n')