STK中的光照计算模型

本文简要阐述STK中光照计算的模型。

在航天任务中,通常需要分析地面站、飞行器在一定时间内的光照情况,具体包括:

  1. 地面站处在光照区和阴影区的具体时间范围;
  2. 考虑地形遮挡后,地面站的光照区和阴影区的变化情况;
  3. 飞行器绕地飞行过程中,处于光照区和阴影区的具体时间范围;
  4. 地面站当地水平系下,太阳方位角、高度角的变化;
  5. 飞行器轨道器或本体系下,太阳方位角、高度角的变化。

光照计算时,主要考虑的是地球对太阳的遮挡(其它天体也是类似的),见下图所示地面站和飞行器的光照示意图。

对于地面站(左图),考虑地球遮挡,当太阳在当地水平面之上时(对应的太阳的高度角大于0),即地面站为光照状态;反之则为阴影状态。

对于空间飞行器(上面右图),如卫星,当飞行器与太阳连线不被地球遮挡时,则飞行器为光照状态;反之则为阴影状态。

实际计算时,地球形状考虑为椭球体。

下面根据以上所涉及到的光照场景,详细讨论。

地面站和飞行器的光照示意图

坐标系及太阳方位角、高度角

涉及到太阳位置计算时,通常涉及到太阳的方位角和高度角概念,因此首先确定好常用的坐标系和太阳方位角和高度角的定义。

地面站地平坐标系

地面站观测太阳时,采用当地水平坐标系(也称北东地坐标系),简称LH坐标系(Local Horizontal),其定义如下:

  1. X轴指向当地北方向;
  2. Y轴指向当地东方向;
  3. Z轴指向当地天底方向。

XY平面为当地水平面,垂直于地球椭球体法线,见下图。
地面站当地水平坐标系定义
下图给出了地面站LH系下的太阳方位角和高度角。
地面站地平坐标系下的太阳方位角和高度角

飞行器VVLH系

飞行器观测太阳时,通常采用轨道坐标系,简称VVLH坐标系(Vehicle Velocity, Local Horizontal),其定义如下:

  1. X轴约束在惯性系速度方向(由Y叉乘Z得到);
  2. Y轴指向轨道面负法向;
  3. Z轴指向地心方向。

下图为飞行器的VVLH坐标系以及太阳方向矢量的高度角和方位角示意图。

飞行器VVLH系下的太阳方位角和高度角

太阳方位角和高度角

在地面站地平坐标系或者飞行器VVLH坐标系中,太阳方位角(Azimuth,简称Az)和高度角(Elevation,简称El)的定义如下图。
LH和VVLH坐标系下的太阳方位角和高度角定义

  1. 方位角定义为:X轴与太阳方向矢量在XY平面内的投影矢量的夹角,+X轴为零点,向+Y轴方向为正;
  2. 高度角定义为:太阳方向矢量与XY平面的夹角,-Z轴方向为正。

注意,对于飞行器本体坐标系(Body),则高度角以+Z轴方向为正。

根据以上定义,实际计算时,首先求得某时刻太阳(通常为视太阳)在地面站LH系或飞行器VVLH系的位置,设为 R s \textbf{R}_s Rs
R s = [ X s , Y s , Z s ] T \textbf{R}_s=\left[X_s,Y_s,Z_s\right]^T Rs=[Xs,Ys,Zs]T

