Matlab仿真实例-卫星轨迹

合集下载

【精品】用MATLAB计算GPS卫星位置-最新文档资料

【精品】用MATLAB计算GPS卫星位置-最新文档资料

用M A T L A B计算G P S 卫星位置-最新文档资料用MATLAB计算GPS卫星位置GPS定位的基本原理简单来说就是在WGS-84空间直角坐标系中,确定未知点与GPS卫星的空间几何关系。

因此利用GPS 进行导航和测量时,卫星是作为位置已知的高空观测目标。

那么如何精确快速的解算出卫星在空间运行的轨迹即其轨道是实现未知点快速定位的关键。

1 标准格式RINEX格式简述在进行GPS数据处理时,由于接收机出自于不同厂家,所以厂家设计的数据格式也是五花八门的,但是在实际中,很多时候需要把来自不同型号的接收机的数据放在一块进行处理,这就需要数据格式的统一,为了解决这种矛盾,RINEX(英文全称为:The Receiver Independent Exchange Format)格式则应运而生,该格式存储数据的类型是文本文件,数据记录格式是独立于接收机的出自厂家和具体型号的。

由此可见,其特点是:由于是通用格式,所以可将不同型号接收机收集的数据进行统一处理,并且大多数大型数据处理软件都能够识别处理,此外也适用于多种型号的接收机联合作业,通用性很强。

RINEX标准文件里不是单一的一个文件,而是包括如下几种类型的文件[1]。

(1)观测数据文件(ssssdddf.yyo),记录的是GPS观测值信息,(OBServation data,简写OBS,为接收机记录的伪距、相位观测值;O文件,如XG012191.10O)。

(2)导航电文文件(ssssdddf.yyn),记录的是GPS卫星星历信息(NAVavigation data,简写NAV,记录实时发布的广播星历;N文件,如XG012191.10N)。

(3)气象数据文件(ssssdddf.yym),主要是在测站处所测定的气象数据(METerological data,简写MET,记录气象仪器观测的温、压、湿度状况;M文件,如XG012191.10M)。

(4)GLONASS导航电文文件(ssssdddf.yyg),记录的是地球同步卫星的导航电文。

GPS卫星轨道计算及其MATLAB仿真

GPS卫星轨道计算及其MATLAB仿真

GPS卫星轨道计算及其MATLAB仿真黎奇,白征东,李帅,陈波波(清华大学地球空间信息研究所,北京 100084)一、程序设计思路1. 读取RINEX文件(注意:文件路径)2. 计算测量日周积秒(测量日的格里历→GPST)3. 按卫星轨道计算步骤计算WGS-84坐标系坐标(内插)4. 按需要将WGS-84坐标系下坐标转换为所需坐标系坐标5. 画图输出二、n 文件说明及读取程序参考时刻oe t 的RINEX 格式的 “”广播星历文件具体如下:(加粗部分为本次轨道化Ω,率i ,弧度/秒4-22)标svacc ,米)收到的卫星信号解,秒)文件名:RinexNreader.m 输 入:文件地址,卫星编号三、计算测量日的周积秒文件名:GCtoGPS.m (其中调用函数:GCtoJD.m)输入:指定公历的年、月、日、时、分、秒文件名:GCtoJD.m输 入:指定公历的 年、月、日四、GPS 卫星轨道计算步骤及计算程序1. 计算卫星运动的平均角速度n平均角速度()03n =经摄动参数n ∆改正后的平均角速度0n n n =+∆3#61-79),n ∆(2#42-60);14323.98600510/GM m s =⨯ 2. 计算归化时间k t说明:①广播星历是oe t 时刻的,对应的轨道参数也是oe t 时刻的,而观测时间在t 时刻,显然oe t t <。

所以,要想获得t 时刻的轨道参数,需要知道t 与oe t 之间的差值即k t 。

以此,按照oe t 时刻轨道参数,外推t 时刻轨道参数。

②k t 的起算时间是星期六/星期日子夜0点,当302400k t s >时,604800k t s -;当302400k t s <-时,+604800k t s 。

