STK中的光照计算模型

2024-05-16 01:28
文章标签 计算 模型 光照 stk

本文主要是介绍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

这篇关于STK中的光照计算模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot