🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
OrbitElement.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/Vector.hpp"
25#include "AstCore/OrbitParam.hpp"
26#include "AstCore/TimePoint.hpp"
27#include "AstUtil/Constants.hpp"
28#include <string>
29#include <cmath> // for std::isfinite
30
31AST_NAMESPACE_BEGIN
32
48#if defined(A_GCC) || defined(A_CLANG)
49# pragma GCC diagnostic push
50# pragma GCC diagnostic ignored "-Weffc++"
51#endif
53{
54public:
55 Vector3d pos_;
56 Vector3d vel_;
57public:
60 static CartState Zero() {return CartState{Vector3d::Zero(), Vector3d::Zero()};}
61
62 A_DEF_POD_ITERABLE(double)
63
64
66 const Vector3d& pos() const {return pos_;}
67 Vector3d& pos() {return pos_;}
68 const Vector3d& position() const {return pos_;}
69 Vector3d& position() {return pos_;}
70
73 const Vector3d& vel() const {return vel_;}
74 Vector3d& vel() {return vel_;}
75 const Vector3d& velocity() const {return vel_;}
76 Vector3d& velocity() {return vel_;}
77
78 double& x() {return pos_.x();}
79 double& y() {return pos_.y();}
80 double& z() {return pos_.z();}
81 double& vx() {return vel_.x();}
82 double& vy() {return vel_.y();}
83 double& vz() {return vel_.z();}
84
85 double x() const {return pos_.x();}
86 double y() const {return pos_.y();}
87 double z() const {return pos_.z();}
88 double vx() const {return vel_.x();}
89 double vy() const {return vel_.y();}
90 double vz() const {return vel_.z();}
91
93 AST_CORE_API
94 std::string toString() const;
95public:
97 bool isFinite() const{
98 for (auto val: *this)
99 if (!std::isfinite(val))
100 return false;
101 return true;
102 }
103};
104#if defined(A_GCC) || defined(A_CLANG)
105# pragma GCC diagnostic pop
106#endif
107
108
111{
112// 设置为public使类型为聚合类型
113public:
114 double a_;
115 double e_;
116 double i_;
117 double raan_;
118 double argper_;
119 double trueA_;
120public:
122 double getMeanMotion(double gm) const {return aSMAToMeanMotion(getSMA(), gm);}
123
124 double getSMA() const {return a_;}
125
126 double getA() const {return a_;}
127
128 double getE() const {return e_;}
129
130 double getI() const {return i_;}
131
132 double getRAAN() const {return raan_;}
133
134 double getArgPer() const {return argper_;}
135
136 double getTrueA() const {return trueA_;}
137
139 AST_CORE_API
140 std::string toString() const;
141public:
142 A_DEF_POD_ITERABLE(double)
143 AST_DEF_ACCESS_METHOD(double, a)
144 AST_DEF_ACCESS_METHOD(double, e)
145 AST_DEF_ACCESS_METHOD(double, i)
146 AST_DEF_ACCESS_METHOD(double, raan)
147 AST_DEF_ACCESS_METHOD(double, argper)
148 AST_DEF_ACCESS_METHOD(double, trueA)
149};
150
151
154{
155// 设置为public使类型为聚合类型
156public:
157 double rp_;
158 double e_;
159 double i_;
160 double raan_;
161 double argper_;
162 double trueA_;
163public:
165 double getSMA() const {return rp_ / (1 - e_);}
166
168 double getMeanMotion(double gm) const {return aPeriRadToMeanMotion(getPeriRad(), getEcc(), gm);}
169
171 double getPeriod(double gm) const {return kTwoPI / getMeanMotion(gm);}
172
174 double getApoRad() const{return aPeriRadToApoRad(getPeriRad(), getEcc());}
175
177 double getApoAlt(double bodyRadius) const{ return aPeriRadToApoAlt(getPeriRad(), getEcc(), bodyRadius);}
178
180 double getPeriRad() const {return rp_;}
181
183 double getPeriAlt(double bodyRadius) const{ return getPeriRad() - bodyRadius;}
184
186 double getEcc() const {return e_;}
187
189 double getInc() const {return i_;}
190
192 double getRAAN() const {return raan_;}
193
195 double getArgPeri() const {return argper_;}
196
198 double getTrueAnomaly() const {return trueA_;}
199
201 double getMeanAnomaly() const {return aTrueToMean(getTrueAnomaly(), getEcc());}
202
204 double getEccAnomaly() const {return aTrueToEcc(getTrueAnomaly(), getEcc());}
205
207 double getArgLat() const {return aTrueToArgLat(getTrueAnomaly(), getArgPeri());}
208
210 double getLongitudeOfPeri() const {return aArgPeriToLongPeri(getArgPeri(), getRAAN());}
211
213 double getMeanLongitude() const {return getLongitudeOfPeri() + getMeanAnomaly();}
214
216 double getTimePastPeri(double gm) const{return aTrueToTimePastPeri(getTrueAnomaly(), getSMA(), getEcc(), gm);}
217
219 double getTimePastAscNode(double gm) const{return aTrueToTimePastAscNode(getTrueAnomaly(), getArgPeri(), getSMA(), getEcc(), gm);}
220
222 TimePoint getTimeOfAscNodePassage(const TimePoint& stateEpoch, double gm) const
223 {
224 return stateEpoch - getTimePastAscNode(gm);
225 }
226
228 double getLAN(Axes* inertialAxes, const TimePoint& timeOfAscNodePassage, Axes* bodyFixedAxes) const
229 {
230 return aRAANToLAN(getRAAN(), inertialAxes, timeOfAscNodePassage, bodyFixedAxes);
231 }
232
233public:
235 double getA() const {return getSMA();}
236
238 double getP() const {return rp_ * (1 + e_);}
239
240 double getE() const {return getEcc();}
241
242 double getI() const {return getInc();}
243
244 double getArgPer() const {return getArgPeri();}
245
246 double getTrueA() const {return getTrueAnomaly();}
247
249 AST_CORE_API
250 std::string toString() const;
251public:
252 A_DEF_POD_ITERABLE(double)
253 AST_DEF_ACCESS_METHOD(double, rp)
254 AST_DEF_ACCESS_METHOD(double, e)
255 AST_DEF_ACCESS_METHOD(double, i)
256 AST_DEF_ACCESS_METHOD(double, raan)
257 AST_DEF_ACCESS_METHOD(double, argper)
258 AST_DEF_ACCESS_METHOD(double, trueA)
259};
260
261
264{
265// 设置为public使类型为聚合类型
266public:
267 double a_;
268 double h_;
269 double k_;
270 double p_;
271 double q_;
272 double lambda_;
273public:
275 double meanLongitude() const {return lambda_;}
276public:
277 A_DEF_POD_ITERABLE(double)
278 AST_DEF_ACCESS_METHOD(double, a)
279 AST_DEF_ACCESS_METHOD(double, h)
280 AST_DEF_ACCESS_METHOD(double, k)
281 AST_DEF_ACCESS_METHOD(double, p)
282 AST_DEF_ACCESS_METHOD(double, q)
283 AST_DEF_ACCESS_METHOD(double, lambda)
284};
285
288{
289// 设置为public使类型为聚合类型
290public:
291 double p_;
292 double f_;
293 double g_;
294 double h_;
295 double k_;
296 double L_;
297public:
299 double trueLongitude() const {return L_;}
300public:
301 A_DEF_POD_ITERABLE(double)
302 AST_DEF_ACCESS_METHOD(double, p)
303 AST_DEF_ACCESS_METHOD(double, f)
304 AST_DEF_ACCESS_METHOD(double, g)
305 AST_DEF_ACCESS_METHOD(double, h)
306 AST_DEF_ACCESS_METHOD(double, k)
307 AST_DEF_ACCESS_METHOD(double, L)
308};
309
310
311
321{
322// 设置为public使类型为聚合类型
323public:
324 double L_;
325 double G_;
326 double H_;
327 double l_;
328 double g_;
329 double h_;
330public:
331 A_DEF_POD_ITERABLE(double)
332 AST_DEF_ACCESS_METHOD(double, L)
333 AST_DEF_ACCESS_METHOD(double, G)
334 AST_DEF_ACCESS_METHOD(double, H)
335 AST_DEF_ACCESS_METHOD(double, l)
336 AST_DEF_ACCESS_METHOD(double, g)
337 AST_DEF_ACCESS_METHOD(double, h)
338};
339
340
349{
350// 设置为public使类型为聚合类型
351public:
352 double ra_;
353 double dec_;
354 double bDotR_;
355 double bDotT_;
356 double c3_;
357 double trueA_;
358public:
360 AST_CORE_API
361 std::string toString() const;
362public:
363 A_DEF_POD_ITERABLE(double)
364 AST_DEF_ACCESS_METHOD(double, ra)
365 AST_DEF_ACCESS_METHOD(double, dec)
366 AST_DEF_ACCESS_METHOD(double, bDotR)
367 AST_DEF_ACCESS_METHOD(double, bDotT)
368 AST_DEF_ACCESS_METHOD(double, c3)
369 AST_DEF_ACCESS_METHOD(double, trueA)
370};
371
372
386{
387// 设置为public使类型为聚合类型
388public:
389 double ra_;
390 double dec_;
391 double r_;
392 double fpa_;
393 double azi_;
394 double v_;
395public:
397 double getRA() const {return ra_;}
398
400 double getDec() const {return dec_;}
401
403 double getRadius() const {return r_;}
404
406 double getFltPathAng() const {return fpa_;}
407
409 double getFltPathAzi() const {return azi_;}
410
412 double getVel() const {return v_;}
413
415 AST_CORE_API
416 std::string toString() const;
417public:
418 A_DEF_POD_ITERABLE(double)
419 AST_DEF_ACCESS_METHOD(double, ra)
420 AST_DEF_ACCESS_METHOD(double, dec)
421 AST_DEF_ACCESS_METHOD(double, r)
422 AST_DEF_ACCESS_METHOD(double, fpa)
423 AST_DEF_ACCESS_METHOD(double, azi)
424 AST_DEF_ACCESS_METHOD(double, v)
425};
426
427
442{
443// 设置为public使类型为聚合类型
444public:
445 double lon_;
446 double lat_;
447 double alt_;
448 double fpa_;
449 double azi_;
450 double v_;
451public:
453 double getLon() const {return lon_;}
454
456 double getLat() const {return lat_;}
457
459 double getAlt() const {return alt_;}
460
462 double getFltPathAng() const {return fpa_;}
463
465 double getVertFltPathAng() const {return kHalfPI - fpa_;}
466
468 double getFltPathAzi() const {return azi_;}
469
471 double getVel() const {return v_;}
472
474 AST_CORE_API
475 std::string toString() const;
476public:
477 A_DEF_POD_ITERABLE(double)
478 AST_DEF_ACCESS_METHOD(double, lon)
479 AST_DEF_ACCESS_METHOD(double, lat)
480 AST_DEF_ACCESS_METHOD(double, alt)
481 AST_DEF_ACCESS_METHOD(double, fpa)
482 AST_DEF_ACCESS_METHOD(double, azi)
483 AST_DEF_ACCESS_METHOD(double, v)
484};
485
486
504{
505// 设置为public使类型为聚合类型
506public:
507 double lat_;
508 double lon_;
509 double alt_;
510 double latRate_;
511 double lonRate_;
512 double altRate_;
513public:
515 double getLon() const {return lon_;}
516
518 double getLat() const {return lat_;}
519
521 double getAlt() const {return alt_;}
522
524 double getLonRate() const {return lonRate_;}
525
527 double getLatRate() const {return latRate_;}
528
530 double getAltRate() const {return altRate_;}
531
533 AST_CORE_API
534 std::string toString() const;
535public:
536 A_DEF_POD_ITERABLE(double)
537 AST_DEF_ACCESS_METHOD(double, lon)
538 AST_DEF_ACCESS_METHOD(double, lat)
539 AST_DEF_ACCESS_METHOD(double, alt)
540 AST_DEF_ACCESS_METHOD(double, lonRate)
541 AST_DEF_ACCESS_METHOD(double, latRate)
542 AST_DEF_ACCESS_METHOD(double, altRate)
543};
544
545
552AST_CORE_API errc_t aCartToSpherical(
553 const Vector3d& pos,
554 const Vector3d& vel,
555 SphericalElem& sph
556);
557
558
565AST_CORE_API errc_t aSphericalToCart(
566 const SphericalElem& sph,
567 Vector3d& pos,
568 Vector3d& vel
569);
570
571
582AST_CORE_API errc_t aCartToMixedSpherical(
583 const Vector3d& pos,
584 const Vector3d& vel,
585 const Rotation& framelToFixed,
586 const BodyShape& shape,
587 MixedSphericalElem& mixedSph
588);
589
590
599AST_CORE_API errc_t aMixedSphericalToCart(
600 const MixedSphericalElem& mixedSph,
601 const Rotation& fixedToframe,
602 const BodyShape& shape,
603 Vector3d& pos,
604 Vector3d& vel
605);
606
607
618AST_CORE_API errc_t aCartToGeodetic(
619 const Vector3d& pos,
620 const Vector3d& vel,
621 const BodyShape& shape,
622 GeodeticElem& geodetic
623);
624
625
635AST_CORE_API errc_t aGeodeticToCart(
636 const GeodeticElem& geodetic,
637 const BodyShape& shape,
638 Vector3d& pos,
639 Vector3d& vel
640);
641
642
649AST_CORE_CAPI errc_t coe2rv(const double* coe, double gm, double* pos, double* vel);
650
655AST_CORE_CAPI errc_t coe2mee(const double* coe, double* mee);
656
662AST_CORE_CAPI void ee2rv(const double* ee, double gm, double* pos, double* vel);
663
669AST_CORE_CAPI void mee2rv(const double* mee, double gm, double* pos, double* vel);
670
677AST_CORE_CAPI errc_t rv2mee(const double* pos, const double* vel, double gm, double* mee);
678
683AST_CORE_CAPI errc_t mee2coe(const double* mee, double* coe);
684
690AST_CORE_CAPI void rv2ee(const double* pos, const double* vel, double gm, double* ee);
691
698AST_CORE_CAPI errc_t rv2moe(const double* pos, const double* vel, double gm, double* moe);
699
706AST_CORE_CAPI errc_t rv2coe(const double* pos, const double* vel, double gm, double* coe);
707
712AST_CORE_CAPI errc_t ee2moe(const double* ee, double* moe);
713
718AST_CORE_CAPI errc_t moe2ee(const double* moe, double* ee);
719
723AST_CORE_CAPI errc_t moe2coe(const double* moe, double* coe);
724
728AST_CORE_CAPI void coe2moe(const double* coe, double* moe);
729
735AST_CORE_CAPI errc_t moe2rv(const double* moe, double gm, double* pos, double* vel);
736
740AST_CORE_CAPI void moe2mee(const double* moe, double* mee);
741
745AST_CORE_CAPI void coe2ee(const double* coe, double* ee);
746
750AST_CORE_CAPI void ee2coe(const double* ee, double* coe);
751
755AST_CORE_CAPI void ee2mee(const double* ee, double* mee);
756
760AST_CORE_CAPI void mee2ee(const double* mee, double* ee);
761
765AST_CORE_CAPI void mee2moe(const double* mee, double* moe);
766
767
772AST_CORE_CAPI errc_t coe2dela(const double* coe, double gm, double* dela);
773
774
778AST_CORE_CAPI errc_t dela2coe(const double* dela, double gm, double* coe);
779
780
786AST_CORE_CAPI void aModEquinElemToCart(
787 const ModEquinElem& mee,
788 double gm,
789 Vector3d& pos,
790 Vector3d& vel
791);
792
799AST_CORE_CAPI errc_t aCartToModEquinElem(
800 const Vector3d& pos,
801 const Vector3d& vel,
802 double gm,
803 ModEquinElem& mee
804);
805
810AST_CORE_CAPI errc_t aOrbElemToModEquinElem(
811 const OrbElem& elem,
812 ModEquinElem& mee
813);
814
819AST_CORE_CAPI errc_t aModEquinElemToOrbElem(
820 const ModEquinElem& mee,
821 OrbElem& elem
822);
823
830AST_CORE_CAPI errc_t aCartToModOrbElem(
831 const Vector3d& pos,
832 const Vector3d& vel,
833 double gm,
834 ModOrbElem& modOrb);
835
842AST_CORE_CAPI
843errc_t aCartToOrbElem (
844 const Vector3d& pos,
845 const Vector3d& vel,
846 double gm,
847 OrbElem& elem);
848
853AST_CORE_CAPI
854errc_t aEquinElemToModOrb (
855 const EquinElem& equinElem,
856 ModOrbElem& modOrb);
857
862AST_CORE_CAPI
863errc_t aModOrbToEquinElem (
864 const ModOrbElem& modOrb,
865 EquinElem& equinElem);
866
872AST_CORE_CAPI
873errc_t aModOrbElemToCart (
874 const ModOrbElem& modOrb,
875 double gm,
876 Vector3d& pos,
877 Vector3d& vel);
878
885AST_CORE_CAPI
886errc_t aOrbElemToCart (
887 const OrbElem& elem,
888 double gm,
889 Vector3d& pos,
890 Vector3d& vel);
891
897AST_CORE_CAPI
898void aCartToEquinElem(
899 const Vector3d& pos,
900 const Vector3d& vel,
901 double gm,
902 EquinElem& equinElem);
903
909AST_CORE_CAPI
910void aEquinElemToCart(
911 const EquinElem& equinElem,
912 double gm,
913 Vector3d& pos,
914 Vector3d& vel);
915
916
921AST_CORE_CAPI
922errc_t aOrbElemToDelaunay(
923 const OrbElem& elem,
924 double gm,
925 DelaunayElem& delaunay);
926
927
932AST_CORE_CAPI
933errc_t aDelaunayToOrbElem(
934 const DelaunayElem& delaunay,
935 double gm,
936 OrbElem& elem);
937
938
944A_ALWAYS_INLINE
945ModOrbElem aCartToModOrbElem(const Vector3d& r, const Vector3d& v, double gm)
946{
947 ModOrbElem modOrbElem;
948 aCartToModOrbElem(r, v, gm, modOrbElem);
949 return modOrbElem;
950}
951
952
963
964
965
977AST_CORE_CAPI errc_t aCartToBPlane(
978 const Vector3d& pos,
979 const Vector3d& vel,
980 double gm,
981 const Vector3d& refVector,
982 BPlaneElem& bPlane
983);
984
985
993AST_CORE_CAPI errc_t aBPlaneToCart(
994 const BPlaneElem& bPlane,
995 double gm,
996 const Vector3d& refVector,
997 Vector3d& pos,
998 Vector3d& vel
999);
1000
1001
1005AST_NAMESPACE_END
1006
1007AST_DECL_TYPE_ALIAS(CartState)
轴系抽象基类
定义 Axes.hpp:86
B平面根数
定义 OrbitElement.hpp:349
double ra_
入渐近线赤经(B平面法向量的赤经) [rad]
定义 OrbitElement.hpp:352
double bDotR_
B矢量在R轴上的分量 B·R [m]
定义 OrbitElement.hpp:354
double trueA_
真近点角 [rad]
定义 OrbitElement.hpp:357
double dec_
入渐近线赤纬(B平面法向量的赤纬) [rad]
定义 OrbitElement.hpp:353
double c3_
特征能量 C3 = v^2 - 2*gm/r [m^2/s^2]
定义 OrbitElement.hpp:356
double bDotT_
B矢量在T轴上的分量 B·T [m]
定义 OrbitElement.hpp:355
直角坐标
定义 OrbitElement.hpp:53
bool isFinite() const
判断状态分量是否全部为有限值
定义 OrbitElement.hpp:97
Vector3d vel_
速度
定义 OrbitElement.hpp:56
Vector3d pos_
位置
定义 OrbitElement.hpp:55
const Vector3d & vel() const
获取速度
定义 OrbitElement.hpp:73
static CartState Zero()
获取零状态
定义 OrbitElement.hpp:60
德洛奈根数
定义 OrbitElement.hpp:321
春分点根数
定义 OrbitElement.hpp:264
double lambda_
mean longitude = M + RAAN + argper (平经度)
定义 OrbitElement.hpp:272
double k_
e*cos(argper + RAAN)
定义 OrbitElement.hpp:269
double q_
tan(i/2)*cos(RAAN)
定义 OrbitElement.hpp:271
double meanLongitude() const
平经度
定义 OrbitElement.hpp:275
double a_
semimajor axis length (半长轴)
定义 OrbitElement.hpp:267
double p_
tan(i/2)*sin(RAAN)
定义 OrbitElement.hpp:270
double h_
e*sin(argper + RAAN) omegabar=argper + RAAN
定义 OrbitElement.hpp:268
大地坐标根数
定义 OrbitElement.hpp:504
double lon_
大地经度 [rad] (天体固连系)
定义 OrbitElement.hpp:508
double lonRate_
大地经度变化率 [rad/s] (天体固连系)
定义 OrbitElement.hpp:511
double getLat() const
获取大地纬度
定义 OrbitElement.hpp:518
double getLatRate() const
获取大地纬度变化率
定义 OrbitElement.hpp:527
double getAlt() const
获取高度
定义 OrbitElement.hpp:521
double alt_
高度 [m] (相对参考椭球, 沿椭球法线)
定义 OrbitElement.hpp:509
double lat_
大地纬度 [rad] (天体固连系)
定义 OrbitElement.hpp:507
double altRate_
高度变化率 [m/s] (天体固连系)
定义 OrbitElement.hpp:512
double getLon() const
获取大地经度
定义 OrbitElement.hpp:515
double latRate_
大地纬度变化率 [rad/s] (天体固连系)
定义 OrbitElement.hpp:510
double getLonRate() const
获取大地经度变化率
定义 OrbitElement.hpp:524
double getAltRate() const
获取高度变化率
定义 OrbitElement.hpp:530
混合球坐标轨道根数
定义 OrbitElement.hpp:442
double azi_
航迹方位角 [rad]
定义 OrbitElement.hpp:449
double getLon() const
获取大地经度
定义 OrbitElement.hpp:453
double getVel() const
获取速度大小
定义 OrbitElement.hpp:471
double getVertFltPathAng() const
获取垂直飞行航迹角(水平飞行航迹角的余角)
定义 OrbitElement.hpp:465
double getAlt() const
获取高度
定义 OrbitElement.hpp:459
double getFltPathAzi() const
获取航迹方位角
定义 OrbitElement.hpp:468
double lat_
大地纬度 [rad] (天体固连系)
定义 OrbitElement.hpp:446
double fpa_
水平航迹角 [rad]
定义 OrbitElement.hpp:448
double alt_
高度 [m] (相对参考椭球, 沿椭球法线)
定义 OrbitElement.hpp:447
double getFltPathAng() const
获取飞行航迹角(水平飞行航迹角)
定义 OrbitElement.hpp:462
double lon_
大地经度 [rad] (天体固连系)
定义 OrbitElement.hpp:445
double v_
惯性速度大小 [m/s]
定义 OrbitElement.hpp:450
double getLat() const
获取大地纬度
定义 OrbitElement.hpp:456
改进春分点轨道根数, 180度奇异
定义 OrbitElement.hpp:288
double h_
h = tan(i/2)*cos(RAAN)
定义 OrbitElement.hpp:294
double k_
k = tan(i/2)*sin(RAAN)
定义 OrbitElement.hpp:295
double trueLongitude() const
真经度
定义 OrbitElement.hpp:299
double L_
L = RAAN + argper + trueA (真经度)
定义 OrbitElement.hpp:296
double g_
g = e*sin(argper + RAAN)
定义 OrbitElement.hpp:293
double f_
f = e*cos(argper + RAAN)
定义 OrbitElement.hpp:292
double p_
p = a(1-e^2) 半通径
定义 OrbitElement.hpp:291
修正轨道根数
定义 OrbitElement.hpp:154
double rp_
近拱点半径
定义 OrbitElement.hpp:157
double getMeanMotion(double gm) const
计算平均角速度
定义 OrbitElement.hpp:168
double getA() const
计算半长轴
定义 OrbitElement.hpp:235
double getLAN(Axes *inertialAxes, const TimePoint &timeOfAscNodePassage, Axes *bodyFixedAxes) const
计算升交点经度
定义 OrbitElement.hpp:228
double trueA_
真近点角
定义 OrbitElement.hpp:162
double getSMA() const
计算半长轴
定义 OrbitElement.hpp:165
double getMeanLongitude() const
计算平均经度
定义 OrbitElement.hpp:213
double getArgLat() const
计算纬度幅角
定义 OrbitElement.hpp:207
double getLongitudeOfPeri() const
计算近拱点经度
定义 OrbitElement.hpp:210
double getEccAnomaly() const
计算偏近点角
定义 OrbitElement.hpp:204
double getRAAN() const
计算升交点赤经
定义 OrbitElement.hpp:192
double getTimePastAscNode(double gm) const
计算过升交点后经过的时间
定义 OrbitElement.hpp:219
double getPeriAlt(double bodyRadius) const
计算近拱点高度
定义 OrbitElement.hpp:183
double getP() const
计算半通径
定义 OrbitElement.hpp:238
double getPeriod(double gm) const
计算周期
定义 OrbitElement.hpp:171
double e_
偏心率
定义 OrbitElement.hpp:158
double getApoRad() const
计算远拱点半径
定义 OrbitElement.hpp:174
double argper_
近拱点角
定义 OrbitElement.hpp:161
double getTimePastPeri(double gm) const
计算过近地点后经过的时间
定义 OrbitElement.hpp:216
double getMeanAnomaly() const
计算平近点角
定义 OrbitElement.hpp:201
double getPeriRad() const
计算近拱点半径
定义 OrbitElement.hpp:180
double getApoAlt(double bodyRadius) const
计算远拱点高度
定义 OrbitElement.hpp:177
double raan_
升交点赤经
定义 OrbitElement.hpp:160
double getEcc() const
计算偏心率
定义 OrbitElement.hpp:186
double getArgPeri() const
计算近拱点幅角
定义 OrbitElement.hpp:195
double getInc() const
计算轨道倾角
定义 OrbitElement.hpp:189
double i_
轨道倾角
定义 OrbitElement.hpp:159
TimePoint getTimeOfAscNodePassage(const TimePoint &stateEpoch, double gm) const
计算过升交点时刻
定义 OrbitElement.hpp:222
double getTrueAnomaly() const
计算真近点角
定义 OrbitElement.hpp:198
经典轨道根数
定义 OrbitElement.hpp:111
double a_
长半轴
定义 OrbitElement.hpp:114
double argper_
近拱点角
定义 OrbitElement.hpp:118
double trueA_
真近点角
定义 OrbitElement.hpp:119
double raan_
升交点赤经
定义 OrbitElement.hpp:117
double i_
轨道倾角
定义 OrbitElement.hpp:116
double getMeanMotion(double gm) const
计算平均角速度变化率
定义 OrbitElement.hpp:122
double e_
偏心率
定义 OrbitElement.hpp:115
球坐标轨道根数
定义 OrbitElement.hpp:386
double getFltPathAzi() const
获取航迹方位角
定义 OrbitElement.hpp:409
double v_
速度大小 [m/s]
定义 OrbitElement.hpp:394
double azi_
航迹方位角 [rad]
定义 OrbitElement.hpp:393
double dec_
赤纬 [rad]
定义 OrbitElement.hpp:390
double getFltPathAng() const
获取飞行航迹角(水平飞行航迹角)
定义 OrbitElement.hpp:406
double r_
地心距 [m]
定义 OrbitElement.hpp:391
double getRadius() const
获取地心距
定义 OrbitElement.hpp:403
double getRA() const
获取赤经
定义 OrbitElement.hpp:397
double ra_
赤经 [rad]
定义 OrbitElement.hpp:389
double getVel() const
获取速度大小
定义 OrbitElement.hpp:412
double getDec() const
获取赤纬
定义 OrbitElement.hpp:400
double fpa_
航迹角 [rad]
定义 OrbitElement.hpp:392
绝对时间点
定义 TimePoint.hpp:108
double aPeriRadToApoRad(double perigeeRad, double eccentricity)
近地点半径转换为远地点半径
定义 OrbitParam.cpp:316
double aPeriRadToMeanMotion(double perigeeRad, double eccentricity, double gm)
近地点半径转换为平均角速度
定义 OrbitParam.cpp:321
double aRAANToLAN(double raan, Axes *inertialAxes, const TimePoint &timeOfAscNodePassage, Axes *bodyFixedAxes)
升交点赤经转换为升交点经度
定义 OrbitParam.cpp:505
double aSMAToMeanMotion(double semiMajorAxis, double gm)
长半轴转换为平均角速度
定义 OrbitParam.cpp:384
double aTrueToMean(double trueAnomaly, double eccentricity)
真近点角转换为平近点角
定义 OrbitParam.cpp:487
A_ALWAYS_INLINE double aArgPeriToLongPeri(double argPeri, double raan)
近地点幅角转换为近地点经度
定义 OrbitParam.hpp:593
double aTrueToTimePastAscNode(double trueAnomaly, double argPeri, double semiMajorAxis, double eccentricity, double gm)
真近点角转换为过升交点后时间
定义 OrbitParam.cpp:492
errc_t aCartToModOrbElem(const Vector3d &pos, const Vector3d &vel, double gm, ModOrbElem &modOrb)
直角坐标转换为修正轨道根数(类引用版本)
定义 OrbitElement.cpp:1071
double aTrueToEcc(double f, double e)
真近点角转换为偏近点角
定义 OrbitParam.cpp:457
double aTrueToArgLat(double trueAnomaly, double argPeri)
真近点角转换为纬度幅角
定义 OrbitParam.hpp:653
EBPlaneRefVector
B平面参考向量类型
定义 OrbitElement.hpp:957
double aTrueToTimePastPeri(double trueAnomaly, double semiMajorAxis, double eccentricity, double gm)
真近点角转换为过近心点后时间
定义 OrbitParam.cpp:497
double aPeriRadToApoAlt(double perigeeRad, double eccentricity, double bodyRadius)
近地点半径转换为远地点高度
定义 OrbitParam.cpp:312
@ eBodyPole
天体的自转轴
@ eBodyOrbitNormal
天体绕其父天体运动的轨道法向
@ eSpacecraftOrbitNormal
航天器自身的轨道法向
constexpr double kTwoPI
2*PI
定义 Constants.hpp:55
constexpr double kHalfPI
0.5*kAsPI
定义 Constants.hpp:57
Unit h
小时
定义 Unit.cpp:469
Unit L
升
定义 Unit.cpp:488
Unit g
克
定义 Unit.cpp:473
@ eCustom
自定义视场