2021-03-08动力学方程

运动方程
惯性系下,由卫星的摄动理论可知,卫星的运动方程为:

等式右边第一项为中心引力,第二项为摄动力,表示卫星所受的各种摄动力产生的加速度总和。Pd为卫星的动力学模型参数矢量(如光压参数、大气阻力参数等),认为其为常矢量。
卫星所受力可以分为保守力和非保守力。图1给出了卫星上所受各种力产生的加速度大小随轨道高度的变化;图2给出了三类卫星各摄动力的量级(LEO、MEO、GEO);
可以看出:
图1
图2

N体运动、太阳光压随轨道高度增加而增大;地球中心引力及镶滚摄动力随轨道高度高度增加而减小。
MEO和GEO卫星受到的大气阻力很小,几乎可以忽略。
摄动力
①地球引力
地球引力包括地球中心引力和地球非球型摄动力。地球对外部点的引力位事一个调和函数。EGM2009可以达到2159阶次的位系数,实际定轨时只需要截取一定借此即可。
(重力场模型为地固系,应为至卫星需转换到惯性系)
②N体摄动
太阳、月球及其他行星摄动天体的引力,称为N体摄动。
天体在惯性系下的位置向量可通过查星历表获取,一般选取DE405星历。
见链接:ftp://ssd.jpl.nasa.gov//pub/eph/export/DE405
③大气阻力
产生影响的主要摄动力之一,大气阻力和大气密度的变化相关。
大气阻力系数描述大气与卫星表面的相互作用,受卫星形状、材料等影响,球星卫星可以较准确的确定;非球形难以预测,一般取1.5-3.0。在定轨中一般当作位置参数估计。
大气密度使用数值密度模型计算。(模型很多,如DTM94、Jacchia等)。
④太阳光压
太阳光压摄动力分为两部分:卫星星体部分和太阳帆板部分产生的太阳光压摄动加速度。
计算公式查文件。
⑤低轨卫星经验力模型

开源POD代码:
https://bitbucket.org/geoscienceaustralia/workspace/projects/GACS
计划学习下此开源代码,记录下学习笔记。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个简单的 Matlab 函数,用于计算卫星在大气阻力摄动下的运动状态: ```matlab function [r, v] = atmospheric_drag_perturbation(mu, r0, v0, t, Cd, Area, mass, rho0, H) % mu: 引力常数 % r0: 初始位置矢量 % v0: 初始速度矢量 % t: 时间间隔 % Cd: 卫星的阻力系数 % Area: 卫星的横截面积 % mass: 卫星的质量 % rho0: 大气密度在高度 h = 0 上的值 % H: 大气密度随高度变化的尺度高度 % 计算初始轨道参数 a = norm(r0); e = norm(v0)^2/2 - mu/a; h = cross(r0,v0); i = acos(h(3)/norm(h)); N = cross([0 0 1],h); N = N/norm(N); if N(2) < 0 RAAN = 2*pi - acos(N(1)); else RAAN = acos(N(1)); end if e < 1e-10 w = 0; else E = acos((a*(1-e^2)/norm(r0)-1)/e); if dot(r0,v0) < 0 E = 2*pi - E; end w = acos(dot(r0,E)-a*(1-e^2)/norm(r0)/e); if r0(3) < 0 w = 2*pi - w; end end M = E - e*sin(E); % 计算摄动项 n = sqrt(mu/a^3); % 计算时间间隔内的轨道参数变化量 dM = n*t; M = M + dM; % 计算大气阻力摄动项 rho = rho0*exp(-norm(r0)-6378.137)/H; v_rel = v0 - cross([0 0 7292115.8553e-11]',r0); F_drag = -0.5*Cd*Area*rho*norm(v_rel)*v_rel; a_drag = F_drag/mass; % 计算时间间隔内的位置和速度变化量 deltav = a_drag*t; v = v0 + deltav; r = r0 + v0*t + 0.5*a_drag*t^2; % 计算新的位置和速度矢量 E = M; for i = 1:100 E_old = E; E = M + e*sin(E); if abs(E-E_old) < 1e-10 break end end f = 2*atan(sqrt((1+e)/(1-e))*tan(E/2)); r = a*(1-e^2)/(1+e*cos(f))*[cos(f); sin(f); 0]; v = sqrt(mu*(1+e)/(a*(1-e^2)))*[-sin(f); e+cos(f); 0]; R3 = [cos(-RAAN) sin(-RAAN) 0; -sin(-RAAN) cos(-RAAN) 0; 0 0 1]; R1 = [1 0 0; 0 cos(-i) sin(-i); 0 -sin(-i) cos(-i)]; R3_w = [cos(-w) sin(-w) 0; -sin(-w) cos(-w) 0; 0 0 1]; Q = R3*R1*R3_w; r = Q*r; v = Q*v + cross([0 0 7292115.8553e-11]',r); end ``` 这个函数与之前的函数类似,但是增加了四个参数:卫星的阻力系数 Cd、横截面积 Area、质量 mass,以及大气密度在高度 h = 0 上的值 rho0 和随高度变化的尺度高度 H。它将返回一个长度为 3 的列向量 r,表示卫星在时间间隔后的位置矢量,以及一个长度为 3 的列向量 v,表示卫星在时间间隔后的速度矢量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值