(604800s=1周) =k oe t t t -,且604800302400604800302400k k k k k k t t t t t t =-⎧⎨=+⎩> <-已知:oe t (1#4-21)3. 计算观测时刻的平近点角k M0k k M M nt =+已知:0M (2#61-79),n (见1),k t (见2) 4. 计算观测时刻的偏近点角k Esin k k k E M e E =+已知:k M (见3),e (3#23-41)方法:迭代解算,设初值0k k E M =,迭代2次基本收敛。

matelab星体运动轨迹

matelab星体运动轨迹

嫦娥一号与月亮、地球、太阳关系演示图欧阳仕粮学号:20084051014(吉首大学物理与机电工程学院,湖南吉首416000)摘要:用matlab模拟嫦娥一号人造卫星运围绕月球做周期性运动时,人造卫星、月球、地球相对于太阳的运动轨迹动画。

展现了人造卫星绕月飞行时相对与参照物太阳的运动轨迹,便于直观的了解卫星相对于太阳的相对运动。

关键词:卫星运动轨迹;相对运动;数学软件matlab1、引言大家都知道我们所了解的地球围绕太阳做近似圆周运动的规则运动,当然月球,人造地球卫星也是如此,而我们一直以来所关注的登月工程的探月卫星也是这样一种情况。

那月球、探月卫星嫦娥一号相对于太阳是一个怎样的情形,下面通过计算机软件matlab,来模拟一下月球、嫦娥一号相对太阳的运动动画,并描绘出轨迹。

2、原理假设我们所研究的所有星体处在同一水平面上。

地球距太阳的的平均距离为R,月球距地球的平均距离为r1,嫦娥一号距月球的平均距离为r2,地球公转角速度w1,月亮公转角速度w2,嫦娥一号绕月亮公转角速度w3。

我们从0每隔0.01到2 取一个弧度s1。

地球相对太阳转过的角度sita1,月亮相对地球转过的角度sita2,嫦娥一号相对月球转过的角度sita3,设开始时间为t=0,然后每隔时间T进行一次取样计算,计算各个星体的的位置坐标。

首先,确定太阳的位置为(0,0),根据圆周运动的轨迹方程确定地球的运行轨道(R*cos(s1),R*sin(s1)),确定月球围绕地球公转的轨道(R*cos(sita1)+r1*cos(s1),R*sin(sita1)+r1*sin(s1)),再确定画嫦娥一号绕月亮公转轨道(R*cos(sita1)+r1*cos(sita1)+r2*cos(s1),R*sin(sita1)+r1*sin(sita1)+r2*sin(s1)),这样就找出了地球、月球、嫦娥一号的轨迹。

分别在matlab中用plot函数画出。

GPS基本原理及其matlab仿真第4章

GPS基本原理及其matlab仿真第4章

第4章 GPS卫星的导航定位信号 这里,自相关性是指两个结构相同的码序列的相关程度, 它由自相关函数描述。为了说明这一问题,可将随机噪声码序
列u(t)平移k个码元,获得具有相同结构的新的码序列u(t)。 比
较这两个码序列,假定它们的对应码元中,码值(0或1)相同 的码元个数为Su,而码元相异的码元个数为Du,那么两者之差 Su-Du 与两者之和Su+Du (即码元总数)的比值,即定义为随机 噪声码序列的自相关函数,用符号R(t)表示:
用户接收和测量GPS信号。从表4-1中可以看出,在D码的一个
码元内,将有20 460个C/A码码元,204 600个P码码元,31 508 400个L1周期和24 552 000个L2周期。
第4章 GPS卫星的导航定位信号
表4-1 GPS信号的频率关系
相关频率 基准频率 F C/A 码的码频 P 码的码频 D 码的码频 基频 F 10.23MHz
第4章 GPS卫星的导航定位信号 (3) 大气衰减小,有利于研制用户设备。GPS卫星采用L 波段,避开了大气的谐振吸收,衰减较小,且电离层延迟的影 响小,有利于用较经济的接收设备测量GPS信号。而采用两个 载频,目的在于测量出或消除掉由于电离层效应而引起的延迟 误差。 GPS信号是一种调制波,它不仅采用L波段的载波,而且采 用扩频技术传送卫星导航电文。所谓“扩频”,是将原来打算 发送的几十比特速率的电文变换成发送几兆甚至几十兆比特速

0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
末级输出的二进制数 ④ 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0
第4章 GPS卫星的导航定位信号 由此可见,四级反馈移位寄存器所产生的m序列,其一个

低轨卫星轨道仿真matlab

低轨卫星轨道仿真matlab

低轨卫星轨道仿真matlab低轨卫星轨道仿真可以使用MATLAB进行,以下是一个简单的步骤:1. 建立模型:首先需要建立一个低轨卫星模型。

这个模型可以基于卫星的物理参数,如质量、轨高度、自转等参数。

这些参数可以通过现有的卫星数据集或者自己计算获得。

2. 建立方程:在建立模型的同时,需要建立一个方程来描述卫星的运动。

这个方程可以使用牛顿第二定律或万有引力定律等经典物理学方程进行建模。

3. 运行仿真:使用MATLAB中的Simulink模块运行仿真。

Simulink提供了丰富的工具箱,可以帮助建模和仿真复杂的系统。

在Simulink中,可以使用运动仿真工具箱来仿真卫星的运动。

4. 可视化结果:在仿真运行结束后,可以使用MATLAB中的plot 模块来可视化结果。

将卫星的运动轨迹、速度、轨道高度等数据可视化出来,以便更好地理解卫星的运动行为。

下面是一个简单的低轨卫星轨道仿真的MATLAB代码示例,假设我们使用仿真工具箱来模拟卫星的运动:```matlab% 建立模型model = reshape(load("低轨卫星模型.mat"), [1 1 3]);model.M = [10.0 8.0 6.0]; % 卫星质量model.H = [300.0 200.0 200.0]; % 轨道高度model.Z = [0.1; 0.15; 0.2]; % 卫星轨道中心距地面的高度 model.V = [0.9; 0.94; 0.97]; % 卫星的速度% 建立方程F = 1.0; % 引力常数,近似为1g = 9.8; % 重力加速度,近似为9.8米/秒^2M = model.M; % 卫星质量h = model.H - 2*model.Z; % 卫星轨道中心距地面的高度model.P = 1.0; % 卫星的公转周期% 运行仿真Time = 0:0.01:1; % 仿真时间,单位为秒X = model.V*Time; % 卫星的X坐标Y = model.V*Time + h/2; % 卫星的Y坐标Z = model.V*Time + 3*h/2; % 卫星的Z坐标plot(X, Y, Z, "b"); % 可视化卫星的运动轨迹title("低轨卫星轨道仿真结果");```在这个代码中,我们使用了牛顿第二定律和万有引力定律来建立卫星的运动方程。

GPS用户位置求解Matlab仿真121118

GPS用户位置求解Matlab仿真121118
( x x ) 2 ( y y ) 2 ( z z ) 2 c u u u u 1 1 1 1 2 ( x2 xu ) 2 ( y2 yu ) 2 ( z2 zu ) 2 c u 2 2 2 N ( xN xu ) ( y N yu ) ( z N zu ) c u
2、伪距测量模拟函数 CalculatePseudoRange
function Prange=CalculatePseudoRange(SatellitePosition,UserPosition) 算机模拟伪距测量 %计
c=3e5; %光速,单位:km/s; DeltaT=1e-4; %钟差为 1e-4 数量级秒,假设卫星钟间时钟一致,DeltaT=Tu-Ts;钟差不 宜超过 3e-4,否则不收敛; VisSatNum=0; %首先找出可以观测到的卫星数量 SatellitePosNew=[]; for k=1:24 if SatellitePosition(k,4)==1 VisSatNum=VisSatNum+1; SatellitePosNew=[SatellitePosNew; SatellitePosition(k,1:3)];
end %if end %for Prange=ones(1,VisSatNum); %求解用户接收机收到的伪距信息 for n=1:VisSatNum Prange(1,n)=sqrt( (SatellitePosNew(n,:)-UserPosition) (SatellitePosNew(n,:)-UserPosition)' + c*DeltaT ); end
三、实验内容
1、熟悉 Matlab 编程的语法、环境。 2、定位程序是一个迭代运算程序,卫星坐标和用户坐标由上述语句给出,运行程序,

matlab卫星轨迹

matlab卫星轨迹

MATLAB卫星轨迹引言卫星轨迹是描述卫星在地球或其他天体之间运动的路径。

通过了解卫星轨迹,我们可以预测和控制卫星的运行,以及计划卫星的任务。

在本文档中,我们将使用MATLAB来分析和绘制卫星轨迹。

确定卫星轨迹方程卫星在空间中的运动可以通过多种方式描述,其中一种常用的方法是使用开普勒问题的解析解。

开普勒问题是描述两个质点间引力相互作用的运动方程。

对于一个质点沿着椭圆轨道运动的情况,其运动方程可以表示为:轨道方程轨道方程其中,r是卫星与中心天体(例如地球)之间的距离,a和b是椭圆的半长轴和半短轴,e是离心率,θ是卫星相对于半长轴的偏移角。

在MATLAB中,我们可以使用以下代码来计算卫星的轨道方程:function [x, y] = compute_orbit(a, e, theta)r = a * (1 - e^2) ./ (1 - e * cos(theta));x = r .* cos(theta);y = r .* sin(theta);end绘制卫星轨迹在计算了卫星的轨道方程之后,我们可以使用MATLAB的绘图工具将卫星轨迹可视化。

以下是绘制卫星轨迹的代码示例:a = 6378; % 半长轴e = 0.1; % 离心率theta = linspace(0, 2*pi, 1000); % 角度范围[x, y] = compute_orbit(a, e, theta);figure;plot(x, y);axis equal;title('卫星轨迹');xlabel('X轴');ylabel('Y轴');在上述代码中,我们假设半长轴为6378千米,离心率为0.1,并生成1000个角度点。

然后,我们使用compute_orbit 函数计算卫星的轨道坐标,并使用plot函数绘制这些坐标。

最后,我们使用axis equal命令来确保图形的横纵比例相等,以保持轨道的形状准确。

北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)

北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)