则太阳方位角Az和高度角El计算如下:
{ A z = t a n 2 − 1 ( Y s , X s ) E l = s i n − 1 ( − Z s / R s ) \left\{ \begin{aligned} Az=tan2^{-1}(Y_s,X_s) \\ El=sin^{-1}(-Z_s/R_s) \end{aligned} \right. {Az=tan21(Ys,Xs)El=sin1(Zs/Rs)

光照计算模型

无论是地面站还是飞行器,在精确计算光照和阴影的时间时,必须考虑到以下因素:

  1. 太阳圆盘的大小,以及被遮挡的部分大小;
  2. 对于地面站,当地水平面附近地形遮挡的影响;
  3. 对于空间飞行器,考虑地球的遮挡。

同时,太阳的光照状态分为以下三种情形:

  1. 光照:太阳圆盘完全不被遮挡,地面站或飞行器处于完全光照状态,太阳光照强度因子为1;
  2. 半影:太阳圆盘部分被遮挡,地面站或飞行器处于半影状态,太阳光照强度因为0-1之间的小数;
  3. 全影:太阳圆盘完全被遮挡,地面站或飞行器处于完全阴影状态,太阳光照强度因子为0。

首先给出地面站的光照计算模型,见下图。

某时刻,以观测点为中心,视太阳方向的地形最大仰角为 α t \alpha_t αt,视太阳中心(即太阳位置)方向与地形最大仰角方向的夹角为 α g \alpha_g αg,太阳圆盘视半径为 α s \alpha_s αs

不考虑地形时( α t = 0 \alpha_t=0 αt=0), α g \alpha_g αg即为视太阳方向与当地水平面的夹角,即太阳仰角El。

太阳圆盘视半径 α s \alpha_s αs由下式给出:
α s = s i n − 1 R o R s \alpha_s=sin^{-1}{\frac{R_o}{R_s}} αs=sin1RsRo
上式中, R o R_o Ro为太阳圆盘半径,取值为695700km,对应的视半径约为0.27°,具体数值与太阳的距离变化而稍有不同。
地面目标的光照计算模型
下图为飞行器的光照计算模型示意图。与地面站不同的是,不需要考虑地形的遮挡,转而考虑地球的遮挡。

某时刻,以观测点为中心,地心方向与地球边缘方向的夹角(称为地球视半径)为 α t \alpha_t αt,视太阳中心(即太阳位置)方向与地球边缘方向的夹角为 α g \alpha_g αg,太阳圆盘视半径为 α s \alpha_s αs。观测点到地球的距离向量为 R E \textbf{R}_E RE
飞行器目标的光照计算模型
地球视半径 α t \alpha_t αt可由下式给出:
α t = s i n − 1 R e R E \alpha_t=sin^{-1}{\frac{R_e}{R_E}} αt=sin1RERe
上式中, R e R_e Re为地球赤道半径,常取6378.14km。

根据上述两种光照模型,太阳光照状态的判别依据如下:
{ 光照 : α g > α s 阴影 : α g < − α s 半影 : − α s ≤ α g ≤ α s \left\{ \begin{aligned} 光照: & \alpha_g>\alpha_s \\ 阴影: & \alpha_g<-\alpha_s \\ 半影: & -\alpha_s \leq \alpha_g\leq\alpha_s \end{aligned} \right. 光照:阴影:半影:αg>αsαg<αsαsαgαs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/13004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

985大学电子信息专硕,考C语言+数据结构!中央民族大学25计算机考研考情分析!

中央民族大学&#xff08;Minzu University of China&#xff09;坐落于北京市学府林立的海淀区&#xff0c;南邻国家图书馆&#xff0c;北依中关村科技园&#xff0c;校园环境典雅&#xff0c;古朴幽美&#xff0c;人文氛围浓郁&#xff0c;具有鲜明的民族特色。由北京市、国家…

Java byte数据类型

在Java中&#xff0c;byte是一种基本的数据类型&#xff0c;用于表示整数值。它是8位带符号的二进制补码&#xff0c;范围从-128到127&#xff08;包括&#xff09;。 以下是一些关于byte数据类型的重要信息&#xff1a; 大小和范围&#xff1a;byte数据类型占用8位&#xff0…

Oracle 日志文件头中的SCN

日志文件头中的SCN主要分以下3类&#xff1a; 1、FIRST_CHANGE 2、NEXT_CHANGE 3、RESETLOGS_CHANGE# FIRST_CHANGE# FIRST_CHANGE#表示该在线日志文件被重用时的SCN。可以从VKaTeX parse error: Expected EOF, got # at position 25: …RY.FIRST_CHANGE#̲列查询&#xff0c;…

Cesium学习_-着色器

着色器GLSL CesiumJS PrimitiveAPI 高级着色入门 - 从参数化几何与 Fabric 材质到着色器 - 下篇 - 知乎 明确一个定义&#xff0c;在 Primitive API 中应用着色器&#xff0c;实际上是给 Appearance 的 vertex- ShaderSource、fragmentShaderSource 或 Material 中的 fabric.…

Java 异步编程——为什么要使用多线程,以及在什么情况下使用多线程?

前言 单线程就是一个工人在搬砖&#xff0c;多线程就是多个工人在搬砖&#xff1b;在相同数量的砖要搬的情况下&#xff0c;多个工人搬砖肯定比一个人搬的快。 那多个工人做事一定比一个工人做事快吗&#xff1f;那不一定&#xff0c;不过大多数情况下是的。多线程只是可以同…

Java并发编程——线程安全

在Java并发编程中&#xff0c;线程安全是一个非常重要的概念。当多个线程同时访问共享数据时&#xff0c;如果没有采取适当的同步措施&#xff0c;就可能会导致数据不一致或其他不可预期的行为&#xff0c;这就是线程不安全的情况。 为了保证线程安全&#xff0c;Java提供了一…

Google Ads谷歌广告账户被封停怎么办?

跨境出海业务少不了需要做Google Ads推广业务&#xff1b;其中让投手们闻风丧胆的消息就是帐户被暂停。当 Google 检测到任何违反其政策且可能损害用户在线体验的行为时&#xff0c;就会发生这种情况。那么如何在做广告推广的同时&#xff0c;保证账号不被封禁呢&#xff1f;看…

【微服务最全详解】

文章目录 微服务微服务的介绍微服务服务架构演变 微服务网关微服务的负载均衡微服务的容灾机制服务崩溃服务容灾机制微服务熔断机制微服务限流Sentinel怎么实现限流微服务限流算法1.令牌桶算法2.漏斗桶算法 服务监控日志收集 微服务 微服务的介绍 微服务是一种软件架构风格&a…

大模型日报2024-05-15

大模型日报 2024-05-15 大模型资讯 OpenAI推出全新AI模型GPT-4o&#xff0c;具备文本、图像和音频处理能力 摘要: OpenAI公司继ChatGPT后&#xff0c;最新推出了名为GPT-4o的AI模型。这一模型不仅能够理解和生成文本&#xff0c;还新增了图像和音频的解释及生成功能。GPT-4o作为…

中国开源 AI 大模型之光-InternLM2

今天给大家带来 AI 大模型领域的国产之光 - InternLM2&#xff0c;在10B量级开源大模型领域取得了全球 Top 3 的成绩&#xff0c;仅次于 Meta 发布的 Llama-3&#xff0c;在国内则是第一名的存在&#xff01; 简介 InternLM2是由上海人工智能实验室和商汤科技联合研发的一款大型…

最大子序列的分数

题目链接 最大子序列的分数 题目描述 注意点 n nums1.length nums2.length从nums1和nums2中选一个长度为k的子序列对应的下标对nums1中下标对应元素求和&#xff0c;乘以nums2中下标对应元素的最小值得到子序列的分数0 < nums1[i], nums2[j] < 1000001 < k < …

Leecode热题100---560:和为k的子数组个数

题目&#xff1a; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 C&#xff1a; #include<iostream> #include<vector> using namespace std; class Solution { public:…

AI作画算法详解:原理、应用与未来发展

随着人工智能技术的不断发展&#xff0c;AI作画逐渐成为了一个热门话题。AI作画&#xff0c;即利用人工智能算法生成绘画作品&#xff0c;不仅仅是技术的展示&#xff0c;更是艺术与科技结合的创新体现。本文将深入探讨AI作画的核心算法原理&#xff0c;并通过实例帮助读者更好…

多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合

● 环境框架&#xff1a;python 3.9 pytorch 1.8 及其以上版本均可运行 ● 使用对象&#xff1a;论文需求、毕业设计需求者 ● 代码保证&#xff1a;代码注释详细、即拿即可跑通。 往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分…

数据结构篇3—《龙门客“栈”》

文章目录 &#x1f6a9;前言1、栈的概念2、栈的实现框架3、栈的代码实现3.1、栈的初始化和销毁3.2、入栈\出栈\返回栈顶元素\元素个数\判空3.3、栈定义注意事项 4、栈的应用实例——《括号匹配问题》 &#x1f6a9;前言 前面记录了关于顺序表和链表的数据结构&#xff0c;这一篇…

【CF1965A】Everything Nim

题目链接 前置trick&#xff1a; 使用vector去重&#xff1a; vector<int> a(n);for(int i0;i<n;i) cin>>a[i];sort(a.begin(),a.end());a.erase(unique(a.begin(),a.end()),a.end());na.size();题意&#xff1a; 有 n n n堆石子&#xff0c;第 i i i堆有 a i a…

【企业宣传片】拍摄思维提升,专业影视质感核心揭密,一课搞定

课程下载&#xff1a;【企业宣传片】拍摄-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载&#xff1a;关注我。 课程介绍 大量案例分析宣传片拍摄的痛点要点 根据案例告诉你解决方案&#xff0c;讲透概念 改变你对企业宣传片的思维层级与认知 归纳总结对比不同案…

C++语法|类直接包含与自身类型相同的成员变量?

在C中&#xff0c;一个类不能直接包含与自身类型相同的成员变量。这是因为类的大小需要在编译时确定&#xff0c;而一个包含自身类型的成员变量会导致递归定义&#xff0c;从而无法确定类的大小。 文章目录 示例代码&#xff08;非法定义&#xff09;解决办法1.使用指针2.使用智…

k8s 二进制安装 优化架构之 部署负载均衡,加入master02

目录 一 实验环境 二 部署 CoreDNS 1&#xff0c;所有node加载coredns.tar 镜像 2&#xff0c;在 master01 节点部署 CoreDNS 3&#xff0c; DNS 解析测试 4&#xff0c; 报错分析 5&#xff0c;重新 DNS 解析测试 三 master02 节点部署 1&#xff0…

AI学习指南数学工具篇-PCA的应用场景

AI学习指南数学工具篇-PCA的应用场景 在人工智能领域&#xff0c;数据处理是非常重要的一环。对于大量高维数据&#xff0c;我们往往需要进行数据降维来减少计算复杂度&#xff0c;同时利用可视化工具对数据进行分析和理解。主成分分析&#xff08;Principal Component Analys…