2024华为杯数学建模研赛F题建模代码思路文章研究生数学建模
截止2024.8.21 12点 已更新F全部小问的建模和问题一的代码
#### https://docs.qq.com/doc/DVVBUREF2SmFhRUl3
F题:
问题1:卫星轨道根数与运动学关系的数学模型
从卫星的轨道根数计算出它在特定时刻的三维位置和速度。轨道根数包括:
1.计算卫星的轨道半径 ( r ):
其中 ( a ) 是轨道的半长轴。
- 位置的计算:
- 速度的计算 需要根据轨道参数和时间变化率计算导数。
问题一代码分析:
将给定的轨道根数(包括偏心率、角动量、轨道倾角等参数)用于计算一个天体在轨道上的位置和速度,并将它们从轨道平面(轨道坐标系)转换到地心天球参考系(GCRS,Geocentric Celestial Reference System)。GCRS 是描述天体在地球引力场中的运动的常用参考系。
1. 定义轨道根数(轨道要素)
e = 2.06136076e-3 # 偏心率
h = 5.23308462e4 # 角动量 (km^2/s)
Ω = 5.69987423 # 升交点赤经 (rad)
i = 1.69931232 # 轨道倾角 (rad)
ω = 4.10858621 # 近心点幅角 (rad)
θ = 3.43807372 # 真近点角 (rad)
mu = 398600 # 地球的引力常数 (km^3/s^2)
这些是标准的轨道六根数,用来定义卫星或其他天体在轨道上的位置和运动状态:
- e:偏心率,描述轨道的椭圆形状。值为 0 表示圆形轨道,0 到 1 之间表示椭圆轨道。
- h:角动量,是轨道能量的标志,单位是 ( \text{km}^2/\text{s} )。
- Ω:升交点赤经,描述轨道平面相对于地球赤道的旋转角度,单位是弧度。
- i:轨道倾角,轨道平面相对于地球赤道平面的倾斜角,单位是弧度。
- ω:近心点幅角,描述轨道上最近点(近地点)的位置。
- θ:真近点角,描述天体在轨道上当前所在的位置。
- μ:地球引力常数,用于计算地球引力作用下的运动。
2. 计算半径和速度分量
r = h**2 / mu / (1 + e * np.cos(θ)) # 半径 r
vr = mu / h * e * np.sin(θ) # 径向速度 vr
vθ = mu / h * (1 + e * np.cos(θ)) # 切向速度 vθ
- r:轨道半径(或天体到地心的距离),基于轨道方程计算,反映了天体当前所处位置的距离。
- vr:径向速度,表示天体相对于地球的运动方向在径向上的分量。
- vθ:切向速度,表示天体在轨道上沿轨道平面的运动速度。
3. 将极坐标转换为笛卡尔坐标
x_prime = r * np.cos(θ)
y_prime = r * np.sin(θ)
vx_prime = vr * np.cos(θ) - r * np.sin(θ) * vθ
vy_prime = vr * np.sin(θ) + r * np.cos(θ) * vθ
这里将天体在轨道上的位置和速度从极坐标系转换为二维笛卡尔坐标系。得到的坐标是天体在轨道平面内的坐标和速度分量。
- x_prime, y_prime:天体在轨道平面上的位置坐标。
- vx_prime, vy_prime:天体在轨道平面上的速度分量。
4. 构建旋转矩阵
def rotation_matrix(Ω, i, ω):R3_Ω = np.array([[np.cos(Ω), -np.sin(Ω), 0],[np.sin(Ω), np.cos(Ω), 0],[0, 0, 1]])R1_i = np.array([[1, 0, 0],[0, np.cos(i), -np.sin(i)],[0, np.sin(i), np.cos(i)]])R3_ω = np.array([[np.cos(ω), -np.sin(ω), 0],[np.sin(ω), np.cos(ω), 0],[0, 0, 1]])return R3_Ω @ R1_i @ R3_ω
- 该函数构造了一个旋转矩阵,用于将轨道平面坐标转换到地心天球参考系 (GCRS)。
- R3_Ω:描述了轨道相对于地球赤道的旋转,围绕 Z 轴旋转角度为升交点赤经 ( \Omega )。
- R1_i:描述了轨道相对于地球赤道的倾斜,围绕 X 轴旋转角度为轨道倾角 ( i )。
- R3_ω:描述了轨道上近心点位置的旋转,围绕 Z 轴旋转角度为近心点幅角 ( \omega )。
最终的旋转矩阵是这三个旋转的组合,按顺序执行三次旋转。
5. 将位置和速度转换到地心天球参考系 (GCRS)
R = rotation_matrix(-Ω, -i, -ω)
position = R @ np.array([x_prime, y_prime, 0])
velocity = R @ np.array([vx_prime, vy_prime, 0])
- 通过将位置和速度坐标与旋转矩阵相乘,完成了从轨道平面坐标到地心天球参考系(GCRS)的转换。
- position 是天体在 GCRS 中的位置,单位是公里 (km)。
- velocity 是天体在 GCRS 中的速度,单位是公里每秒 (km/s)。
6. 输出位置和速度
print("Position in GCRS (km):", position)
print("Velocity in GCRS (km/s):", velocity)
- 输出天体在 GCRS 参考系中的位置和速度,完成从轨道参数到三维笛卡尔坐标系的转换。
总结
基于给定的轨道根数,通过计算天体的轨道半径和速度,将其位置和速度从轨道坐标系转换为地心天球参考系 (GCRS)。
问题2:真空几何传播时延模型
在这个问题中,您需要建立一个模型来计算光子从脉冲星到达卫星和太阳系质心(SSB)的传播时间差。假设光子沿直线传播,并且可以使用以下公式计算真空中的传播时延 ( \Delta t ):
其中,( \vec{r}{\text{SSB}} ) 和 ( \vec{r}{\text{satellite}} ) 分别是太阳系质心和卫星的位置向量,( c ) 是光速。
问题3:精确转换时延模型
几何传播时延 (Roemer delay)
Shapiro时延,光子通过强引力场传播时的额外时间延迟
引力红移
动钟变慢效应(相对论效应)
利用这些时延因素,您可以建立一个综合模型来计算从航天器到太阳系质心的精确时间差。考虑脉冲星自行也非常重要,这可能需要根据历史数据调整脉冲星的位置。
问题4:光子到达时刻的仿真
为了建模和仿真Crab脉冲星的X射线光子序列,可以采用以下步骤:
-
模拟光子流:
其中 ( \lambda(t) = \lambda_b + \lambda_s \cdot h(\phi(t)) ),( \lambda_b ) 是背景流量,( \lambda_s ) 是脉冲星流量,( h ) 是归一化的脉冲轮廓函数。
-
折叠分析:
将观测数据按脉冲星的自转周期折叠,以匹配和提取脉冲轮廓。 -
提高仿真精度的策略 可能包括提高时间分辨率、改进噪声模型等。
这些分析和模型将帮助您更精确地理解和预测脉冲星光子到达时间及其导航潜力。