J2摄动条件下的轨道转移方程

本文探讨了在卫星定轨中考虑J2摄动时的状态转移方程,通过线性化和数值积分方法(如四阶龙格库塔法)进行求解。与STK预报器的对比显示,状态转移方程方法精度较低,需改进。
摘要由CSDN通过智能技术生成

一、背景介绍

      在进行精密定轨的过程中,通常涉及到求解卫星自身的状态转移方程,根据考虑不同的摄动力会对应着不同的状态转移方程,在本文中仅考虑J2项摄动影响,讨论卫星的状态转移方程。

       根据牛顿第二定律以及J2项摄动情况下的势函数,可以得到下式

\ddot{\boldsymbol{r}}=\boldsymbol{g}=\textup{grad}\boldsymbol{U}=\bigtriangledown\boldsymbol{ U}\\ U=\frac{\mu _e}{r}[1-\frac{J_2}{2}(\frac{a_e}{r})^2(3\sin^2(\varphi)-1)]

式中,\boldsymbol{U}为地球的势函数,\mu_e为地球引力常数,r为该位置离地球质心的距离,a_e为地球赤道半径,\varphi为该位置对应的纬度

       根据状态转移方程,设卫星的状态空间为\boldsymbol{X}=[\boldsymbol{r},\boldsymbol{v},\boldsymbol{q}]^T,其中\boldsymbol{q}为系统观测误差向量,则系统运动方程满足:

\boldsymbol{\dot{X}}=[\boldsymbol{\dot{r}},\boldsymbol{\dot{v}},\boldsymbol{\dot{q}}]^T=f(\boldsymbol{X},t)=[v,\bigtriangledown U,0]^T

得到的状态转移方程的微分形式f(\boldsymbol{X},t)

       由于动力学模型的非线性,系统状态转移方程\Phi(t,t_0)不能够解析给出,但给出其满足的微分方程。

\dot{​{\boldsymbol{\Phi}}}(t,t_0)=\boldsymbol{A}(t)\boldsymbol{\Phi}(t,t_0),\boldsymbol{\Phi}(t_0,t_0)=\boldsymbol{I},\boldsymbol{A}(t)=\frac{\partial{f(\boldsymbol{X},t)}}{\partial{\boldsymbol{X}}}

(\dot{x},\dot{y},\dot{z},\dot{v_{x0}},\dot{v_{y0}},\dot{v_{z0}})^{T}=\begin{bmatrix} 0&0 &0 & 1 & 0 &0 \\ 0& 0 &0 & 0 & 1&0 \\ 0& 0 & 0 &0 & 0& 1\\ \frac{\partial a_x}{\partial x}& \frac{\partial a_x}{\partial y} & \frac{\partial a_x}{\partial z} & 0 & 0 &0 \\ \frac{\partial a_y}{\partial x}& \frac{\partial a_y}{\partial y}& \frac{\partial a_y}{\partial z} & 0& 0& 0\\ \frac{\partial a_z}{\partial x} & \frac{\partial a_z}{\partial y} & \frac{\partial a_z}{\partial z} &0 &0 & 0 \end{bmatrix}(x_0,y_0,z_0,v_{x0},v_{y0},v_{z0})^{T}

需要求出t_0时刻后的状态位置(x_i,y_i,z_i,v_{xi},v_{yi},v_{zi}),以及从初始状态到该末状态的状态转移方程,对于以上非线性动力学系统,通常采用数值的方法来求解。

对于数值积分,首先将输入变量的时间函数插入到状态方程中,给出n\times1向量微分方程

\boldsymbol{\dot{​{x}}}(t)=\boldsymbol{a}(\boldsymbol{x},t),\boldsymbol{x}(t_0)=\boldsymbol{x}_0

有几种数值积分方法可用,这已被广泛描述,如Butcher。问题的求解取决于初始状态\boldsymbol{x}(t_0),因此被称之为初值问题,用于解决初值问题的各种方法可以细分为一步法、多步法和外推法。著名的是四阶龙格库塔法,取步长为h

\boldsymbol{\dot{​{x}}}(t_{k+1})=\boldsymbol{x}(t_k)+\frac{h}{6}[\Delta \boldsymbol{x}_k^{(1)}+2\Delta \boldsymbol{x}_k^{(2)}+2\Delta \boldsymbol{x}_k^{(3)}+\Delta \boldsymbol{x}_k^{(4)}]

伴随向量为

