Help with a rotation matrix
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Scott Hunter
el 26 de Oct. de 2018
Comentada: Stephen23
el 10 de Jul. de 2025
I have a code which requires 4 different rotation matrices, and since all my variables are in the form of arrays I'm trying to make these matrices also in the form of arrays. So far, the code I have below is what I believe should work. The parameters at the top are parameters for each of the 4 orbits, laid out in 1x4 array. R1, R2 and R3 are not giving me the answers I expect in all the cells (R1,2 and 3 will be combined to make R the final matrix). The matrices should have more zeros in them but I am getting a very very small number (10^-17) instead, I don't know where the maths is going wrong? Thanks! (.png attached at top).
clear
close
i = [90 90 90 90]; %[deg] Inclinations for each orbit
o = [0 0 0 0]; %[deg] Small omega of each orbit
O = [0 45 90 135]; %[deg] RAANs for each orbit
R1 = [cos(o).*cos(O)-sin(o).*cos(i).*sin(O); % Column 1 of rotation matrix for the 4 orbits
cos(o).*sin(O)+sin(o).*cos(i).*cos(O);
sin(o).*sin(i)];
R2 = [-sin(o).*cos(O)-cos(o).*cos(i).*sin(O); % Column 2 of rotation matrix for the 4 orbits
-sin(o).*sin(O)+cos(o).*cos(i).*cos(O);
cos(o).*sin(i)];
R3 = [sin(i).*sin(O); % Column 3 of rotation matrix for the 4 orbits
-sin(i).*cos(O);
cos(i)];
15 comentarios
James Tursa
el 26 de Oct. de 2018
Editada: James Tursa
el 26 de Oct. de 2018
Many FEX submissions assume this layout so you could use them with your R array. E.g.,
And several MATLAB functions also assume this layout. E.g.,
Respuesta aceptada
Bruno Luong
el 26 de Oct. de 2018
Editada: Bruno Luong
el 26 de Oct. de 2018
You seem to apply sin/cos to degree angles which is wrong, since argument must be in radian.
Also the code is correct and might returns small error when expected result is 0.
>> cos(pi/2)
ans =
6.1232e-17
PS: I put my comment here for you to accept if it solves your pb
2 comentarios
Image Analyst
el 26 de Oct. de 2018
You can use degrees. Just switch to the "d" versions of the trig functions: sind() and cosd().
Más respuestas (1)
sanjay
el 10 de Jul. de 2025
cos(pi/2)
ans =
6.1232e-17
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!