Coorindate transforms to a satellite reference frame

46 vues (au cours des 30 derniers jours)
KatherineS
KatherineS le 29 Juil 2019
Hi,
I have a matrix in target coordinates, but I need to put this matrix into coordinates for a satllite. The unit vectors are given below (target to Earth Centered Earth Fixed) and then the satellite is just offset from ECEF by its orbit height. How do I transform the original matrix into satellite coordinates?
Thank you in advance for your help
a = longVal;
b = latVal;
Re = 6371; %km
Rgeo = 35786 + Re; %km
%--------------------------------------------------------------------------
%Target in satellite coordinates
%--------------------------------------------------------------------------
target_ECEF = [-sin(a) cos(a) 0; -sin(b)*cos(a) -sin(b)*sin(a) cos(b); ...
cos(b)*cos(a) cos(b)*sin(a) sin(b)];
  3 commentaires
KatherineS
KatherineS le 29 Juil 2019
For the purposes of this simulation I am assuming a spherical Earth.
I have a 64 x 64 matrix with a target 'hill' in it, however this is currently in the coordinates of the Earth. This needs to be transformed into the coordinates of the satellite.
The 3x3 matrix shown is the unit vectors for the target coordinate system in terms of the satellite frame
Joel Handy
Joel Handy le 29 Juil 2019
So you have already applied target_ECEFand have a 64x64 matrix of cartesian position vectors in the ECEF frame? Essentially a 64x64x3 matrix. Is that accurate?
You need to create ECEF vectors from your satellite to your grid points, by subtracting the satellite position from each point. Then you need to transform these vectors into spacecraft coordinates. How you come up with that direction cosine matrix though depends on the definition of your satellite frame. Do you know the definition of this frame?

Connectez-vous pour commenter.

Réponses (2)

Jim Riggs
Jim Riggs le 29 Juil 2019
Modifié(e) : Jim Riggs le 29 Juil 2019
In order to answer this question, we need a good definition of the coordinate frames involved. The only way to do this is to draw a good diagram. Your description of the problem state that "the sattelite is just offset from the ECEF by it's orbit height". This, to me, implies that the satellite reference frame remains aligned with the ECEF frame, because an "offset" is typically a linear displacement. (An angular displacement is a "rotation"). If this is the case, then the basis vectors are the same for both the ECEF and the satellite reference frame, and a vector in ECEF is converted to satellite coordinates simply by adding (or subtracting) the offset vector.
However, if the satellite does, in fact, rotate (as I suspect it might) and one axis remains pointed "down", then the satellite reference frame might be described by a "North-East-Down" (NED) coordinate frame. In this case the Z-axis is selected as the "down" direction, and the x-axis remains pointing north at all times. In order to rotate a vector from ECEF to NED, you would apply the transformations, based on the lattitude and the longitude, per the equations below.
If you want some other axis (say the x-axis) pointing "down", then you would need to derive the appropriate transformation for this. Is this close to what you are looking for? (The attached paper shows the derivation of these equations. This may, or may not be of help to you)

Meysam Mahooti
Meysam Mahooti le 12 Mar 2020

Catégories

En savoir plus sur Scenario Generation and Visualization dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by