当前位置: 首页 > news >正文

使用卫星仿真软件STK的一些应用和思考(星地链路、星间链路)

目录

  • 任务描述
    • 利用STK建模星地协同系统
      • 3个GEO高轨卫星
      • 240/20/1 Walker-Star Constellation 低轨卫星星座
      • 地面站或者地面设备
    • 链路建模与数据提取处理
      • 星地链路
      • 星间链路数据读取的几种方法
        • 最麻烦的方法
        • 使用Matlab与STK互联接口使用
        • 大规模使用Chain
  • 总结

任务描述

在一个星地协同的空天地网络中,科研中可能需要建模星地链路以及星间链路,主要受到距离、仰角等参数的影响。

利用STK建模星地协同系统

此处略过Scenario的创建什么的

3个GEO高轨卫星

插入地球同步轨道卫星
高轨卫星

240/20/1 Walker-Star Constellation 低轨卫星星座

先插入种子卫星,再根据种子卫星利用Walker Tool生成想要的星座,注意要选择create constellation选项以创建星座对象,后面可能会用到。
种子卫星

Walker Tool

地面站或者地面设备

按坐标或者facility插入地面实体即可

链路建模与数据提取处理

星地链路

地面设备将本地信息上传至距离最近的卫星:需得出的结果是地面设备上传本地信息给了哪一颗卫星。
方法是将刚刚创建的星座对象与某一地面设备对象建立chain:注意先后顺序是地面IoT设备在前为发射端,且IoT设备需要加入Transmitter对象。
值得注意的是,STK中可以详细设置Transmitter和Antennna的参数,以获取通信链路的相关参数,这部分暂时省略。

星地Chain
通过Chain->Compute Accesses得到如下可视化结果:

星地chain可视化
再通过Report & Graph Manager获取所需的数据,可定制想要的数据然后导出为csv/txt文件(如距离、链路时间等)。
星地链路信息

星间链路数据读取的几种方法

最麻烦的方法

在每颗卫星对象上插入transmitter/receiver,利用compute access计算所有连接的相关数据,将数据保存后进行后处理用于所需要的场景,这种方法复杂度简直太高了,果断抛弃。

使用Matlab与STK互联接口使用

STK11.6仅仅兼容Matlab2018b以下的版本,但实测2022b、2024a版本都能运行,以下是一个简单demo。

% 创建与STK的连接
clear,clc;
stkApp = actxserver('STK11.Application');% 打开STK场景
stkRoot = stkApp.Personality2;
stkRoot.LoadScenario('D:\STK\Walker-Delta\Walker-Delta.sc');
sc = stkRoot.CurrentScenario;% 获取场景内所有卫星
allChildren = sc.Children;
allSatellites = allChildren.GetElements('eSatellite');
satNum = allSatellites.Count;
% 初始化空数组来存储GEO和LEO卫星
% geoSatellites = {};
% leoSatellites = {};GEO1 = allSatellites.Item('GEO1');
GEO2 = allSatellites.Item('GEO2');
GEO3 = allSatellites.Item('GEO3');% for i = 3:1:satNum-1
%     eval(['LEOS', num2str(i), ' = allSatellites.Item(cast(i, ''int32''));'])
% end
count = 1;
for i = 3:1:satNum-1if mod(i-2, 20) == 1 && i ~= 1count = count + 1;endindex = mod(i-3, 20) + 1;eval(['LEOS', num2str((count-1) * 100 + index), '= allSatellites.Item(cast(i, ''int32''));'])
%     satellites.(key) = ;
end% 使用 Data Provider 接口获取位置数据
dp101 = LEOS101.DataProviders.Item('Cartesian Position').Group.Item('ICRF').Exec(sc.StartTime, sc.StopTime, 10);
pos101 = dp101.DataSets.ToArray();dp102 = LEOS102.DataProviders.Item('Cartesian Position').Group.Item('ICRF').Exec(sc.StartTime, sc.StopTime, 10);
pos102 = dp102.DataSets.ToArray();% 提取位置坐标
for i = 1:1:length(pos101)x1(i,1) = pos101{i,2};y1(i,1) = pos101{i,3}; z1(i,1) = pos101{i,4};x2(i,1) = pos102{i,2}; y2(i,1) = pos102{i,3}; z2(i,1) = pos102{i,4};
end% 计算距离
distance = sqrt((x2 - x1).^2 + (y2 - y1).^2 + (z2 - z1).^2);% fprintf('The distance between LEOS101 and LEOS102 is %.2f km\n', distance / 1000); % 将距离转换为公里% 断开与STK的连接
stkApp.Quit;
delete(stkApp);

