🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
BlockThirdBodyGravity.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/BlockAstro.hpp"
25#include "AstCore/BlockDerivative.hpp"
26#include "AstCore/GravityCalculator.hpp"
27#include "AstCore/Axes.hpp"
28#include "AstMath/Vector.hpp"
29
30AST_NAMESPACE_BEGIN
31
66class AST_CORE_API BlockThirdBodyGravity : public BlockDerivative
67{
68public:
70
72 BlockThirdBodyGravity& operator=(const BlockThirdBodyGravity&) = delete;
73
74 explicit BlockThirdBodyGravity(Point* thirdBody, GravityField&& gravityField,
75 int degree, int order, Axes* gravityAxes,
76 Frame* propagationFrame);
77
78 errc_t run(const SimTime& simTime) override;
79
81 void setConsiderVariations(bool considerVariations) { considerVariations_ = considerVariations; }
82protected:
88 errc_t prepare(const SimTime& simTime, Vector3d& thirdBodyPos, Rotation& rotation);
89 Vector3d* posCBI{&vectorBuffer};
90 Vector3d* accThirdBody{&vectorBuffer};
91 Vector3d* velocityDerivative_{&vectorBuffer};
92 Vector3d vectorBuffer{};
93private:
94 void init();
95protected:
96 Point* thirdBody_{};
99 Frame* propagationFrame_{};
101 bool considerVariations_{false};
102};
103
104AST_NAMESPACE_END
轴系抽象基类
定义 Axes.hpp:72
导数函数块
定义 BlockDerivative.hpp:46
三体重力场函数块
定义 BlockThirdBodyGravity.hpp:67
HAxes gravityAxes_
三体重力场固连系
定义 BlockThirdBodyGravity.hpp:97
void setConsiderVariations(bool considerVariations)
设置是否考虑重力场系数长期变化
定义 BlockThirdBodyGravity.hpp:81
GravityCalculatorDefault gravityCalculator_
重力计算器
定义 BlockThirdBodyGravity.hpp:100
HAxes propagationAxes_
预报系轴系
定义 BlockThirdBodyGravity.hpp:98
坐标系抽象基类
定义 Frame.hpp:62
virtual errc_t run(const SimTime &simTime)=0
计算函数块
重力加速度计算类3
定义 GravityCalculator.hpp:211
重力场系数
定义 GravityField.hpp:88
点抽象基类
定义 Point.hpp:41
坐标系旋转类
定义 Rotation.hpp:39
仿真时间
定义 SimTime.hpp:30