🛰️航天仿真算法库 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
61 BlockDrag(const BlockDrag&) = delete;
62 BlockDrag& operator=(const BlockDrag&) = delete;
63
64 BlockDrag(Atmosphere* atmosphere, double dragCoefficient, double dragArea, Frame* propagationFrame);
65
66 ~BlockDrag() override;
67
68 errc_t run(const SimTime& simTime) override;
69
70protected:
71 Vector3d* position_{&vectorBuffer_};
72 Vector3d* velocity_{&vectorBuffer_};
73 Vector3d* accDrag_{&vectorBuffer_};
74 Vector3d* velocityDerivative_{&vectorBuffer_};
75 double* mass_{&doubleBuffer_};
76 double doubleBuffer_{};
77 Vector3d vectorBuffer_{};
78protected:
79 Atmosphere* atmosphere_{};
80 double dragCoefficient_{};
81 double dragArea_{};
82 Frame* propagationFrame_{};
83};
84
85
86AST_NAMESPACE_END
大气模型基类
定义 Atmosphere.hpp:48
导数函数块
定义 BlockDerivative.hpp:46
大气阻力函数块
定义 BlockDrag.hpp:57
坐标系抽象基类
定义 Frame.hpp:62
virtual errc_t run(const SimTime &simTime)=0
计算函数块
仿真时间
定义 SimTime.hpp:30