Matlab仿真实例-卫星轨迹
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卫星轨迹
一.问题提出
设卫星在空中运行的运动方程为:
其中是k 重力系数(k=401408km3/s)。卫星轨道采用极坐标表示,通过仿真,研究发射速度对卫星轨道的影响。实验将作出卫星在地球表面(r=6400KM ,θ=0)分别以v=8KM/s,v=10KM/s, v=12KM/s 发射时,卫星绕地球运行的轨迹。
二.问题分析
1.卫星运动方程一个二阶微分方程组,应用Matlab 的常微分方程求解命令ode45求解时,首先需要将二阶微分方程组转换成一阶微分方程组。若设 ,则有:
2.建立极坐标如上图所示,初值分别为:卫星径向初始位置,即地球半径:y(1,1)=6400;卫星初始角度位置:y(2,1)=0;卫星初始径向线速度:y(3,1)=0;卫星初始周向角速度:y(4,1)=v/6400。
3.将上述一阶微分方程及其初值带入常微分方程求解命令ode45求解,可得到一定时间间隔的卫星的径向坐标值y(1)向量;周向角度坐标值y(2)向量;径向线速度y(3)向量;周向角速度y(4)向量。
4.通过以上步骤所求得的是极坐标下的解,若需要在直角坐标系下绘制卫星的运动轨迹,还需要进行坐标变换,将径向坐标值y(1)向量;周向角度坐标值y(2)向量通过以下方程转换为直角坐标下的横纵坐标值X,Y 。
5.卫星发射速度速度的不同 将导致卫星的运动轨迹不同,实验将绘制卫星分别以v=8KM/s ,v=10KM/s ,v=12KM/s 的初速度发射的运动轨迹。
三.Matlab 程序及注释
1.主程序
v=input('请输入卫星发射速度单位Km/s :\nv='); %卫星发射速度输入。
axis([-26400 7000 -10000 42400 ]); %定制图形输出坐标范围。
%为了直观表达卫星轨迹,以下语句将绘制三维地球。
[x1,y1,z1]=sphere(15); %绘制单位球。
x1=x1*6400; y1=y1*6400; ⎪⎪⎩⎪⎪⎨⎧-=+-=dt d dt dr r dt d dt d r r k dt r d θ
θθ2)(2
22222θ==)2(,)1(y r y ⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧**-=**+*-===)1(/)4()3(2)4()4()4()1()1()1()3()4()2()
3()1(y y y dt dy y y y y y k dt dy y dt dy y dt dy ⎩⎨⎧*=*=)]2(sin[)1(Y )]2(cos[)1(X y y y y
z1=z1*6400; %定义地球半径。
mesh(x1,y1,z1);
surf(x1,y1,z1); %绘制地球。
x0=[6400,0,0,v/6400]; %微分方程初始值。
[t,y]=ode45(@YunDongFangCheng,[0,200000],x0); %将微分方程,时间变量范围,%以及微分方程初始值,传递给函数ode45求解微分方程。
%以下语句将径向坐标值y(1)向量,周向角度坐标值y(2)向量,
%转换为直角坐标下的横纵坐标值X,Y。用于直角坐标下卫星轨迹绘制。
X=y(:,1).*cos(y(:,3));
Y=y(:,1).*sin(y(:,3));
%以下语句用于卫星轨迹绘制。
hold on;
plot(X,Y,'r.',X,Y,'b-');
grid on;
2.微分方程函数
function f=YunDongFangCheng(t,x) %定义状态变量函数。
K=401408; %K为重力系数。
f=[x(2);
-K/(x(1)*x(1))+x(1)*x(4)*x(4);
x(4);
-2/x(1)*x(2)*x(4)];
四.问题求解结果
1.卫星以v=8KM/s速度发射,绕地球运行的轨迹。
2.卫星以v=10KM/s速度发射,绕地球运行的轨迹。
3.卫星以v=12KM/s速度发射,脱离地球运行的轨迹。
4.三维空间下,卫星以v=10KM/s速度发射时,绕地球运行的轨迹。
5.三维空间下,卫星分别以v=8KM/s ,v=10KM/s,v=12KM/s的速度发射的运动轨迹比较。