🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
Constants.h
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24
25AST_NAMESPACE_BEGIN
26
27
33// 时间系统常量
34
35constexpr double kJ1900Epoch = 2415020.0;
36constexpr double kJ1950Epoch = 2433282.5;
37constexpr double kJ2000Epoch = 2451545.0;
38constexpr double kJ2100Epoch = 2488070.0;
39
40constexpr double kB1900Epoch = 2415020.31352;
41// 原本定义为 2433282.4234591, 后改为SPICE中的定义 2433282.42345905
42constexpr double kB1950Epoch = 2433282.42345905;
43
44
45constexpr double kTTMinusTAI = 32.184;
46constexpr double kGPSMinusTAI = 19.0;
47constexpr double kTTMinusTAIInDay = 32.184/86400;
48constexpr double kMJDRefEpoch = 2400000.5;
49
50
51// pi相关常量
52
53constexpr double kPI = 3.141592653589793238462643383279502884197169399375105;
54constexpr double kTwoPI = 6.283185307179586476925286766558 ;
55constexpr double kFourPI = 12.566370614359172953850573533116 ;
56constexpr double kHalfPI = 1.5707963267948966192313216916395 ;
57constexpr double kThirdPI = 1.047197551196597746154214461093 ;
58constexpr double kQuarterPI = 0.78539816339744830961566084581975 ;
59constexpr double kSqrPI = 9.869604401089358618834490999873 ;
60
61
62// 天文常量
63
64constexpr double kAU = 1.49597870691e11;
65constexpr double kLightSpeed = 2.99792458e8;
66constexpr double kGrav = 6.673e-11;
67
68
69// 地球相关常量
70
71constexpr double kEarthGrav = 3.986004418e14;
72constexpr double kEarthGrav_EGM2008 = 3.986004415e14;
73constexpr double kEarthRadius = 6378137.0;
74constexpr double kEarthMinRadius = 6356752.31424;
75constexpr double kEarthFlatFact = 3.35281066475E-3;
76constexpr double kEarthSiderealDay = 86164.09054;
77constexpr double kEarthSiderealYear = 365.25636;
78
79// constexpr double kEarthAngVel = 7.2921151467e-5; ///< 地球标称平均角速度 (WGS84) [rad/s](kTwoPI/86164.0919)
80constexpr double kEarthAngVel = 7.292115146706979e-5;
81
82// @fixme 这里应该使用恒星日吧
83// constexpr double kEarthMeanMotion = 1.9910643985790994404796035026544e-7; ///< 地球公转平均角速度 (2pi/365.2420897/86400) rad/sec
84// constexpr double kEarthMeanMotion = kTwoPI / (kEarthSiderealYear * 86400);
85
86
87// WGS84相关常量
88constexpr double kEarthRadius_WGS84 = 6378137.0;
89constexpr double kEarthMinRadius_WGS84 = 6356752.31424;
90constexpr double kEarthFlatFact_WGS84 = 3.35281066475E-3; // (1/298.257223563)
91
92
93// CGCS2000相关常量
94constexpr double kEarthRadius_CGCS2000 = 6378137.0;
95constexpr double kEarthMinRadius_CGCS2000 = 6356752.31414;
96constexpr double kEarthFlatFact_CGCS2000 = 1/298.257222101;
97
98// 潮汐相关常量
99// 参考: IERS Conventions (2010), Technical Note 36 (TN36)
100constexpr double kEarthK20LoveNumber = 0.30190;
101
102
103// 月球相关常量
104
105constexpr double kMoonGrav = 4.9028029535968e+12;
106constexpr double kMoonRadius = 1737400.0;
107constexpr double kMoonMinRadius = 1737400.0;
108
109
110// 木星相关常量
111
112constexpr double kJupiterGrav = 1.26712000000000e+017;
113constexpr double kJupiterRadius = 7.14920000000000e+007;
114constexpr double kJupiterMinRadius = 6.68540000000000e+007;
115
116// 火星相关常量
117
118constexpr double kMarsGrav = 4.28283719012840e+013;
119constexpr double kMarsRadius = 3.39700000000000e+006;
120constexpr double kMarsMinRadius = 3.37500000000000e+006;
121
122
123// 水星相关常量
124
125constexpr double kMercuryGrav = 2.20320800000000e+013;
126constexpr double kMercuryRadius = 2.43970000000000e+006;
127constexpr double kMercuryMinRadius = 2.43970000000000e+006;
128
129
130// 海王星相关常量
131
132constexpr double kNeptuneGrav = 6.87130000000000e+015;
133constexpr double kNeptuneRadius = 2.52690000000000e+007;
134constexpr double kNeptuneMinRadius = 2.48000000000000e+007;
135
136
137// 冥王星相关常量
138
139constexpr double kPlutoGrav = 1.00907600000000e+012;
140constexpr double kPlutoRadius = 1.16200000000000e+006;
141constexpr double kPlutoMinRadius = 1.16200000000000e+006;
142
143
144// 土星相关常量
145
146constexpr double kSaturnGrav = 3.79340000000000e+016;
147constexpr double kSaturnRadius = 6.02680000000000e+007;
148constexpr double kSaturnMinRadius = 5.43640000000000e+007;
149
150
151// 太阳相关常量
152
153constexpr double kSunGrav = 1.327122E20;
154constexpr double kSunRadius = 695990000.0;
155constexpr double kSunMinRadius = 695990000.0;
156constexpr double kSunLuminosity = 3.839E26;
157constexpr double kSolarConstant = 1367.0;
158
159
160// 天王星相关常量
161
162constexpr double kUranusGrav = 5.80320000000000e+015;
163constexpr double kUranusRadius = 2.55590000000000e+007;
164constexpr double kUranusMinRadius = 2.49730000000000e+007;
165
166
167// 金星相关常量
168
169constexpr double kVenusGrav = 3.24858800000000e+014;
170constexpr double kVenusRadius = 6.05190000000000e+006;
171constexpr double kVenusMinRadius = 6.05190000000000e+006;
172
173
174
175// 长度单位转换常数
176
177constexpr double kMeterToKilometer = 1.0e-03;
178constexpr double kMeterToCentimeter = 1.0e+02;
179constexpr double kMeterToMillimeter = 1.0e+03;
180constexpr double kMeterToMicroMeter = 1.0e+06;
181constexpr double kMeterToNanometer = 1.0e+09;
182
183constexpr double kKilometerToMeter = 1.0e03;
184constexpr double kCentimeterToMeter = 1.e-02;
185constexpr double kMillimeterToMeter = 1.e-03;
186constexpr double kMicroMeterToMeter = 1.e-06;
187constexpr double kNanometerToMeter = 1.e-09;
188
189// 时间单位转换常数
190
191constexpr double kSecToMin = 0.0166666666666666667;
192constexpr double kSecToHour = 0.000277777777777777778;
193constexpr double kSecToDay = 0.0000115740740740740741;
194
195constexpr double kMinToSec = 60.0;
196constexpr double kMinToHour = 0.0166666666666666667;
197constexpr double kMinToDay = 0.000694444444444444444;
198
199constexpr double kHourToSec = 3600.0;
200constexpr double kHourToMin = 60.0;
201constexpr double kHourToDay = 0.0416666666666666667;
202
203constexpr double kDayToSec = 8.64e04;
204constexpr double kDayToMin = 1440.0;
205constexpr double kDayToHour = 24.0;
206
207constexpr double kMilliSecToSec = 1.0e-03;
208constexpr double kMicroSecToSec = 1.0e-06;
209constexpr double kNanoSecToSec = 1.0e-09;
210constexpr double kPicoSecToSec = 1.0e-12;
211
212constexpr double kSecToMilliSec = 1.0e+03;
213constexpr double kSecToMicroSec = 1.0e+06;
214constexpr double kSecToNanoSec = 1.0e+09;
215constexpr double kSecToPicoSec = 1.0e+12;
216
217// 天数、秒数相关常量
218
219constexpr double kDaysPerJulianCentury = 36525.0;
220constexpr double kDaysPerJulianYear = 365.25;
221constexpr double kSecondsPerDay = 86400.0;
222constexpr double kSecondsPerHour = 3600.0;
223constexpr double kSecondsPerMinute = 60.0;
224constexpr double kSecondsPerJulianYear = 31557600.0;
225
226// 角度单位转换常数
227
228constexpr double kDegToRad = 0.017453292519943295769236907684886;
229constexpr double kArcSecToRad = 4.848136811095359935899141e-6;
230constexpr double kArcMinToRad = 2.9088820866572159615394846141477e-4;
231constexpr double kTimeSecToRad = 7.2722052166430399038487115353692e-5;
232constexpr double kTimeMinToRad = 0.0043633231299858239423092269212215;
233constexpr double kTimeHourToRad = kDegToRad * 15.0;
234constexpr double kRevolutionToRad = kTwoPI;
235
236constexpr double kRadToDeg = 57.2957795130823208767;
237constexpr double kRadToTimeHour = kRadToDeg / 15.0;
238
242A_ALWAYS_INLINE constexpr double aLightSpeed() noexcept
243{
244 return kLightSpeed;
245}
246
247
251AST_NAMESPACE_END
constexpr double kMoonRadius
月球赤道半径 [m]. (IAU2000);
定义 Constants.h:106
constexpr double kEarthMinRadius
地球最小(南北极)半径 (WGS84)[m]
定义 Constants.h:74
constexpr double kSecToPicoSec
秒到皮秒
定义 Constants.h:215
constexpr double kSecondsPerMinute
一分钟的秒数
定义 Constants.h:223
constexpr double kCentimeterToMeter
厘米到米
定义 Constants.h:184
constexpr double kJ1900Epoch
J1900历元
定义 Constants.h:35
constexpr double kGrav
万有引力常数 [m^3/kg*s^2]
定义 Constants.h:66
constexpr double kMJDRefEpoch
简约儒略日的参考历元
定义 Constants.h:48
constexpr double kSunMinRadius
太阳最小半径
定义 Constants.h:155
constexpr double kArcSecToRad
弧秒到弧度 kDegToRad/3600.0 度分秒的秒
定义 Constants.h:229
constexpr double kRevolutionToRad
周期数到弧度 2.0 * kPI
定义 Constants.h:234
constexpr double kJupiterGrav
木星引力常数
定义 Constants.h:112
constexpr double kSecondsPerHour
一小时的秒数
定义 Constants.h:222
constexpr double kMarsGrav
火星引力常数(GMM2B)
定义 Constants.h:118
constexpr double kQuarterPI
PI/4
定义 Constants.h:58
constexpr double kSunGrav
太阳引力常数 [m^3/s^2]
定义 Constants.h:153
constexpr double kTimeMinToRad
时间分到弧度,时分秒的分
定义 Constants.h:232
constexpr double kTwoPI
2*PI
定义 Constants.h:54
constexpr double kMinToDay
分钟到天
定义 Constants.h:197
constexpr double kMercuryMinRadius
水星最小半径
定义 Constants.h:127
constexpr double kNeptuneGrav
海王星引力常数
定义 Constants.h:132
constexpr double kMercuryGrav
水星引力常数
定义 Constants.h:125
constexpr double kDaysPerJulianYear
儒略年天数
定义 Constants.h:220
constexpr double kKilometerToMeter
千米到米
定义 Constants.h:183
constexpr double kAU
天文单位 (IAU 1976)[m]
定义 Constants.h:64
constexpr double kMicroMeterToMeter
微米到米
定义 Constants.h:186
constexpr double kSunLuminosity
太阳光度 [W] (Carrol & Ostlie, 2007) An Introduction to Modern Astrophysics
定义 Constants.h:156
constexpr double kMeterToNanometer
米到纳米
定义 Constants.h:181
constexpr double kEarthK20LoveNumber
地球2阶位Love数 k20 — IERS 2010 TN36 第6章 第6.2.1节 表6.3 (p.83, 滞弹性地球名义值)
定义 Constants.h:100
constexpr double kDayToHour
天到小时
定义 Constants.h:205
constexpr double kNanometerToMeter
纳米到米
定义 Constants.h:187
constexpr double kJ1950Epoch
J1950历元
定义 Constants.h:36
constexpr double kSecToDay
秒到天
定义 Constants.h:193
constexpr double kHourToDay
小时到天
定义 Constants.h:201
constexpr double kSaturnGrav
土星引力常数
定义 Constants.h:146
constexpr double kMoonGrav
月球引力常数 [m^3/s^2]. (GLGM2)
定义 Constants.h:105
constexpr double kPlutoGrav
冥王星引力常数
定义 Constants.h:139
constexpr double kHourToSec
小时到秒
定义 Constants.h:199
constexpr double kSecToMilliSec
秒到毫秒
定义 Constants.h:212
constexpr double kEarthSiderealDay
地球平恒星日 [s]
定义 Constants.h:76
constexpr double kTimeHourToRad
时间时到弧度,时分秒的时
定义 Constants.h:233
constexpr double kDegToRad
角度到弧度 kPI/180.0
定义 Constants.h:228
constexpr double kUranusGrav
天王星引力常数
定义 Constants.h:162
constexpr double kMarsRadius
火星赤道半径
定义 Constants.h:119
constexpr double kMarsMinRadius
火星最小半径
定义 Constants.h:120
constexpr double kGPSMinusTAI
GPS 时间相对原子时的偏置[s]
定义 Constants.h:46
constexpr double kThirdPI
PI/3
定义 Constants.h:57
constexpr double kSolarConstant
太阳常数(1AU处总太阳辐照度)[W/m²]
定义 Constants.h:157
constexpr double kSecondsPerDay
一天的秒数
定义 Constants.h:221
constexpr double kEarthFlatFact
地球扁率 (WGS84), f=1-b/a
定义 Constants.h:75
constexpr double kVenusMinRadius
金星最小半径
定义 Constants.h:171
constexpr double kMinToHour
分钟到小时
定义 Constants.h:196
constexpr double kMeterToCentimeter
米到厘米
定义 Constants.h:178
constexpr double kNeptuneRadius
海王星赤道半径
定义 Constants.h:133
constexpr double kJupiterMinRadius
木星最小半径
定义 Constants.h:114
constexpr double kEarthAngVel
地球标称平均角速度 rad/s
定义 Constants.h:80
constexpr double kMeterToMicroMeter
米到微米
定义 Constants.h:180
constexpr double kSecToHour
秒到小时
定义 Constants.h:192
constexpr double kSecondsPerJulianYear
儒略年秒数(kDaysPerJulianYear * kSecondsPerDay)
定义 Constants.h:224
constexpr double kSaturnRadius
土星赤道半径
定义 Constants.h:147
constexpr double kJupiterRadius
木星赤道半径
定义 Constants.h:113
constexpr double kPlutoMinRadius
冥王星最小半径
定义 Constants.h:141
constexpr double kMicroSecToSec
微秒到秒
定义 Constants.h:208
constexpr double kMilliSecToSec
毫秒到秒
定义 Constants.h:207
constexpr double kEarthGrav_EGM2008
地球引力常数 (EGM2008) [m^3/s^2]
定义 Constants.h:72
constexpr double kArcMinToRad
弧分到弧度 kDegToRad/60.0 度分秒的分
定义 Constants.h:230
constexpr double kEarthRadius
地球赤道半径 (WGS84)[m]
定义 Constants.h:73
constexpr double kHourToMin
小时到分钟
定义 Constants.h:200
constexpr double kEarthSiderealYear
地球平恒星年 [day]
定义 Constants.h:77
constexpr double kFourPI
4*PI
定义 Constants.h:55
constexpr double kHalfPI
0.5*kAsPI
定义 Constants.h:56
constexpr double kUranusRadius
天王星半径
定义 Constants.h:163
constexpr double kNanoSecToSec
纳秒到秒
定义 Constants.h:209
constexpr double kJ2000Epoch
J2000历元
定义 Constants.h:37
constexpr double kSecToMin
秒到分钟
定义 Constants.h:191
constexpr double kTTMinusTAIInDay
地球时相对原子时的偏置[day]
定义 Constants.h:47
constexpr double kUranusMinRadius
天王星最小半径
定义 Constants.h:164
constexpr double kMoonMinRadius
月球最小半径(m)
定义 Constants.h:107
constexpr double kDaysPerJulianCentury
儒略世纪天数
定义 Constants.h:219
constexpr double kMercuryRadius
水星赤道半径
定义 Constants.h:126
constexpr double kB1900Epoch
B1900历元
定义 Constants.h:40
constexpr double kPlutoRadius
冥王星赤道半径
定义 Constants.h:140
constexpr double kSecToMicroSec
秒到微秒
定义 Constants.h:213
constexpr double kJ2100Epoch
J2100历元
定义 Constants.h:38
constexpr double kRadToTimeHour
弧度到时间时,度分秒的时
定义 Constants.h:237
constexpr double kVenusRadius
金星半径
定义 Constants.h:170
constexpr double kMeterToMillimeter
米到毫米
定义 Constants.h:179
constexpr double kPI
PI
定义 Constants.h:53
constexpr double kTimeSecToRad
时间秒到弧度,时分秒的秒
定义 Constants.h:231
constexpr double kSqrPI
PI*PI, PI squared
定义 Constants.h:59
constexpr double kRadToDeg
弧度到角度 180.0/kPI
定义 Constants.h:236
constexpr double kMillimeterToMeter
毫米到米
定义 Constants.h:185
constexpr double kDayToSec
天到秒
定义 Constants.h:203
constexpr double kSunRadius
太阳半径 [m]
定义 Constants.h:154
constexpr double kSecToNanoSec
秒到纳秒
定义 Constants.h:214
constexpr double kTTMinusTAI
地球时相对原子时的偏置[s]
定义 Constants.h:45
constexpr double kNeptuneMinRadius
海王星最小半径
定义 Constants.h:134
constexpr double kMeterToKilometer
米到千米
定义 Constants.h:177
constexpr double kLightSpeed
光速 (IAU 1976 value) [m/s]
定义 Constants.h:65
constexpr double kVenusGrav
金星引力常数
定义 Constants.h:169
constexpr double kPicoSecToSec
皮秒(微微秒)到秒
定义 Constants.h:210
constexpr double kDayToMin
天到分钟
定义 Constants.h:204
constexpr double kEarthGrav
地球引力常数 (WGS84) [m^3/s^2]
定义 Constants.h:71
constexpr double kMinToSec
分钟到秒
定义 Constants.h:195
constexpr double kB1950Epoch
B1950历元
定义 Constants.h:42
constexpr double kSaturnMinRadius
土星最小半径
定义 Constants.h:148
A_ALWAYS_INLINE constexpr double aLightSpeed() noexcept
获取真空中的光速
定义 Constants.h:242