卫星轨道的估计问题(Matlab)(一):理论基础
问题:
在平面轨道中绕地球(质量为mmm)运动的一个卫星,设rrr为该卫星到地球的距离,θ\thetaθ为该卫星与地球连线同坐标轴xxx成的夹角。该卫星坐标m(x,y)m(x,y)m(x,y)。求该卫星的轨迹并仿真之。
求解方案:
在极坐标下卫星坐标为m(rcosθ,rsinθ)m(rcos\theta,rsin\theta)m(rcosθ,rsinθ)。表示为X:X:X:
X⃗=[rcosθrsinθ]\vec X = \begin{bmatrix} rcos\theta \\ rsin\theta\end{bmatrix} X=[rcosθrsinθ]
对卫星进行受力分析可以知道行星收到的合外力可以看作只有万有引力:
∑F⃗out=GmMr3r⃗=−GmMr2cosθi⃗−GmMr2sinθj⃗=[−GmMr2cosθ−GmMr2sinθ]\sum \vec F_{out}=G\frac{mM}{r^3}\vec r =-G\frac{mM}{r^2}cos\theta\vec i-G\frac{mM}{r^2}sin\theta\vec j=\begin{bmatrix}-G\frac{mM}{r^2}cos\theta \\ -G\frac{mM}{r^2}sin\theta\end{bmatrix} ∑Fout=Gr3mMr=−Gr2mMcosθi−Gr2mMsinθj=[−Gr2mMcosθ−Gr2mMsinθ]
而XXX的二阶导数为:
X¨⃗=[r¨cosθ−2r˙θ˙sinθ−rθ¨sinθ−rθ˙2cosθr¨sinθ+2r˙θ˙cosθ+rθ¨cosθ−rθ˙2sinθ]\vec{\ddot{X}}=\begin{bmatrix} \ddot{r}cos\theta-2\dot{r}\dot{\theta}sin\theta-r\ddot{\theta}sin \theta-r\dot{\theta}^2cos\theta\\ \ddot{r}sin\theta+2\dot{r}\dot{\theta}cos\theta+r\ddot{\theta}cos \theta-r\dot{\theta}^2sin\theta \\ \end{bmatrix} X¨=[r¨cosθ−2r˙θ˙sinθ−rθ¨sinθ−rθ˙2cosθr¨sinθ+2r˙θ˙cosθ+rθ¨cosθ−rθ˙2sinθ]
根据牛顿第二定律∑Fout⃗=mX¨⃗\sum \vec{F_{out}} =m\vec{\ddot{X}}∑Fout=mX¨列出其动力学方程:
[−GmMr2cosθ−GmMr2sinθ]=m[r¨cosθ−2r˙θ˙sinθ−rθ¨sinθ−rθ˙2cosθr¨sinθ+2r˙θ˙cosθ+rθ¨cosθ−rθ˙2sinθ]\begin{bmatrix}-G\frac{mM}{r^2}cos\theta \\ -G\frac{mM}{r^2}sin\theta\end{bmatrix}=m\begin{bmatrix} \ddot{r}cos\theta-2\dot{r}\dot{\theta}sin\theta-r\ddot{\theta}sin \theta-r\dot{\theta}^2cos\theta\\ \ddot{r}sin\theta+2\dot{r}\dot{\theta}cos\theta+r\ddot{\theta}cos \theta-r\dot{\theta}^2sin\theta \\ \end{bmatrix} [−Gr2mMcosθ−Gr2mMsinθ]=m[r¨cosθ−2r˙θ˙sinθ−rθ¨sinθ−rθ˙2cosθr¨sinθ+2r˙θ˙cosθ+rθ¨cosθ−rθ˙2sinθ]
化简一下可以得到:
−GMr2[cosθsinθ]=[r¨−rθ˙2−2r˙θ˙−rθ¨2r˙θ˙+rθ¨r¨−rθ˙2][cosθsinθ]-G\frac{M}{r^2}\begin{bmatrix}cos\theta \\ sin\theta\end{bmatrix}=\begin{bmatrix}\ddot{r}-r\dot{\theta}^2&-2\dot{r}\dot{\theta}-r\ddot{\theta}\\2\dot r\dot \theta+r\ddot{\theta}&\ddot{r}-r\dot{\theta}^2\end{bmatrix}\begin{bmatrix}cos\theta \\ sin\theta\end{bmatrix} −Gr2M[cosθsinθ]=[r¨−rθ˙22r˙θ˙+rθ¨−2r˙θ˙−rθ¨r¨−rθ˙2][cosθsinθ]
消去[cosθ,sinθ]T[cos\theta,sin\theta]^T[cosθ,sinθ]T后整理可以得到:
r¨=rθ˙2−GMr−2θ¨=−2r−1r˙θ˙\ddot r = r\dot \theta^2-GMr^{-2}\\ \ddot{\theta}=-2r^{-1}\dot r \dot \theta r¨=rθ˙2−GMr−2θ¨=−2r−1r˙θ˙
上面的式子说明行星运动处在一个复杂的二阶非线性常微分方程所确定的轨道上:
我们设状态变量x=[r,r˙,θ,θ˙]Tx=[r,\dot r,\theta,\dot{\theta}]^Tx=[r,r˙,θ,θ˙]T,可以得到:
x˙=[x(2)x(1)∗(x(4))2−GM(x(1))−2x(4)−2(x(1))−1x(2)x(4)]\dot{x}=\begin{bmatrix}x(2)\\x(1)*(x(4))^2-GM(x(1))^{-2} \\x(4) \\-2(x(1))^{-1}x(2)x(4) \end{bmatrix}\\ x˙=⎣⎢⎢⎡x(2)x(1)∗(x(4))2−GM(x(1))−2x(4)−2(x(1))−1x(2)x(4)⎦⎥⎥⎤
我们要求的是该卫星在图上坐标系中的位置X⃗\vec XX:
X⃗=[x(1)∗cos(x(3))x(1)∗sin(x(3))]\vec X=\begin{bmatrix}x(1)*cos(x(3))\\x(1)*sin(x(3)) \end{bmatrix} X=[x(1)∗cos(x(3))x(1)∗sin(x(3))]
以初值为:
x0=(a,0,0,ω0)Tx_0=(a,0,0,\omega_0)^T x0=(a,0,0,ω0)T
在MATLAB中调用ode45ode45ode45函数采用龙格-库塔法求解之:
以月球为例,M =
5.965×10^24kg
,G =6.67259×10^-11N·m²/kg²
,a =3.63×10^8m
,而且在近日点处的角速度估计为:ω0=2π30×24×3600rad/s\omega_0=\frac{2\pi}{30\times24\times3600} rad/sω0=30×24×36002πrad/s。
调用以下代码进行仿真:
clc,clear
G = 6.67259*10^(-11);
M = 5.965*10^(24);
a = 3.63*10^8;
x0 = [a;0;0;2*pi/30/3600/24];
GM = G*M;
odefun = @(t,x)[x(2);...x(1)*(x(4))^2-GM*(x(1)+eps)^(-2);...x(4);...-2*x(2)*x(4)/(x(1)+eps)];
day = 24*3600;
tspan = 0:day/24:28*day;
%以下是最关键一步
[t,y] = ode45(odefun,tspan,x0);
hold on,grid on
plot(y(:,1).*cos(y(:,3)),y(:,1).*sin(y(:,3)),'LineWidth',3);
plot(y(:,1).*cos(y(:,3)),y(:,1).*sin(y(:,3)),'ro');
plot(0,0,'yo','MarkerFaceColor','black');
text(0,0,'地球');
xlabel('m');ylabel('m');title('月球运动轨迹');
绘制出的月球轨迹为:
卫星轨道的估计问题(Matlab)(一):理论基础相关推荐
- 卫星轨道的估计问题(Matlab)(三):标准重采样粒子滤波(SIR)对新问题的尝试
SIR滤波器 关于粒子滤波的基本知识可以参加下面的博客: 粒子滤波,讲的很通俗易懂 基本粒子滤波算法过程: SIR算法伪代码: Matlab代码实现 求解如下所示的滤波问题: %PF的应用 clc,c ...
- 卫星轨道的估计问题(Matlab)(二):扩展卡尔曼滤波(EKF)对新问题的尝试
前言 在前面的问题中我们已经考虑到了用微分方程来描述卫星运动轨迹的方法: r¨=rθ˙2−GMr−2θ¨=−2r−1r˙θ˙\ddot r = r\dot \theta^2-GMr^{-2}\\\dd ...
- MATLAB STK构建卫星轨道姿态控制仿真演示系统
MATLAB & STK构建卫星轨道姿态控制仿真演示系统 杜耀珂 郑科宇 摘要:通过在MATLAB中建立卫星的轨道运动和姿态动力学仿真模型就可以分析在不同的控制作用下,卫星的轨道和姿态的变化情 ...
- matlab 画卫星轨道,Matlab仿真实例-卫星轨迹
卫星轨迹 一.问题提出 设卫星在空中运行的运动方程为: d2rkd 2 r() 22 dtrdt 2 d 2drd rdtdt dt2 其中是k重力系数(k=401408km3/s).卫星轨道采用极坐 ...
- 卫星姿态的matlab编程,MATLABSTK构建卫星轨道姿态控制仿真演示系统.pdf
MATLABkSTK构建卫星轨道姿态控制仿真演示系统 杜耀珂郑科宇 (上海航天控制[j翻研究所上海200233) 摘要:通过在MATLAB中建立卫星的轨道运动和姿态动力学仿真模型就可以分析在不同的控制 ...
- matlab给定坐标画卫星轨道,Matlab仿真实例-卫星轨迹
卫星轨迹 一.问题提出 设卫星在空中运行的运动方程为: 其中是k 重力系数(k=401408km3/s).卫星轨道采用极坐标表示,通过仿真,研究发射速度对卫星轨道的影响.实验将作出卫星在地球表面(r= ...
- 卫星轨道和两行数据TLE
最近由于Sino-2和北斗的关系,很多网友贴了表示卫星运行轨道的TLE数据.这里想对卫星轨道参数和TLE的格式做一个简单介绍.虽然实际上没有人直接读TLE数据,而都是借助软件来获得卫星轨道和位置信息, ...
- 卫星轨道推演计算相关知识点总结(含欧拉角、旋转矩阵、及各坐标系转化等)
来源:轨道机动算法的C++实现_shirro123的专栏-CSDN博客 卫星轨道推演计算相关基础知识点总结 一.卫星的运动特性 二.卫星的空间坐标系 ...
- matlab中回归系数,最小一乘回归系数估计及其MATLAB实现
第9卷第4期 防 灾 科 技 学 院 学 报 Vol.9 No.4 2007年12月 J.of Institute of Disaster-Prevention Science and Technol ...
最新文章
- ASP技巧实例:几行代码解决防止表单重复提交
- Eclipse中配置Tomcat虚拟路径
- 电脑故障检测软件_有什么软件可以检测出电脑配置是否达到游戏配置。
- ack机制之代码实现,实现BaseRichBolt的方式,使用BaseBasicBolt的方式实现BaseRichBolt发ack和fail的功能
- 清华大学计算机系男女比v,清华男女生比例惊人,但找女朋友却不愁,这是为什么?...
- pandas的自带数据集_用Python和Pandas进行数据清理:检测丢失值
- python输入错误提示再次输入_Python实现用户登录并且输入错误三次后锁定该用户...
- JSP面试题都在这里
- CS106 错误拒绝访问
- Atitit MATLAB 图像处理 经典书籍attilax总结
- 麦吉尔大学计算机科学申请,麦吉尔大学计算机科学
- 灵活易用的液体创可贴,让伤口愈合更快,海氏海诺液体创可贴上手
- 汽车修理厂计算机管理,最新汽车维修厂管理系统
- BUUCTF持续更新中
- React组件进阶--组件通讯介绍,组件的 props特点,组件通讯的三种方式子到父,父到子,兄弟到兄弟组件,Context,回顾练习
- 人人网2017暑假实习生招聘-一面
- 【Matlab】多元线性回归(Excel可直接替换数据)
- C++实现二叉树 前、中、后序遍历(递归与非递归)非递归实现过程最简洁版本
- 金融 计算机 硕士排名2015,2015考研 金融专硕学校实力及就业排名_跨考网
- Lunch Time
热门文章
- 动态设置HTML:v-html
- CIDR的IP地址与可分配的IP地址辨析
- python语音读取
- tf.GraphKeys,tf.add_to_collection() 与 tf.get_collection()
- 10.8 wtx模拟题题解
- 结对编程_队友代码分析
- Extjs的数据读取器store和后台返回类型简单解析
- c++字符转换及介绍(未完)
- 微信小程序入门 ——增删改查+页面跳转+传值取值+布局样式
- Android 高级面试-2:IPC 相关