Orbital Elements from Position/Velocity Vectors

版本 1.0.0.0 (4.2 KB) 作者: Dmitry Savransky
Convert positions and velocity state vectors to osculating Keplerian orbital elements.
1.7K 次下载
更新时间 2011/5/5

查看许可证

vec2orbElem(rs,vs,mus) converts positions (rs) and velocities (vs)
of bodies with gravitational parameters (mus) to Keplerian orbital elements.

INPUTS:
rs: 3n x 1 stacked initial position vectors:
[r1(1);r1(2);r1(3);r2(1);r2(2)r2(3);...;rn(1);rn(2);rn(3)]
or 3 x n matrix of position vectors.
vs: 3n x 1 stacked initial velocity vectors or 3 x n matrix
mus: gravitational parameters (G*m_i) where G is the
gravitational constant and m_i is the mass of the ith body.
if all vectors represent the same body, mus may be a
scalar.
OUTPUTS:
a: semi-major axes
e: eccentricities
E: eccentric anomalies
I: inclinations
omega: arguments of pericenter
Omega: longitudes of ascending nodes
P: orbital periods
tau: time of periapsis crossing
A, B: orientation matrices (see Vinti, 1998)

All units must be complementary, i.e., if positions are in AUs, and
time is in days, dx0 must be in AU/day, mus must be in
AU^3/day^2 (these are the units in solarSystemData.mat).

The data in solarSystemData.mat was downloaded from JPL's System Web
Interface (http://ssd.jpl.nasa.gov/?horizons). It includes
positions for the planets, the sun and pluto (because I went to
grade school before 2006). Positions for planets with moons are for
the barycenters.

Example:
%solar system oribtal elements
ssdat = load('solarSystemData.mat');
rs = ssdat.p0(1:end-3) - repmat(ssdat.p0(end-2:end),9,1);
vs = ssdat.v0(1:end-3) - repmat(ssdat.v0(end-2:end),9,1);
mus = ssdat.mus(1:9) + ssdat.mus(10);
[a,e,E,I,omega,Omega,P,tau,A,B] = vec2orbElem(rs,vs,mus);
%convert back:
r = A*diag(cos(E) - e) + B*diag(sin(E));
rdot = (-A*diag(sin(E))+B*diag(cos(E)))*...
diag(sqrt(mus(:).'.*a.^-3)./(1 - e.*cos(E)));

引用格式

Dmitry Savransky (2024). Orbital Elements from Position/Velocity Vectors (https://www.mathworks.com/matlabcentral/fileexchange/31333-orbital-elements-from-position-velocity-vectors), MATLAB Central File Exchange. 检索时间: .

MATLAB 版本兼容性
创建方式 R2009b
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Gravitation, Cosmology & Astrophysics 的更多信息

Community Treasure Hunt

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

Start Hunting!
版本 已发布 发行说明
1.0.0.0