这里读取了一个80/4/1星座命名为LEOS101-LEOS120, LEOS201-LEOS220, LEOS301-LEOS320, LEOS401-LEOS420同轨道相邻的两颗卫星在场景开始和结束时间之内,每隔10s的距离数据,如下所示:
matlab

大规模使用Chain

首先添加Constellation对象,将1个轨道的卫星放进去,即将每个轨道建成一个Constellation对象。
轨道chain
第二步,建立Chain,包含的对象是Orbit的Constellation对象和整个星座的Constellation对象Walker-Star。
Orbit-Cons
通过Report & Graph Manager定制所需的数据即可。此时获取了每颗卫星的所有链路信息,但实际上最多4-5条星间链路是能够建立的,我在python中对保存数据进行读取时进行了一些筛选。

总结

本贴只是给出了一些获取数据的方法,但是后处理的代码暂时还未给出,下次再更新吧。

相关文章:

使用卫星仿真软件STK的一些应用和思考(星地链路、星间链路)

目录 任务描述利用STK建模星地协同系统3个GEO高轨卫星240/20/1 Walker-Star Constellation 低轨卫星星座地面站或者地面设备 链路建模与数据提取处理星地链路星间链路数据读取的几种方法最麻烦的方法使用Matlab与STK互联接口使用大规模使用Chain 总结 任务描述 在一个星地协同…...

pytorch对不同的可调参数,分配不同的学习率

在 PyTorch 中,你可以通过为优化器传递不同的学习率来针对不同的可调参数分配不同的学习率。这通常通过向优化器传递一个字典列表来实现,其中每个字典指定特定参数组的学习率。下面是一个示例代码,展示了如何实现这一点: import …...

零基础学习Python(八)—— time模块、request模块、数据分析和自动化办公相关模块、jieba模块、文件操作和os相关模块的简单介绍

1. time模块 time():获取当前时间戳,是一个数字 localtime():返回一个time.struct_time对象,里面有年月日时分秒,还有星期几(0表示星期一)和今年的第几天 import timeprint(time.time()) pri…...

快速回顾-HTML5

HTML5-常用的标签&#xff1a;https://blog.csdn.net/TKOP_/article/details/111395865 <!-- HTML5:声明文档类型的标签 --> <!DOCTYPE html><!-- 用于声明网页的主要语言为简体中文 --> <!-- 帮助搜索引擎、浏览器等理解网页的语言内容&#xff0c;以便…...

视频技术未来展望:EasyCVR如何引领汇聚融合平台新趋势

随着科技的飞速发展&#xff0c;视频技术已成为现代社会不可或缺的一部分&#xff0c;广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。本文将探讨视频技术的未来发展趋势&#xff0c;并深入分析TSINGSEE青犀EasyCVR视频汇聚融合平台的技术优势&#xff0c;展现其…...

7个流行的开源数据治理工具

数字化时代&#xff0c;数据是已经成为最宝贵的资产之一。数据支撑着我们的政府、企业以及各类组织的所有流程&#xff0c;并为决策以及智能化服务提供支撑。大数据有大用途&#xff0c;但是也可能隐藏着巨大的风险&#xff0c;特别是如果我们对数据的情况不是很了解的时候&…...

js | XMLHttpRequest

是什么&#xff1f; 和serve交互数据的对象&#xff1b;能够达到页面部分刷新的效果&#xff0c;也就是获取数据之后&#xff0c;不会使得整个页面都刷新&#xff1b;虽然名字是XML&#xff0c;但不限于XML数据。 怎么用&#xff1f; function reqListener() {console.log(thi…...

2024国赛数学建模A题思路模型代码

2024国赛数学建模思路资料&#xff0c;思路获取见文末名片 数学建模感想 纪念逝去的大学数学建模&#xff1a;两次校赛&#xff0c;两次国赛&#xff0c;两次美赛&#xff0c;一次电工杯。从大一下学期组队到现在&#xff0c;大三下学期&#xff0c;时间飞逝&#xff0c;我的…...

使用SVD(奇异值分解)进行降维的奇妙之旅

在数据分析和机器学习的广阔天地中&#xff0c;降维技术占据着举足轻重的地位。当我们面对高维数据时&#xff0c;不仅计算成本高昂&#xff0c;而且容易遭遇“维度灾难”&#xff0c;即随着维度的增加&#xff0c;数据的稀疏性和距离度量失效等问题愈发严重。为了克服这些挑战…...

【C++ 第二十一章】特殊类的设计(学习思路)

