Rotation Matrix with euler angles
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Rashiqah Shahzad
el 19 de Dic. de 2018
Comentada: Rashiqah Shahzad
el 20 de Dic. de 2018
Das Programm soll Input: 3 euler angles one number sigma (meaning: standard deviation for the assumed measuring accuracy)
The code search with the euler angles the rotationmatrix they are 18
g11 + random number
g21 + random number
g11 + random number
g31 + random number
... g33 + random number
Each of the random numbers should then correspond to an N (0, sigma) -distributed random variable. It is therefore a list of simulated measurements.
6 comentarios
Respuesta aceptada
James Tursa
el 20 de Dic. de 2018
Editada: James Tursa
el 20 de Dic. de 2018
The best I can guess is you are given three Euler angles with a sigma for noise, and you want to output a corresponding rotation matrix. There are two approches you might try. First, you might start with the SpinCalc conversion routine from the FEX by John Fuller
Then you can either add randn(1,3)*sigma noise to the Euler angles prior to calling SpinCalc, or add randn(3,3)*sigma noise to the rotation matrix elements after you call SpinCalc. The first method will leave you with a valid rotation matrix. The second method will leave you with slightly non-valid rotation matrix. I am not sure which method gives you what you want. E.g.,
>> EA = [20 30 40] % Euler angles in degrees
EA =
20 30 40
>> sigma = 2
sigma =
2
>> DCM = SpinCalc('EA123toDCM',EA+randn(1,3)*sigma,1e-10,0) % roll,pitch,yaw
DCM =
0.6930 0.7029 -0.1602
-0.5489 0.6585 0.5148
0.4673 -0.2689 0.8422
>> SpinCalc('DCMtoEA123',DCM,1e-10,0) % try to recover the original
ans =
17.7059 27.8623 38.3810
Más respuestas (0)
Ver también
Categorías
Más información sobre Fortran with MATLAB en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!