Rotation Matrix with euler angles
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Rashiqah Shahzad
le 19 Déc 2018
Commenté : Rashiqah Shahzad
le 20 Déc 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 commentaires
Réponse acceptée
James Tursa
le 20 Déc 2018
Modifié(e) : James Tursa
le 20 Déc 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
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Fortran with MATLAB dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!