🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
HPOPEquation.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstMath/OrdinaryDifferentialEquation.hpp"
25#include "AstCore/BlockDynamicSystem.hpp"
26#include "AstCore/SimTime.hpp"
27#include "AstCore/HPOPForceModel.hpp"
28#include "AstCore/Frame.hpp"
29#include <memory>
30
31
32AST_NAMESPACE_BEGIN
33
34class FuncBlock;
35class BlockDerivative;
36class HPOPForceModel;
37
45class AST_CORE_API HPOPEquation : public OrdinaryDifferentialEquation
46{
47public:
49 HPOPEquation(const HPOPForceModel& forceModel);
51
52 int getDimension() const final;
53
54 errc_t evaluate(const double* y, double* dy, double t) final;
55
57 void setEpoch(const TimePoint& epoch){ epoch_ = epoch; }
58
60 errc_t setForceModel(const HPOPForceModel& forceModel);
61
63 errc_t setPropagationFrame(Frame* frame);
64
66 Frame* getPropagationFrame() const{return propFrame_;}
67protected:
69 void addBlock(FuncBlock* block);
70 void addBlock(BlockDerivative* block);
71
72 void clearBlocks();
73 void reset();
74public:
76 errc_t initialize();
77protected:
78 errc_t initializeFromForceModel(const HPOPForceModel& forceModel);
79 errc_t initBlocks(const HPOPForceModel& forceModel);
80protected:
85};
86
87AST_NAMESPACE_END
导数函数块
定义 BlockDerivative.hpp:34
动力学系统
定义 BlockDynamicSystem.hpp:43
坐标系类
定义 Frame.hpp:59
函数块/功能块
定义 FuncBlock.hpp:39
高精度轨道预报方程
定义 HPOPEquation.hpp:46
TimePoint epoch_
仿真的参考历元
定义 HPOPEquation.hpp:82
void setEpoch(const TimePoint &epoch)
设置仿真的参考历元
定义 HPOPEquation.hpp:57
HFrame propFrame_
预报坐标系
定义 HPOPEquation.hpp:84
HPOPForceModel forceModel_
力模型配置
定义 HPOPEquation.hpp:83
BlockDynamicSystem dynamicSystem_
动力学系统
定义 HPOPEquation.hpp:81
Frame * getPropagationFrame() const
获取预报坐标系
定义 HPOPEquation.hpp:66
高精度轨道预报力模型
定义 HPOPForceModel.hpp:81
常微分方程基接口
定义 OrdinaryDifferentialEquation.hpp:33
virtual int getDimension() const =0
获取微分方程的维度。
virtual errc_t evaluate(const double *y, double *dy, double t)=0
计算常微分方程在给定时间点和状态下的导数。
绝对时间点
定义 TimePoint.hpp:106