🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
BlockDrag.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/BlockDerivative.hpp"
25#include "AstCore/Atmosphere.hpp"
26#include "AstMath/Vector.hpp"
27
28AST_NAMESPACE_BEGIN
29
56class AST_CORE_API BlockDrag: public BlockDerivative
57{
58public:
59 BlockDrag();
60 BlockDrag(Atmosphere* atmosphere, double dragCoefficient, double dragArea, Frame* propagationFrame);
61
62 ~BlockDrag() override;
63
64 errc_t run(const SimTime& simTime) final;
65
66private:
67 Vector3d* position_{&vectorBuffer_};
68 Vector3d* velocity_{&vectorBuffer_};
69 Vector3d* accDrag_{&vectorBuffer_};
70 Vector3d* velocityDerivative_{&vectorBuffer_};
71 double* mass_{&doubleBuffer_};
72 double doubleBuffer_{};
73 Vector3d vectorBuffer_{};
74private:
75 Atmosphere* atmosphere_{};
76 double dragCoefficient_{};
77 double dragArea_{};
78 Frame* propagationFrame_{};
79};
80
81
82AST_NAMESPACE_END
大气模型基类
定义 Atmosphere.hpp:48
导数函数块
定义 BlockDerivative.hpp:46
大气阻力函数块
定义 BlockDrag.hpp:57
坐标系类
定义 Frame.hpp:60
virtual errc_t run(const SimTime &simTime)=0
计算函数块
仿真时间
定义 SimTime.hpp:30