脉冲推进模型
ImpulsivePropulsion 用于计算转移轨道的出发注入速度与代价。
基本原理
脉冲推进将出发速度分解为切向与法向分量:
\[\mathbf{v} = \alpha \, |\mathbf{v}| \, \hat{\mathbf{t}} + \beta \, |\mathbf{v}| \, \hat{\mathbf{n}}\]
其中:
α(alpha)为切向速度比,控制出发速度沿原始速度方向的分量
β(beta)为法向速度比(默认 0.0,即纯切向)
\(\hat{\mathbf{t}}\) 为原始速度方向单位向量
\(\hat{\mathbf{n}}\) 为轨道面法向单位向量
使用方法
from e2m2e.algorithm.transfer.propulsion import ImpulsivePropulsion
propulsion = ImpulsivePropulsion()
# 计算出发注入速度
v_inj = propulsion.compute_departure_velocity(
dro_orbit.states[0],
alpha=1.2,
beta=0.0,
)
# 转移代价(Δv 分解)由 compute_cost 计算,见下文示例
参数说明
normal— 轨道面法向量,默认 [0, 0, 1](z 轴)
与转移代价的配合
ImpulsivePropulsion 内部调用 compute_transfer_cost()
计算 Δv 分解:
from e2m2e.algorithm.transfer.cost import compute_transfer_cost
cost = compute_transfer_cost(
departure_state=departure_state,
initial_velocity=initial_velocity,
final_velocity=final_velocity,
insertion_velocity=insertion_velocity,
)
print(f"Δv1 = {cost.dv1:.6f}, Δv2 = {cost.dv2:.6f}, 总计 = {cost.total:.6f}")