北斗卫星导航信号串行捕获算法MATLAB仿真报告一、原理卫星导航信号的串行捕获算法如图1所示。

图1 卫星导航信号的串行捕获算法接收机始终在本地不停地产生对应某特定卫星的本地伪码,并且接收机知道产生的伪码的相位,这个伪码按一定速率抽样后与接收的GPS中频信号相乘,然后再与同样知晓频率的本地产生的载波相乘。

GPS中频信号由接收机的射频前端将接收到的高频信号下边频得到。

实际产生对应相位相互正交的两个本地载波,分别称为同相载波和正交载波,信号与本地载波相乘后的信号分别成为,产生同相I支路信号和正交的Q 支路信号。

两支路信号分别经过一个码周期时间的积分后,平方相加。

分成两路是因为C/A码调制和P码支路正交的支路上,假设是I支路。

当然由于信号传输过程中引入了相位差,解调时的I支路不一定是调制时的I支路,Q支路也一样,二者不一定一一对应,因此为了确定是否检测到接收信号,需要同时对两支路信号进行研究。

相关后的积分是为了获取所有相关数据长度的值的相加结果,平方则是为了获得信号的功率。

最后将两个支路的功率相加,只有当本地伪码和本地载波的频率相位都与中频信号相同时,最后得到的功率才很大,否则结果近似为零。

根据这个结论考虑到噪声的干扰,在实际设计时应该设定一个判定门限,当两路信号功率和大于设定的门限时则判定为捕获成功,转入跟踪过程,否则继续扫描其它的频率或相位。

二、MATLAB仿真过程及结果仿真条件设置:抽样频率16MHz,中频5MHz,采样时间1ms,频率搜索步进1khz,相位搜索步进1chip,信号功率-200dBW,载噪比55dB(1)中频信号产生卫星导航信号采用数字nco的方式产生,如图2所示。

载波nco控制字为:carrier_nco_word=round(f_carrier*2^N/fs); 伪码nco控制字为:code_nco_word=round(f_code*2^N/fs);图 2其中载波rom存储的是正弦信号的2^12个采样点,伪码rom存储长度为2046的卫星伪码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的速度发射的运动轨迹比较。

相关文档
最新文档