🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
HPOP.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/Constants.h"
25#include "AstUtil/ScopedPtr.hpp"
26#include "AstUtil/Object.hpp"
27#include "AstUtil/ObjectNamed.hpp"
28#include "AstCore/CelestialBody.hpp"
29#include "AstCore/StateMapper.hpp"
30#include "AstCore/OrbitElement.hpp"
31#include <string>
32#include <vector>
33
34
35AST_NAMESPACE_BEGIN
36
42class HPOPEquation;
43class ODEIntegrator;
44class HPOPForceModel;
45class HPOPStateMapper;
46
48class AST_CORE_API HPOP: public ObjectNamed
49{
50public:
51 AST_OBJECT(HPOP)
52
53 HPOP();
54 ~HPOP();
55public:
57 errc_t setForceModel(HPOPForceModel&& forcemodel);
58 errc_t setForceModel(const HPOPForceModel& forcemodel);
59
61 HPOPForceModel& forceModel();
62
63 void setSpacecraftParam(const SpacecraftParam& spacecraftParam);
64
66 const SpacecraftParam& spacecraftParam() const;
67
69 Frame* propagationFrame() const;
70
72 errc_t setPropagationFrame(Frame* frame);
73
75 void setIntegrator(ODEIntegrator* integrator);
76
78 ODEIntegrator* getIntegrator() const;
79
87 errc_t propagate(const TimePoint& startTime, TimePoint& targetTime, Vector3d& position, Vector3d& velocity);
88 errc_t propagate(const TimePoint& startTime, TimePoint& targetTime, CartState& state){return propagate(startTime, targetTime, state.position(), state.velocity());}
89
90
98 errc_t propagate(const TimePoint& startTime, TimePoint& targetTime, CartState& state, Matrix6d& stm);
99
112 errc_t propagate(const TimePoint& startTime, TimePoint& targetTime,
113 CartState& state, Matrix6d& stm,
114 Vector6d& stateSensWrtDrag, Vector6d& stateSensWrtSRP);
115
117 errc_t initialize();
118
120 StateMapper* stateMapper() const;
121
124 void addEventDetector(EventDetector* eventDetector);
125
127 void clearEventDetectors();
128
130 HPOPEquation* equation() const;
131private:
137 errc_t integrateState(const TimePoint& startTime, TimePoint& targetTime, double* y);
138
139 mutable ScopedPtr<HPOPEquation> equation_;
140 mutable SharedPtr<ODEIntegrator> integrator_;
141 ScopedPtr<HPOPStateMapper> stateMapper_;
142};
143
144
147AST_NAMESPACE_END
直角坐标
定义 OrbitElement.hpp:46
事件检测基类 事件检测基类,用于检测事件是否发生。 参考orekit的EventDetector类
定义 EventDetector.hpp:39
坐标系抽象基类
定义 Frame.hpp:62
高精度轨道预报方程
定义 HPOPEquation.hpp:47
高精度轨道预报力模型
定义 HPOPForceModel.hpp:49
高精度轨道预报器
定义 HPOP.hpp:49
ODE 积分器
定义 ODEIntegrator.hpp:87
命名对象
定义 ObjectNamed.hpp:36
作用域指针类
定义 ScopedPtr.hpp:65
共享指针
定义 SharedPtr.hpp:33
航天器参数
定义 SpacecraftParam.hpp:34
状态映射器
定义 StateMapper.hpp:39
绝对时间点
定义 TimePoint.hpp:108