基于MATLAB的GPS卫星绕地运行轨迹动态模拟仿真
目录
1.算法运行效果图预览
2.算法运行软件版本
3.部分核心程序
4.算法理论概述
5.算法完整程序工程
1.算法运行效果图预览


2.算法运行软件版本
matlab2022a
3.部分核心程序
Prn = NavData(PRNS_SEL,1);%识别导航数据中的PRNiode = NavData(PRNS_SEL,11);%企业日期序列号Crs = NavData(PRNS_SEL,12);%轨道半径正弦谐波校正的振幅delta_n = NavData(PRNS_SEL,13);%与计算值的平均运动差M_zero = NavData(PRNS_SEL,14);%参考时间的平均异常Cuc = NavData(PRNS_SEL,15);%纬度变元余弦谐波校正项的振幅es = NavData(PRNS_SEL,16);%偏心率Cus = NavData(PRNS_SEL,17);%纬度变元正弦谐波校正项的振幅sqrt_a = NavData(PRNS_SEL,18);%半长轴的平方根toe = NavData(PRNS_SEL,19);%星历重新出现时间(GPS周第二次)Cic = NavData(PRNS_SEL,20);%倾角余弦谐波校正项的振幅OMEGA_zero = NavData(PRNS_SEL,21);%参考时间赤经Cis = NavData(PRNS_SEL,22);%倾斜角正弦谐波校正项的振幅i_zero = NavData(PRNS_SEL,23);%参考时间的倾角Crc = NavData(PRNS_SEL,24);%轨道半径余弦谐波校正的幅度omega = NavData(PRNS_SEL,25);%近地点论点OMEGA_dot = NavData(PRNS_SEL,26);%赤经角变化率i_dot = NavData(PRNS_SEL,27);%倾斜度变化率%计算真实异常%校正平均运动n_initial = sqrt(Gravitational_constant)/(sqrt_a*sqrt_a*sqrt_a);n = n_initial + delta_n;%计算自参考历元以来的时间t_k = func_tk_limits(t,toe);%T_K平均异常M_k = M_zero + n * t_k + 2*pi; E_k = M_k;E_k1= M_k - es*sin(E_k);%E_K的迭代求解while (abs(E_k - E_k1) > 1e-9)E_k1 = E_k;E_k = M_k + es * sin(E_k1);end; %TRUE ANOMALYv_k = 2*atan(sqrt((1+es)/(1-es))*tan(E_k/2)); %%纬度论%未修正纬度的自变量phi_k = v_k + omega; %校正C_u = Cus*sin(2*phi_k) + Cuc*cos(2*phi_k);C_r = Crs*sin(2*phi_k) + Crc*cos(2*phi_k); C_i = Cis*sin(2*phi_k) + Cic*cos(2*phi_k);
01_075m
4.算法理论概述
模拟24颗GPS卫星的轨道运行是一个复杂的任务,涉及到多个卫星的轨道计算和绘制。以下是一个大致的步骤和示例代码,用于在MATLAB中模拟和绘制这些卫星的轨道运行。实际GPS卫星的轨道参数非常复杂,而且卫星之间的相对运动也需要考虑。下面的示例代码是一个简化的版本,用于演示基本的概念。要通过MATLAB模拟24个GPS卫星的轨道运行效果,你可以按照以下步骤进行操作:
获取卫星轨道参数: GPS卫星的轨道参数可以从相关文献或数据源中获取。这些参数包括每颗卫星的半长轴、偏心率、轨道倾角、升交点赤经等。
计算卫星的轨道: 使用获取的轨道参数,可以通过开普勒运动方程计算每颗卫星在每个时间点的位置和速度。
选择模拟时间范围: 选择一个适当的时间范围,以便观察卫星在地球上的运动。
生成时间序列: 生成一系列时间点,可以使用MATLAB中的时间函数,如linspace来生成等间隔的时间点。
计算卫星位置: 对于每个时间点,使用计算得到的轨道参数和时间,计算每颗卫星的位置和速度。
绘制卫星轨道: 使用MATLAB的绘图函数,如plot3,绘制每颗卫星在三维空间中的轨道。你可以在地球球面上绘制卫星的位置,也可以绘制在三维笛卡尔坐标系中的轨迹。
通过使用GPS卫星星历(Almanac data)信息,来计算模拟24个GPS卫星的轨道。每个卫星用PRN1-24来编号,假设GPS卫星轨道是圆的。
自己卫星轨道模拟,这个卫星是离地面350Km的太阳同步轨道卫星。这个轨道是椭圆的,使用轨道倾角98度
计算自己卫星和每个GPS卫星的多普勒频移。
注意:这里使用GPS卫星是发送源,自己的卫星是接收源。假设发送频率1575.42 MHz
GPS卫星轨道周期几乎是24小时,而自己的卫星在太阳同步轨道上的周期大概是1.5个小时,那么就是说太阳同步轨道已经绕几周了,GPS卫星才饶一周。所以当算多普勒频移的时候只需要算出GPS一个周期时间内的多普勒频移就好了。就是说,如果在算多普勒频移的时候,如果算多过24小时,那么多普勒频移就会重复了。我只需要24小时GPS轨道周期内的多普勒频移就好了。
这里,首先介绍一下星历文件的含义:
Prn
卫星编号
iode
电文中给出的当前参考历元的有效期
Crs
电文中给出的轨道半径角距的改正项—正弦振幅
delta_n
电文中给出的平地点角改正值
M_zero
电文中给出的参考时刻平近点角
Cuc
电文中给出的升交点赤经的改正项—余弦振幅
e1
电文中给出的轨道椭圆偏心率
Cus
电文中给出的升交点赤经的改正项—正弦振幅
sqrt_a
电文中给出的卫星轨道椭圆长半轴的平方根
toe
电文中给出的参考时刻
Cic
电文中给出的倾角角距的改正项—余弦振幅
OMEGA_zero
电文中给出的参考时刻升交点赤经
Cis
电文中给出的倾角角距的改正项—正弦振幅
i_zero
电文中给出的参考时刻轨道倾角
Crc
电文中给出的轨道半径角距的改正项—余弦振幅
omega
电文中给出的轨道近地点角距
OMEGA_dot
电文中给出的升交点赤经变化率
i_dot
电文中给出的轨道倾角变化率
这里需要注意的时候,由于GPS距离地面的高度一般为20000km,而这里的同步卫星只有350km,所以看上去会效果不明显,所以这里我们把这里的参数设置的大些,这样看上去效果稍微明显点。然后你再写论文的时候,如果用到其中的数据,只要把他改回350即可。另外,其周期为1.5小时,这样在房子的时候,速度太快,不容易观察,这里稍微设置的大些,使用周期为6小时。
5.算法完整程序工程
OOOOO
OOO
O
相关文章:
基于MATLAB的GPS卫星绕地运行轨迹动态模拟仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 Prn NavData(PRNS_SEL,1);%识别导航数据中的PRNiode NavData(PRNS_SEL,11);%企…...
TCP/IP模型五层协议
TCP/IP模型五层协议 认识协议 约定双方进行的一种约定 协议分层 降低了学习和维护的成本(封装)灵活的针对这里的某一层协议进行替换 四/五层协议 五层协议的作用 应用层 应用层常见协议 应用层常见协议概览 基于TCP的协议 HTTP(超…...
vue 插槽 - 具名插槽
vue 插槽 - 具名插槽 **创建 工程: H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day05\准备代码\09-插槽-具名插槽 vue --version vue create…...
Elasticsearch2.x Doc values
文档地址: https://www.elastic.co/guide/en/elasticsearch/reference/2.4/doc-values.html https://www.elastic.co/guide/en/elasticsearch/guide/2.x/docvalues-intro.html https://www.elastic.co/guide/en/elasticsearch/guide/2.x/docvalues.html https://ww…...
Squeeze-and-Attention Networks for Semantic Segmentation
0.摘要 最近,将注意力机制整合到分割网络中可以通过更重视提供更多信息的特征来提高它们的表征能力。然而,这些注意力机制忽视了语义分割的一个隐含子任务,并受到卷积核的网格结构的限制。在本文中,我们提出了一种新颖的squeeze-a…...
【Java】Java 11 新特性概览
Java 11 新特性概览 1. Java 11 简介2. Java 11 新特性2.1 HTTP Client 标准化2.2 String 新增方法(1)str.isBlank() - 判断字符串是否为空(2)str.lines() - 返回由行终止符划分的字符串集合(3)str.repeat(…...
用Vue3.0 写过组件吗?如果想实现一个 Modal你会怎么设计?
一、组件设计 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式 现在有一个场景,点击新增与编辑都弹框出来进行填写,功能上大同小异,可能只是标题内容或者是显示的主体内容稍微不同 …...
ArmSoM-W3之RK3588硬编解码MPP环境配置
1. 简介 瑞芯微提供的媒体处理软件平台(Media Process Platform,简称 MPP)是适用于瑞芯微芯片系列的 通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理,其目的是为了屏蔽不 同芯片的差异,为使用者…...
源码解析flink文件连接源TextInputFormat
背景: kafka的文件系统数据源可以支持精准一次的一致性,本文就从源码看下如何TextInputFormat如何支持状态的精准一致性 TextInputFormat源码解析 首先flink会把输入的文件进行切分,分成多个数据块的形式,每个数据源算子任务会被分配以读取…...
SQL ORDER BY Keyword(按关键字排序)
SQL ORDER BY 关键字 ORDER BY 关键字用于按升序或降序对结果集进行排序。 ORDER BY 关键字默认情况下按升序排序记录。 如果需要按降序对记录进行排序,可以使用DESC关键字。 SQL ORDER BY 语法 SELECT column1, column2, ... FROM table_name ORDER BY column1, …...
光伏三相并网逆变器的控制策略与性能分析(Simulink仿真实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【网络安全 --- xss-labs靶场】xss-labs靶场安装详细教程,让你巩固对xss漏洞的理解及绕过技巧和方法(提供资源)
一,资源下载准备 1-1 VMware 16.0 安装请参考以下博客,若已经安装请忽略: 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程(…...
蓝桥每日一题(day 3: 蓝桥587.约数个数)--数学--easy
题目 解题核心: 分解质因数,每个质因数的次方1的累乘积就是anscode #include <iostream> #include<algorithm> #include<unordered_map> //# #include<> typedef long long LL; const int N 110, MOD 1e9 7;using namespac…...
深入剖析Java类加载过程:探寻类加载器的奥秘
摘要: 一个java文件从被加载到被卸载这个生命过程,总共要经历4个阶段: 加载->链接(验证准备解析)->初始化(使用前的准备)->使用->卸载 其中类加载过程包括加载、验证、准备、解析和初始化五个阶…...
PHP yield
概念: Generator:带 yield的function yield:Generator或task的中断关键字,执行到yield时一次调度周期执行完即阻塞,并返回右侧表达式结果,等待下一次调度器运行next()或迭代遍历才会继续往下执行࿰…...
react antd实现upload上传文件前form校验,同时请求带data
最近的需求,两个下拉框是必填项,点击上传按钮,如果有下拉框没选要有提示,如图 如果直接使用antd的Upload组件,一点击文件选择的窗口就打开了,哪怕在Button里再加点击事件,也只是(几乎…...
echars 设置滚动条演示,
dataZoom: [// 滑动条{zoomLock:true,xAxisIndex: 0, // 这里是从X轴的0刻度开始type: "slider", // 这个 dataZoom 组件是 slider 型 dataZoom 组件startValue: 0, // 从头开始。endValue: 20, // 一次性展示几个。// fillerColor: "#023661", // 选中范围…...
代码随想录算法训练营第五十八天|583.两个字符串的删除操作 、72. 编辑距离
代码随想录算法训练营第五十八天|583.两个字符串的删除操作 、72. 编辑距离 文章目录 代码随想录算法训练营第五十八天|583.两个字符串的删除操作 、72. 编辑距离[toc]583.两个字符串的删除操作求公共部分长度:即最长公共子串 72. 编辑距离 583.两个字符串的删除操作…...
1024网络技术命令汇总(第54课)
1024网络技术命令汇总(第54课) 1 查询命令 display ? display current-configuration //查看全部的配置信息 display interface brief //查看接口的信 display ip interface brief //查看IP地址的接口信息状态 display arp all …...
智慧河湖方案:AI赋能水利水务,构建河湖智能可视化监管大数据平台
一、方案背景 我国江河湖泊众多,水系发达。伴随着经济社会快速发展,水生态水环境问题成为群众最关注的民生议题之一。一些河流开发利用已接近甚至超出水环境承载能力,一些地区废污水排放量居高不下,一些地方侵占河道、围垦湖泊等…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