1.请设计一个类&#xff0c;不能被拷贝 设计思路 拷贝只会使用在两个场景中&#xff1a;拷贝构造函数以及赋值运算符重载&#xff0c;因此想要让一个类禁止拷贝&#xff0c;只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 C98 的做法 将拷贝构造函数与赋值运算符…...

Java设计模式【命令模式】-行为型

1. 介绍 命令模式&#xff08;Command Pattern&#xff09; 是一种行为型设计模式&#xff0c;它将一个请求封装为一个对象&#xff0c;从而使我们可以用不同的请求对客户端进行参数化&#xff0c;并且支持请求的排队、记录日志以及撤销、重做等功能。命令模式将请求的发送者与…...

【HarmonyOS】一键扫码功能

【HarmonyOS】一键扫码功能 前言 鸿蒙在api10之后&#xff0c;对系统api的基础上&#xff0c;封装了较为复杂功能的开发工具包&#xff0c;统一称之为Kit。这些Kit根据功能定义的不同&#xff0c;划分为不同的种类Kit。如下图所示&#xff1a; 其实可以理解为集成在系统中的…...

Spring Boot应用中集成与使用多数据源

Spring Boot应用中集成与使用多数据源 1. 前言 通过定义和使用多个数据源&#xff0c;能在Spring Boot应用中实现更复杂的数据管理场景&#xff0c;比如读写分离、数据冗余等。 2. 准备工作 环境准备&#xff1a;确保已经准备好Spring Boot的开发环境。数据库准备&#xff…...

探索 JavaScript 中的 instanceof 关键字

在 JavaScript 这门灵活而强大的编程语言中&#xff0c;instanceof 是一个非常重要的操作符&#xff0c;它用于检测一个对象是否在其原型链的原型构造函数的 prototype 属性中出现。简而言之&#xff0c;instanceof 用于测试一个对象是否是其父类或者其原型链上某个构造函数的实…...

Python爬虫02

xml 和html 区别 jsonpath模块 场景 多层嵌套的复杂字典直接提取数据 安装 pip install jsonpath使用 from jsonpath import jsonpathret jsonpath(dict, jaonpath语法规则字符串)语法规则 eg: lxml模块&xpath语法 谷歌浏览器 xpath helper 插件 作用对当前页面…...

HTTP/3

http相关知识点 HTTP/3是超文本传输协议&#xff08;HTTP&#xff09;的最新版本&#xff0c;旨在进一步提高Web性能和安全性。HTTP/3的显著变化是它基于QUIC&#xff08;Quick UDP Internet Connections&#xff09;协议&#xff0c;而不是之前版本中使用的TCP协议。QUIC是由…...

MySQL 字符串操作详解和案例示范

MySQL 字符串操作详解 MySQL 提供了丰富的字符串操作函数&#xff0c;能够对这些字符串进行截取、定位、替换等操作。本文将详细讲解 MySQL 中的字符串操作函数&#xff0c;包括 SUBSTRING()、SUBSTR()、LEFT()、RIGHT()、LOCATE()、POSITION()、FIND_IN_SET()、ELT()、INSERT…...

全双工语音交互

文章目录 微软小冰全双工字节大模型语音交互[Language Model Can Listen While Speaking](https://arxiv.org/html/2408.02622v1) 微软小冰全双工 全双工的定义&#xff1a;一路持续的听&#xff0c;upload audio&#xff1b;一路持续的输出&#xff0c;download audio&#xf…...

nginx中如何设置gzip

前言 Nginx通过配置gzip压缩可以提升网站整体速度 Nginx的gzip功能是用于压缩HTTP响应内容的功能。当启用gzip时&#xff0c;在发送给客户端之前&#xff0c;Nginx会将响应内容压缩以减小其大小。这样可以减少数据传输的带宽消耗和响应时间&#xff0c;提高网站的性能和速度。…...

借老系统重构机会我写了个groovy规则引擎

公司老系统的重构计划早就有了&#xff0c;为了对Java硬编码的各种校验规则进行重构&#xff0c;特地参考了相关技术&#xff0c;最终选择了groovy进行了系统的学习&#xff0c;并编写了一个即插即用的轻量级规则引擎。 文章目录 项目背景技术选型groovy的性能groovy脚本执行线…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】&#xff0c;这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...

精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑

精益数据分析&#xff08;98/126&#xff09;&#xff1a;电商转化率优化与网站性能的底层逻辑 在电子商务领域&#xff0c;转化率与网站性能是决定商业成败的核心指标。今天&#xff0c;我们将深入解析不同类型电商平台的转化率基准&#xff0c;探讨页面加载速度对用户行为的…...