\Delta \boldsymbol{x}_k^{(1)}=\boldsymbol{a}(\boldsymbol{x}(t_k),t_k)\\ \Delta \boldsymbol{x}_k^{(2)}=\boldsymbol{a}(\boldsymbol{x}(t_k)+\frac{1}{2}\Delta \boldsymbol{x}_k^{(1)},t_k+\frac{1}{2}h)\\ \Delta \boldsymbol{x}_k^{(3)}=\boldsymbol{a}(\boldsymbol{x}(t_k)+\frac{1}{2}\Delta \boldsymbol{x}_k^{(2)},t_k+\frac{1}{2}h)\\ \Delta \boldsymbol{x}_k^{(4)}=\boldsymbol{a}(\boldsymbol{x}(t_k)+\Delta \boldsymbol{x}_k^{(3)},t_k+h)

为了更好的理解这些公式,可以将上式应用于齐次定常系统

{\boldsymbol{\dot{x}}(t)}=\boldsymbol{A}\cdot \boldsymbol{x}(t)\\ x(t_{k+1})\approx\boldsymbol{ \phi}(h)\boldsymbol{x}(t_k)\\ \boldsymbol{ \phi}(h)=\boldsymbol{E}+\boldsymbol{A}h+\frac{1}{2}\boldsymbol{AA}h^2+\frac{1}{6}\boldsymbol{AAA}h^3+\frac{1}{24}\boldsymbol{AAAA}h^4

推得单步误差次数为h^5。一步法中最重要的是增量h,它对积分误差有直接的影响。特别是,我们可以通过一更小的增量计算来提高结果的准确性

二、具体实现

2.1 线性化过程

根据文章求出的状态微分方程,明显是一个非线性的函数,因此,需要对其进行线性化,这个过程通过MATLAB的syms系统进行求解,可以直接求出线性化后的状态方程,公式如下所示

syms x y z J2 ae miu
r=sqrt(x^2+y^2+z^2)
dvx=-miu*x/r^3-1.5*J2*ae^2*miu*x/r^5*(1-5*(z/r)^2);
dvy=-miu*y/r^3-1.5*J2*ae^2*miu*y/r^5*(1-5*(z/r)^2);
dvz=-miu*z/r^3-1.5*J2*ae^2*miu*z/r^5*(3-5*(z/r)^2);
dvxdx=simplify(diff(dvx,x));
dvxdy=simplify(diff(dvx,y));
dvxdz=simplify(diff(dvx,z));
dvydx=simplify(diff(dvy,x));
dvydy=simplify(diff(dvy,y));
dvydz=simplify(diff(dvy,z));
dvzdx=simplify(diff(dvz,x));
dvzdy=simplify(diff(dvz,y));
dvzdz=simplify(diff(dvz,z));
function GAMMA=trans(x,y,z,J2,ae,miu)

