🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
BlockSRP.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/BlockDerivative.hpp"
25#include "AstMath/Vector.hpp"
26#include "AstCore/ForceModel.hpp" // for ESunPosition
27#include "AstCore/EclipseCalculator.hpp"
28
29AST_NAMESPACE_BEGIN
30
31class CelestialBody;
32class Frame;
33class SimTime;
34
49class AST_CORE_API BlockSRP : public BlockDerivative
50{
51public:
52 BlockSRP();
58 BlockSRP(EclipseCalculator* eclipseCalculator, double cr, double srpArea, Frame* propagationFrame);
59
60 ~BlockSRP() override;
61
62 errc_t run(const SimTime& simTime) final;
63public:
64 void setSunPosition(ESunPosition sunPosition){sunPosition_ = sunPosition;}
65protected:
66 Vector3d* position_{&vectorBuffer_};
67 Vector3d* velocity_{&vectorBuffer_};
68 Vector3d* accSRP_{&vectorBuffer_};
69 Vector3d* velocityDerivative_{&vectorBuffer_};
70 double* mass_{&doubleBuffer_};
71 double doubleBuffer_{};
72 Vector3d vectorBuffer_{};
73
74private:
75 EclipseCalculator* eclipseCalculator_{};
76 double cr_{1.0};
77 double srpArea_{20.0};
78 Frame* propagationFrame_{};
79 ESunPosition sunPosition_{ESunPosition::eTrue};
80};
81
82AST_NAMESPACE_END
导数函数块
定义 BlockDerivative.hpp:46
太阳辐射压力函数块
定义 BlockSRP.hpp:50
阴影光照计算器
定义 EclipseCalculator.hpp:37
坐标系类
定义 Frame.hpp:60
virtual errc_t run(const SimTime &simTime)=0
计算函数块
仿真时间
定义 SimTime.hpp:30
ESunPosition
太阳位置
定义 SunPosition.hpp:35