🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
SpacecraftState.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "SpacecraftParam.hpp"
25#include "AstCore/State.hpp"
26#include "AstUtil/Object.hpp"
27#include "AstUtil/ObjectNamed.hpp"
28
29AST_NAMESPACE_BEGIN
30
38class AST_CORE_API SpacecraftState: public ObjectNamed, public SpacecraftParam
39{
40public:
41 AST_OBJECT(SpacecraftState)
42 AST_PROPERT(Frame)
43 AST_PROPERT(Mass)
44 AST_PROPERT(FuelMass)
45 AST_PROPERT(DryMass)
46 AST_PROPERT(Cd)
47 AST_PROPERT(Cr)
48 AST_PROPERT(DragArea)
49 AST_PROPERT(SRPArea)
50 AST_PROPERT(K1)
51 AST_PROPERT(K2)
52 AST_PROPERT(FuelDensity)
53 AST_PROPERT(RadPressureArea)
54 AST_PROPERT(RadPressureCoeff)
55 AST_PROPERT(TankPressure)
56 AST_PROPERT(TankTemperature)
57 AST_PROPERT(OrbitState)
58;
59
60 static SpacecraftState* NewDefault();
61
63 ~SpacecraftState() = default;
64PROPERTIES:
65 Frame* getFrame() const;
66 void setFrame(Frame* frame);
67
70 mass_d getMass() const{return fuelMass_ + dryMass_;}
71 mass_d getFuelMass() const{return fuelMass_;}
72 mass_d getDryMass() const{return dryMass_;}
73
76 void setFuelMass(mass_d fuelMass){fuelMass_ = fuelMass;}
77 void setDryMass(mass_d dryMass){dryMass_ = dryMass;}
78
79 double getCd() const{return cd_;}
80 void setCd(double cd){cd_ = cd;}
81
82 double getCr() const{return cr_;}
83 void setCr(double cr){cr_ = cr;}
84
85 area_d getDragArea() const{return dragArea_;}
86 void setDragArea(area_d dragArea){dragArea_ = dragArea;}
87
88 area_d getSRPArea() const{return srpArea_;}
89 void setSRPArea(area_d srpArea){srpArea_ = srpArea;}
90
91 double getK1() const{return k1_;}
92 void setK1(double k1){k1_ = k1;}
93
94 double getK2() const{return k2_;}
95 void setK2(double k2){k2_ = k2;}
96
97 density_d getFuelDensity() const{return fuelDensity_;}
98 void setFuelDensity(density_d fuelDensity){fuelDensity_ = fuelDensity;}
99
100 area_d getRadPressureArea() const{return radPressureArea_;}
101 void setRadPressureArea(area_d radPressureArea){radPressureArea_ = radPressureArea;}
102
103 double getRadPressureCoeff() const{return radPressureCoeff_;}
104 void setRadPressureCoeff(double radPressureCoeff){radPressureCoeff_ = radPressureCoeff;}
105
106
107 pressure_d getTankPressure() const{return tankPressure_;}
108 void setTankPressure(pressure_d tankPressure){tankPressure_ = tankPressure;}
109
110 temperature_d getTankTemperature() const{return tankTemperature_;}
111 void setTankTemperature(temperature_d tankTemperature){tankTemperature_ = tankTemperature;}
112
113
116 State* getOrbitState() const;
117
120 void setOrbitState(State* orbitState){orbitState_ = orbitState;}
121public:
124 void setStateType(EStateType stateType);
125
128 EStateType getStateType() const;
129
130 const SpacecraftParam& spacecraftParam() const{return *this;}
131 SpacecraftParam& spacecraftParam(){return *this;}
132 void setSpacecraftParam(const SpacecraftParam& spacecraftParam){this->spacecraftParam() = spacecraftParam;}
133public:
134 errc_t getState(ModOrbElem& orbElem) const;
135 errc_t getState(CartState& state) const;
136 errc_t getStateIn(Frame* frame, CartState& state) const;
137 errc_t getStateIn(Frame* frame, ModOrbElem& orbElem) const;
138 errc_t getStateInBodyInertial(Body* body, CartState& state) const;
139 errc_t setState(const ModOrbElem& orbElem);
140 errc_t setState(const CartState& state);
141 void setStateEpoch(const TimePoint& stateEpoch);
142 errc_t getStateEpoch(TimePoint& stateEpoch) const;
143 void copyFrom(const SpacecraftState& srcState);
144private:
145 HState orbitState_;
146};
147
148
149using ScState = SpacecraftState;
150
153AST_NAMESPACE_END
坐标系类
定义 Frame.hpp:60
命名对象
定义 ObjectNamed.hpp:36
航天器参数
定义 SpacecraftParam.hpp:34
double cr_
光压系数
定义 SpacecraftParam.hpp:81
double fuelMass_
燃油质量
定义 SpacecraftParam.hpp:85
double tankTemperature_
罐温度
定义 SpacecraftParam.hpp:92
double cd_
阻力系数
定义 SpacecraftParam.hpp:80
double fuelDensity_
燃油密度
定义 SpacecraftParam.hpp:86
double srpArea_
SRP面积
定义 SpacecraftParam.hpp:83
double k1_
系数1
定义 SpacecraftParam.hpp:87
double radPressureCoeff_
辐射压力系数
定义 SpacecraftParam.hpp:90
double dryMass_
干质量
定义 SpacecraftParam.hpp:84
double tankPressure_
罐压力
定义 SpacecraftParam.hpp:91
double radPressureArea_
辐射压力面积
定义 SpacecraftParam.hpp:89
double dragArea_
阻力面积
定义 SpacecraftParam.hpp:82
double k2_
系数2
定义 SpacecraftParam.hpp:88
航天器状态,包含轨道状态、航天器参数(质量、面积、阻力系数、光压、密度、压力、温度等)
定义 SpacecraftState.hpp:39
mass_d getMass() const
获取质量
定义 SpacecraftState.hpp:70
void setOrbitState(State *orbitState)
设置轨道状态
定义 SpacecraftState.hpp:120
void setFuelMass(mass_d fuelMass)
设置质量
定义 SpacecraftState.hpp:76
航天器状态
定义 State.hpp:53
EStateType
状态类型
定义 State.hpp:39