GAMMA=zeros(3);
GAMMA(1,1)=-(2*miu*(x^2 + y^2 + z^2)^3 - 6*miu*x^2*(x^2 + y^2 + z^2)^2 + 3*J2*ae^2*miu*(x^2 + y^2 + z^2)^2 + 105*J2*ae^2*miu*x^2*z^2 - 15*J2*ae^2*miu*x^2*(x^2 + y^2 + z^2) - 15*J2*ae^2*miu*z^2*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
GAMMA(1,2)=(6*miu*x*y*(x^2 + y^2 + z^2)^2 - 105*J2*ae^2*miu*x*y*z^2 + 15*J2*ae^2*miu*x*y*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
GAMMA(1,3)=(6*miu*x*z*(x^2 + y^2 + z^2)^2 - 105*J2*ae^2*miu*x*z^3 + 45*J2*ae^2*miu*x*z*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
GAMMA(2,1)=(6*miu*x*y*(x^2 + y^2 + z^2)^2 - 105*J2*ae^2*miu*x*y*z^2 + 15*J2*ae^2*miu*x*y*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
GAMMA(2,2)=-(2*miu*(x^2 + y^2 + z^2)^3 - 6*miu*y^2*(x^2 + y^2 + z^2)^2 + 3*J2*ae^2*miu*(x^2 + y^2 + z^2)^2 + 105*J2*ae^2*miu*y^2*z^2 - 15*J2*ae^2*miu*y^2*(x^2 + y^2 + z^2) - 15*J2*ae^2*miu*z^2*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
GAMMA(2,3)=(6*miu*y*z*(x^2 + y^2 + z^2)^2 - 105*J2*ae^2*miu*y*z^3 + 45*J2*ae^2*miu*y*z*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
GAMMA(3,1)=(6*miu*x*z*(x^2 + y^2 + z^2)^2 - 105*J2*ae^2*miu*x*z^3 + 45*J2*ae^2*miu*x*z*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
GAMMA(3,2)=(6*miu*y*z*(x^2 + y^2 + z^2)^2 - 105*J2*ae^2*miu*y*z^3 + 45*J2*ae^2*miu*y*z*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
GAMMA(3,3)=-(2*miu*(x^2 + y^2 + z^2)^3 - 6*miu*z^2*(x^2 + y^2 + z^2)^2 + 9*J2*ae^2*miu*(x^2 + y^2 + z^2)^2 + 105*J2*ae^2*miu*z^4 - 90*J2*ae^2*miu*z^2*(x^2 + y^2 + z^2))/(2*(x^2 + y^2 + z^2)^(9/2));
end

根据线性化结果和龙格库塔法的关系,分别使用状态转移的方法和数值积分的方法,对J2轨道进行预报。第一个代码为J2摄动的f(\boldsymbol{X},t),写成如下函数

function x1=RK_J2(x0,t)
x1=zeros(6,1)
J2=1.08263e-3;
ae=6378.137;
miu=3.986e5;
x=x0(1);
y=x0(2);
z=x0(3);
vx=x0(4);
vy=x0(5);
vz=x0(6);
r=sqrt(x^2+y^2+z^2);

x1(1)=vx;x1(2)=vy;x1(3)=vz;
x1(4)=-miu*x/r^3-1.5*J2*ae^2*miu*x/r^5*(1-5*(z/r)^2);
x1(5)=-miu*y/r^3-1.5*J2*ae^2*miu*y/r^5*(1-5*(z/r)^2);
x1(6)=-miu*z/r^3-1.5*J2*ae^2*miu*z/r^5*(3-5*(z/r)^2);
end

使用四阶龙格库塔法数值积分,步长为10s

y=[23763.0112742573,-14408.2177617449,-2541.17345408073,0.911182669796365, 1.04987004575796,2.33432272229561];
h=10;
dx1=RK_J2(m,0)
dx2=RK_J2(m+dx1,0.5*h);
dx3=RK_J2(m+dx2,0.5*h);
dx4=RK_J2(m+dx3,h);
mmm=m+h/6*(dx1+2*dx2+2*dx3+dx4)

使用状态转移方程求解

GM=3.986e5;
Re=6378.137;
A=zeros(6);
A(1,4)=1;
A(2,5)=1;
A(3,6)=1;
gamma=trans(m(1),m(2),m(3),J_2,Re,GM);
for i=1:3
    for j=1:3
        A(3+i,j)=gamma(i,j);
    end
end
% 取步长为10s
E=eye(6);h=10
Phi=E+A.*h+1/2*A*A.*h^2+1/6*A*A*A.*h^3+1/24*A*A*A*A.*h^4;
m1=Phi*m;

三、结果对比

使用STK的J2pertubation预报器进行对比,其中1为STK预报器,2为状态转移方程方法,3为四阶龙格库塔法数值积分,下表为对初始位置10s后位置和速度的预报

比较上式可以知道,状态转移方法相比于四阶龙格库塔数值积分法,精度存在明显的不足,需要进一步提高精度。

J2摄动模型是一种描述地球自转影响对近地轨道的影响的数学模型。在这个模型中,地球被假设为一个完全球形且没有其他扁平度的理想物体。 在J2摄动模型下,地球的引力场被分为一个球对称部分和一个追踪地球自转引起的椭球扁平度的非球对称部分。这个非球对称部分被称为J2项,它是根据地球的形状和转动速率计算得出的。 在轨道外推中,J2摄动模型用于预测和计算卫星或航天器的轨道演化。由于地球的自转影响会导致轨道发生变化,尤其是对近地轨道来说,J2摄动模型的应用非常重要。 J2摄动模型中的J2项会导致轨道的升轨或降轨。当卫星或航天器处于靠近地球表面的轨道时,J2项会使得轨道高度下降,导致轨道的近地点逐渐下降,轨道周期缩短。相反,当卫星或航天器处于远离地球表面的轨道时,J2项会使得轨道高度升高,导致轨道的近地点逐渐上升,轨道周期延长。 轨道外推中,通过考虑J2摄动模型,可以对近地轨道的演化进行精确的计算和预测。这对于卫星轨道修正、航天器轨道规划以及卫星导航等应用都有重要意义。同时,J2摄动模型还可以用于分析轨道的稳定性、评估轨道垃圾和碰撞风险等问题。 总而言之,J2摄动模型下的轨道外推是通过考虑地球自转引起的非球对称引力影响,预测和计算卫星或航天器轨道演化的过程。它在航天领域的轨道规划和轨道保持中具有重要的应用价值。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值