🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::BlockSRP类 参考

#include <BlockSRP.hpp>

+ 类 ast::BlockSRP 继承关系图:

Public 成员函数

 BlockSRP (EclipseCalculator *eclipseCalculator, double cr, double srpArea, Frame *propagationFrame)
 
errc_t run (const SimTime &simTime) final
 
void setSunPosition (ESunPosition sunPosition)
 
- Public 成员函数 继承自 ast::BlockDerivative
 ~BlockDerivative () override=default
 
const std::vector< DataPort > & getDerivativePorts () const
 
std::vector< DataPort > & getDerivativePorts ()
 
- Public 成员函数 继承自 ast::FuncBlock
const std::vector< DataPort > & getInputPorts () const
 
std::vector< DataPort > & getInputPorts ()
 
const std::vector< DataPort > & getOutputPorts () const
 
std::vector< DataPort > & getOutputPorts ()
 
size_t getNumInputPorts () const
 
size_t getNumOutputPorts () const
 
DataPortgetInputPort (StringView portName)
 
DataPortgetOutputPort (StringView portName)
 
DataPortgetInputPort (size_t portIndex)
 
DataPortgetOutputPort (size_t portIndex)
 
DataPort::EValueType getInputPortDataType (size_t portIndex)
 
DataPort::EValueType getOutputPortDataType (size_t portIndex)
 
void * getInputPortSignal (size_t portIndex)
 
void * getOutputPortSignal (size_t portIndex)
 
double * getInputPortRealSignal (size_t portIndex)
 
double * getOutputPortRealSignal (size_t portIndex)
 
int getInputPortWidth (size_t portIndex)
 
int getOutputPortWidth (size_t portIndex)
 

Protected 属性

Vector3d * position_ {&vectorBuffer_}
 
Vector3d * velocity_ {&vectorBuffer_}
 
Vector3d * accSRP_ {&vectorBuffer_}
 
Vector3d * velocityDerivative_ {&vectorBuffer_}
 
double * mass_ {&doubleBuffer_}
 
double doubleBuffer_ {}
 
Vector3d vectorBuffer_ {}
 
- Protected 属性 继承自 ast::BlockDerivative
std::vector< DataPortderivativePorts_
 
- Protected 属性 继承自 ast::FuncBlock
std::vector< DataPortinputPorts_
 
std::vector< DataPortoutputPorts_
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 ast::FuncBlock
static errc_t connect (FuncBlock *src, StringView srcPortName, FuncBlock *dst, StringView dstPortName)
 
static errc_t connect (FuncBlock *src, size_t srcPortIndex, FuncBlock *dst, size_t dstPortIndex)
 

详细描述

太阳辐射压力函数块

计算太阳辐射压力加速度,添加到速度导数上。 计算公式: a_srp = Cr * (A/m) * P_1AU * (AU/r)^2 * u_sun2sc 其中: Cr = 光压系数(辐射压力系数) A = SRP面积(航天器截面积) m = 航天器质量 P_1AU = 1AU处的太阳辐射压力(~4.56e-6 N/m^2) AU = 天文单位 r = 太阳到航天器的距离 u_sun2sc = 太阳指向航天器的单位方向向量

构造及析构函数说明

◆ BlockSRP()

ast::BlockSRP::BlockSRP ( EclipseCalculator * eclipseCalculator,
double cr,
double srpArea,
Frame * propagationFrame )
参数
sun太阳
cr光压系数
srpAreaSRP面积
propagationFrame预报坐标系
注解
构造函数这里只保留必需的参数,其他额外的配置参数通过set方法设置

成员函数说明

◆ run()

errc_t ast::BlockSRP::run ( const SimTime & simTime)
finalvirtual

计算函数块

参数
simTime仿真时间
返回
错误码
待办事项
目前总是使用真太阳位置进行计算,是否需要考虑使用视太阳位置进行计算?

实现了 ast::FuncBlock.


该类的文档由以下文件生成: