🛰️航天仿真算法库 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 explicit HPOPEquation(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(HPOPForceModel&& forceModel);
61 errc_t setForceModel(const HPOPForceModel& forceModel);
62
64 errc_t setPropagationFrame(Frame* frame);
65
67 Frame* getPropagationFrame() const{return propFrame_;}
68protected:
70 void addBlock(FuncBlock* block);
71 void addBlock(BlockDerivative* block);
72
73 void clearBlocks();
74 void reset();
75public:
77 errc_t initialize();
78protected:
79 errc_t initializeFromForceModel(const HPOPForceModel& forceModel);
80 errc_t initBlocks(const HPOPForceModel& forceModel);
81protected:
83 TimePoint epoch_{};
86};
87
88AST_NAMESPACE_END
导数函数块
定义 BlockDerivative.hpp:34
动力学系统
定义 BlockDynamicSystem.hpp:43
坐标系类
定义 Frame.hpp:60
函数块/功能块
定义 FuncBlock.hpp:39
高精度轨道预报方程
定义 HPOPEquation.hpp:46
void setEpoch(const TimePoint &epoch)
设置仿真的参考历元
定义 HPOPEquation.hpp:57
HFrame propFrame_
预报坐标系
定义 HPOPEquation.hpp:85
HPOPForceModel forceModel_
力模型配置
定义 HPOPEquation.hpp:84
BlockDynamicSystem dynamicSystem_
动力学系统
定义 HPOPEquation.hpp:82
Frame * getPropagationFrame() const
获取预报坐标系
定义 HPOPEquation.hpp:67
高精度轨道预报力模型
定义 HPOPForceModel.hpp:49
常微分方程基接口
定义 OrdinaryDifferentialEquation.hpp:33
virtual int getDimension() const =0
获取微分方程的维度。
virtual errc_t evaluate(const double *y, double *dy, double t)=0
计算常微分方程在给定时间点和状态下的导数。
绝对时间点
定义 TimePoint.hpp:106