TLE两行数与轨道六根数转换

本文介绍了TLE格式的详细解析及其与轨道六根数的转换方法,包括从‘每天环绕地球的圈数’获取轨道半长轴的方法和平近点角与真近点角的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、TLE格式讲解

参考:TLE格式
第一行
第二行
点这里,看TLE格式的详细解释!!
举例:

BEIDOU 2A $6:YGWP0
1 30323U 07003A 07067.68277059 .00069181 13771-5 44016-2 0 587
2 30323 025.0330 358.9828 7594216 197.8808 102.7839 01.92847527 650

真正的数据实际上是下面2行,但是上面有一行关于空间物体其他情况的一些信息(空间物体可以是卫星,可以是末级火箭,可以是碎片。这里简单起见,就叫卫星)。头一个是卫星名称。注意这个是会变的,而且不一定准确。卫星发射后的头几个TLE数据里,往往只叫Object A, B, C… 慢慢的会搞清楚哪个是卫星,哪个是末级火箭,哪个是分离时的碎片,并且给予相应的名称。但是如果这个是其他国家的保密卫星,则这个卫星名字就纯粹是美国的猜测了,比如我们的这个北斗。有些情况下,名称这一行里还包含了一些数字,关于卫星的尺度,亮度等等。
TLE第一行数据
1 30323U 07003A 07067.68277059 .00069181 13771-5 44016-2 0 587
①30323U 30323是北美防空司令部(NORAD)给出的卫星编号。U代表不保密。我们看到的都是U,否则我们就不会看到这组TLE了
②07003A 国际编号,07表示2007年(2位数字表示年份在50年以后会出问题,因为1957年人类发射了第一个轨道物体),003表示是这一年的第3次发射。A则表示是这次发射里编号为A的物体,其他还有B,C,D等等。国际编号就是2007-003A.
③07067.68277059 这个表示这组轨道数据的时间点。07是2007年,067表示第67天,也就是3月8。68277059表示这一天里的时刻,大约是16时22分左右。 需要注意的是这个时间是从凌晨算起,也就是98001.00000000 代表1998年1月1日的0点,98000.00000000 表示的是1997年12月31日的零点
④.000069181 平均运动的对时间一阶导数除2。注意这个并不是瞬时角速度 -.,`ev
⑤13771-5 平均运动对时间的二阶导数除6。
⑥44016-2 BSTAR阻力系数。这3个量都是用于轨道摄动模型里面的。其实上前2个并没有真正被采用。注意在六根转两行的时候,如果没有阻力系数的值,虽然画出来的轨道相同,但是距离历元时刻越远,卫星的位置偏差越大,也就是卫星会在同一轨道的不同位置上。
⑦0 轨道模型。1=SGP,2=SGP4,3=SDP4,4=SGP8,5=SDP8。然而,该值仅用于内部分析,目前公布的都是0,也就是采用了SGP4/SDP4轨道模型
⑧58 表示这是关于这个空间物体的第58组TLE
⑨7 校验位,也即将该行除校验位外所有的数字相加,减号(-)算作1,其他的字母,小数点,加号全部忽略,得到的和对10取余的值为校验位。

TLE第二行数据
2 30323 025.0330 358.9828 7594216 197.8808 102.7839 01.92847527 650
①30323 NORAD卫星编号。
②025.0191 轨道倾角。这个和前面讲的轨道倾角完全对应
③358.9828 升交点赤经,这个和前面讲的升交点赤经也完全对应
④7594216 轨道偏心率,0.7597678,表示这是一个椭圆
⑤197.8808 近地点幅角,这个和前面讲的也一样
⑥102.7839 平近点角。这个表示这组TLE对应的时刻时,卫星在轨道的什么位置,具体细节有点复杂,就不赘述了。这个和前面讲的“过近地点时刻”可以互相推导。
⑦01.92847527 每天环绕地球的圈数。这个的倒数就是周期。可以看出北斗目前的周期大约是12小时。 而周期和轨道的半长轴有简单的换算关系。因此TLE的关于轨道的6要素和我们前面说的6要素是完全可以互相推导的。
⑧65 发射以来飞行的圈数 Ho_c_OT
⑨0 校验位

二、轨道六根数

参考:轨道六根数
轨道根数(orbital elements)是描述物体运动轨迹的简便形式。三维空间中,唯一确定物体轨迹需要六个参数,如位置矢量和速度矢量 (均为三维) 可共同确定物体轨迹。此外,用六个轨道根数也可描述它。通常的轨道六根数指的是:半长轴 a 、离心率 e 、轨道倾角 i 、近地点辐角 ω 、升交点经度 Ω 和真近点角 φ 。

三、TLE与六根数转换

当我们获得了一个TLE两行数,需要将其转换为六根数的时候,只需要取tle的第二行数,按照上文的介绍,按照位数获取轨道倾角、升交点赤经、轨道偏心率、近地点幅角、平近点角即可。本文着重说明如何从“每天环绕地球的圈数”这一信息获取轨道半长轴,及平近点角与真近点角的转换过程。

1、“每天环绕地球的圈数”与“轨道半长轴”转换

根据开普勒第三定律a³/T²=GM/4π²,其中a代表轨道半长轴,T为周期,G为重力常数,约为6.67×10⁻¹¹m³kg⁻¹s⁻²,M代表中心天体的质量,如果计算的是围绕地球运动的卫星运动情况的话,要使用地球的质量,约为5.965×10²⁴kg。
其中,T的倒数也即“每天环绕地球的圈数”,设“每天环绕地球的圈数”为n,那么轨道半长轴a与n的关系为:
在这里插入图片描述

2、平近点角与真近点角的转换

可得由偏近点角E计算真近点角f的公式为,其中e为偏心率:
请添加图片描述
又可解得由真近点角f计算偏近点角E的公式为:
请添加图片描述

平近点角M与偏近点角E之间的几何关系则由开普勒方程所决定:
请添加图片描述
附上JS的计算过程

//已知平近点角,求真近点角
// eccentricity偏心率  meanAnomaly平近点角
function meanAnomalyToTrueAnomaly (eccentricity, meanAnomaly) {
    //初始值
    var M = meanAnomaly * Math.PI / 180;
	var	E = M;
	var	i = 0;
    var NREPS = 1.0E-6             //迭代精度
    var NRITERMAX = 2000       //迭代最大次数
    //迭代过程,计算偏近点角E
	do
		{
			var fE = M - E + eccentricity * Math.sin(E);
			var dE = fE / ( 1.0 - eccentricity * Math.cos(E));
			E  = E + dE;
			i++;
		} while (( Math.abs(dE) >= NREPS) && (i < NRITERMAX));

	//计算真近点角F
    var F = 2 * Math.atan(Math.tan( E * 0.5) * Math.sqrt((1.0 + eccentricity) / (1.0 - eccentricity)));
    var trueAnomaly = F * 180 / Math.PI;
    return trueAnomaly;
}
//已知真近点角,求偏近点角
//tan(E/2)=( (1-e) / (1+e))^0.5 * tan(θ/2) 其中E为偏近点角,θ为真近点角  
// eccentricity偏心率  trueAnomaly真近点角
function trueAnomalyToMeanAnomaly (eccentricity, trueAnomaly) {
	var tmpTanHalfE = Math.sqrt(((1-eccentricity)/(1+eccentricity))) * Math.tan(trueAnomaly * Math.PI / 360) ;
	var E = 2 * Math.atan(tmpTanHalfE);
	//计算对应的平近点角M
	var  M = E - eccentricity * Math.sin(E); 
	var MeanAnomaly = M * 180 / Math.PI;
	return MeanAnomaly;
}

完整的转换过程点击这里

在航天动力学中,轨道六根(也称为开普勒轨道)是描述天体(如卫星、行星等)在轨道上运动的一组参。这些参包括半长轴、偏心率、轨道倾角、升交点赤经、近地点角距和平近点角。tle(Two-Line Element)是一种用于描述卫星轨道的格式,包含了两行文本据。 要将tle格式转换轨道六根,可以使用MATLAB编写一个程序来进行解析和转换。以下是一个简单的示例代码,演示如何从tle格式中提取轨道六根: ```matlab function orbital_elements = tle_to_orbital_elements(tle) % tle: 输入的tle格式据,包含两行文本 % 解析tle据 line1 = tle{1}; line2 = tle{2}; % 提取轨道六根 % 半长轴 (a) 需要通过其他参计算 eccentricity = str2double(line2(27:33)) / 1e7; % 偏心率 inclination = str2double(line2(9:16)); % 轨道倾角(度) raan = str2double(line2(18:25)); % 升交点赤经(度) arg_perigee = str2double(line2(35:42)); % 近地点角距(度) mean_anomaly = str2double(line2(44:51)); % 平近点角(度) mean_motion = str2double(line2(53:63)); % 平均运动(圈/天) % 计算半长轴 (a) mu = 398600.4418; % 地球引力常 (km^3/s^2) n = mean_motion * 2 * pi / 86400; % 转换为弧度/秒 a = (mu / n^2)^(1/3); % 半长轴 (km) % 存储轨道六根 orbital_elements = struct('semi_major_axis', a, 'eccentricity', eccentricity, 'inclination', inclination, 'raan', raan, 'arg_perigee', arg_perigee, 'mean_anomaly', mean_anomaly); end % 示例使用 tle = { '1 25544U 98067A 21156.21782529 -.00007190 00000-0 -16821-3 0 9990', '2 25544 51.6431 74.3999 0003061 73.9826 59.6345 15.48967555207682' }; orbital_elements = tle_to_orbital_elements(tle); disp(orbital_elements); ``` 在这个示例中,函`tle_to_orbital_elements`接受一个包含两行tle据的单元格组,并返回包含轨道六根的结构体。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值