Coorindate transforms to a satellite reference frame
23 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Joel Handy
2019 年 7 月 29 日
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?
回答 (2 件)
Jim Riggs
2019 年 7 月 29 日
編集済み: Jim Riggs
2019 年 7 月 29 日
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.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/231789/image.jpeg)
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)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/231790/image.jpeg)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Satellite and Orbital Mechanics についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!