🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
OrbitParam.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24
25AST_NAMESPACE_BEGIN
26
79inline double aApoAltToApoRad (double apogeeAlt, double bodyRadius);
80
87AST_CORE_CAPI double aApoAltToMeanMotion (double apogeeAlt, double eccentricity, double bodyRadius, double gm);
88
94AST_CORE_CAPI double aApoAltToPeriAlt (double apogeeAlt, double eccentricity, double bodyRadius);
95
101AST_CORE_CAPI double aApoAltToPeriRad (double apogeeAlt, double eccentricity, double bodyRadius);
102
109AST_CORE_CAPI double aApoAltToPeriod (double apogeeAlt, double eccentricity, double bodyRadius, double gm);
110
116AST_CORE_CAPI double aApoAltToSMA (double apogeeAlt, double eccentricity, double bodyRadius);
117
122AST_CORE_CAPI double aApoRadToApoAlt (double apogeeRad, double bodyRadius);
123
129AST_CORE_CAPI double aApoRadToMeanMotion (double apogeeRad, double eccentricity, double gm);
130
136AST_CORE_CAPI double aApoRadToPeriAlt (double apogeeRad, double eccentricity, double bodyRadius);
137
143AST_CORE_CAPI double aApoRadToPeriod (double apogeeRad, double eccentricity, double gm);
144
149AST_CORE_CAPI double aApoRadToPeriRad (double apogeeRad, double eccentricity);
150
151
156inline double aApoRadToEcc(double apogeeRad, double semiMajorAxis);
157
162AST_CORE_CAPI double aApoRadToSMA (double apogeeRad, double eccentricity);
163
168AST_CORE_CAPI double aEccToMean (double eccAnomaly, double eccentricity);
169
174AST_CORE_CAPI double aEccToTrue (double eccAnomaly, double eccentricity);
175
183AST_CORE_CAPI double aEccToTimePastAscNode (double eccAnomaly, double argPeri, double semiMajorAxis, double eccentricity, double gm);
184
191AST_CORE_CAPI double aEccToTimePastPeri (double eccAnomaly, double semiMajorAxis, double eccentricity, double gm);
192
199AST_CORE_CAPI double aMeanMotionToApoAlt (double meanMotion, double eccentricity, double bodyRadius, double gm);
200
206AST_CORE_CAPI double aMeanMotionToApoRad (double meanMotion, double eccentricity, double gm);
207
214AST_CORE_CAPI double aMeanMotionToPeriAlt (double meanMotion, double eccentricity, double bodyRadius, double gm);
215
221AST_CORE_CAPI double aMeanMotionToPeriRad (double meanMotion, double eccentricity, double gm);
222
226AST_CORE_CAPI double aMeanMotionToPeriod (double meanMotn);
227
232AST_CORE_CAPI double aMeanMotionToSMA (double meanMotn, double gm);
233
240AST_CORE_CAPI double aMeanToEcc (double meanAnomaly, double eccentricity, double eps = 1e-14, int maxIter = 100);
241
249AST_CORE_CAPI double aMeanToTimePastAscNode (double meanAnomaly, double argPeri, double semiMajorAxis, double eccentricity, double gm);
250
256AST_CORE_CAPI double aMeanToTimePastPeri (double meanAnomaly, double semiMajorAxis, double gm);
257
264AST_CORE_CAPI double aMeanToTrue (double meanAnomaly, double eccentricity, double eps = 1e-14, int maxIter = 100);
265
271AST_CORE_CAPI double aPeriAltToApoAlt (double perigeeAlt, double eccentricity, double bodyRadius);
272
278AST_CORE_CAPI double aPeriAltToApoRad (double perigeeAlt, double eccentricity, double bodyRadius);
279
286AST_CORE_CAPI double aPeriAltToMeanMotion (double perigeeAlt, double eccentricity, double bodyRadius, double gm);
287
292AST_CORE_CAPI double aPeriAltToPeriRad (double perigeeAlt, double bodyRadius);
293
300AST_CORE_CAPI double aPeriAltToPeriod (double perigeeAlt, double eccentricity, double bodyRadius, double gm);
301
307AST_CORE_CAPI double aPeriAltToSMA (double perigeeAlt, double eccentricity, double bodyRadius);
308
314AST_CORE_CAPI double aPeriRadToApoAlt (double perigeeRad, double eccentricity, double bodyRadius);
315
320AST_CORE_CAPI double aPeriRadToApoRad (double perigeeRad, double eccentricity);
321
327AST_CORE_CAPI double aPeriRadToMeanMotion (double perigeeRad, double eccentricity, double gm);
328
333AST_CORE_CAPI double aPeriRadToPeriAlt (double perigeeRad, double bodyRadius);
334
340AST_CORE_CAPI double aPeriRadToPeriod (double perigeeRad, double eccentricity, double gm);
341
346AST_CORE_CAPI double aPeriRadToSMA (double perigeeRad, double eccentricity);
347
348
353inline double aPeriRadToEcc(double perigeeRad, double semiMajorAxis);
354
361AST_CORE_CAPI double aPeriodToApoAlt (double period, double eccentricity, double bodyRadius, double gm);
362
368AST_CORE_CAPI double aPeriodToApoRad (double period, double eccentricity, double gm);
369
373AST_CORE_CAPI double aPeriodToMeanMotion (double period);
374
381AST_CORE_CAPI double aPeriodToPeriAlt (double period, double eccentricity, double bodyRadius, double gm);
382
388AST_CORE_CAPI double aPeriodToPeriRad (double period, double eccentricity, double gm);
389
394AST_CORE_CAPI double aPeriodToSMA (double period, double gm);
395
400AST_CORE_CAPI double aPeriRadApoRadToEcc (double perigeeRad, double apogeeRad);
401
407AST_CORE_CAPI double aPeriAltApoAltToEcc (double perigeeAlt, double apogeeAlt, double bodyRadius);
408
414AST_CORE_CAPI double aSMAToApoAlt (double semiMajorAxis, double eccentricity, double bodyRadius);
415
420AST_CORE_CAPI double aSMAToApoRad (double semiMajorAxis, double eccentricity);
421
426AST_CORE_CAPI double aSMAToMeanMotion (double semiMajorAxis, double gm);
427
433AST_CORE_CAPI double aSMAToPeriAlt (double semiMajorAxis, double eccentricity, double bodyRadius);
434
439inline double aSMAToPeriRad (double semiMajorAxis, double eccentricity);
440
445AST_CORE_CAPI double aSMAToPeriod (double semiMajorAxis, double gm);
446
451AST_CORE_CAPI double aSMAToSMinAx (double semiMajorAxis, double eccentricity);
452
457AST_CORE_CAPI double aSMAToSParam (double semiMajorAxis, double eccentricity);
458
463AST_CORE_CAPI double aSMinAxToSMA (double semiminorAxis, double eccentricity);
464
474AST_CORE_CAPI double aTimePastAscNodeToEcc (double TimePastAscNode, double argPeri, double semiMajorAxis, double eccentricity, double gm, double eps = 1e-14, int maxIter = 100);
475
483AST_CORE_CAPI double aTimePastAscNodeToMean (double TimePastAscNode, double argPeri, double semiMajorAxis, double eccentricity, double gm);
484
492AST_CORE_CAPI double aTimePastAscNodeToTimePastPeri (double TimePastAscNode, double argPeri, double semiMajorAxis, double eccentricity, double gm);
493
503AST_CORE_CAPI double aTimePastAscNodeToTrue (double TimePastAscNode, double argPeri, double semiMajorAxis, double eccentricity, double gm, double eps = 1e-14, int maxIter = 100);
504
513AST_CORE_CAPI double aTimePastPeriToEcc (double TimePastPeri, double semiMajorAxis, double eccentricity, double gm, double eps = 1e-14, int maxIter = 100);
514
520AST_CORE_CAPI double aTimePastPeriToMean (double TimePastPeri, double semiMajorAxis, double gm);
521
530AST_CORE_CAPI double aTimePastPeriToTrue (double TimePastPeri, double semiMajorAxis, double eccentricity, double gm, double eps = 1e-14, int maxIter = 100);
531
539AST_CORE_CAPI double aTimePastPeriToTimePastAscNode (double TimePastPeri, double argPeri, double semiMajorAxis, double eccentricity, double gm);
540
545AST_CORE_CAPI double aTrueToEcc (double trueAnomaly, double eccentricity);
546
551AST_CORE_CAPI double aTrueToMean (double trueAnomaly, double eccentricity);
552
560AST_CORE_CAPI double aTrueToTimePastAscNode (double trueAnomaly, double argPeri, double semiMajorAxis, double eccentricity, double gm);
561
568AST_CORE_CAPI double aTrueToTimePastPeri (double trueAnomaly, double semiMajorAxis, double eccentricity, double gm);
569
574inline double aTrueToArgLat (double trueAnomaly, double argPeri);
575
580inline double aArgLatToTrue(double argLat, double argPeri);
581
587AST_CORE_CAPI double aTrueToTrueLong (double trueAnomaly, double argPeri, double raan);
588
593AST_CORE_CAPI double aArgPeriToLongPeri (double argPeri, double raan);
594
595
602AST_CORE_CAPI double aRAANToLAN(double raan, Axes* inertialAxes, const TimePoint& timeOfAscNodePassage, Axes* bodyFixedAxes);
603
604
611AST_CORE_CAPI double aLANToRAAN(double lan, Axes* bodyFixedAxes, const TimePoint& timeOfAscNodePassage, Axes* inertialAxes);
612
613
620AST_CORE_CAPI double aRepeatGroundTrackSMA (int daysToRepeat, int revsToRepeat, double gm, double bodyRotRate);
621
625AST_CORE_CAPI double aEccToFlat (double eccentricity);
626
630AST_CORE_CAPI double aFlatToEcc (double flatFactor);
631
632
633inline double aApoRadToEcc(double apogeeRad, double semiMajorAxis)
634{
635 return (apogeeRad - semiMajorAxis) / semiMajorAxis;
636}
637
638inline double aPeriRadToEcc(double perigeeRad, double semiMajorAxis)
639{
640 return (semiMajorAxis - perigeeRad) / semiMajorAxis;
641}
642
643inline double aApoAltToApoRad(double apogeeAlt, double bodyRadius)
644{
645 return apogeeAlt + bodyRadius;
646}
647
648inline double aSMAToPeriRad(double semiMajorAxis, double eccentricity)
649{
650 return semiMajorAxis * (1 - eccentricity);
651}
652
653inline double aTrueToArgLat(double trueAnomaly, double argPeri)
654{
655 return trueAnomaly + argPeri;
656}
657
658inline double aArgLatToTrue(double argLat, double argPeri)
659{
660 return argLat - argPeri;
661}
662
663AST_NAMESPACE_END
double aApoRadToPeriRad(double apogeeRad, double eccentricity)
远地点半径转换为近地点半径
定义 OrbitParam.cpp:98
double aApoRadToPeriAlt(double apogeeRad, double eccentricity, double bodyRadius)
远地点半径转换为近地点高度
定义 OrbitParam.cpp:86
double aPeriodToPeriAlt(double period, double eccentricity, double bodyRadius, double gm)
轨道周期转换为近地点高度
定义 OrbitParam.cpp:353
double aPeriAltToMeanMotion(double perigeeAlt, double eccentricity, double bodyRadius, double gm)
近地点高度转换为平均角速度
定义 OrbitParam.cpp:294
double aRepeatGroundTrackSMA(int daysToRepeat, int revsToRepeat, double gm, double bodyRotRate)
计算地面轨迹重复所需的轨道长半轴
定义 OrbitParam.cpp:533
double aPeriRadToApoRad(double perigeeRad, double eccentricity)
近地点半径转换为远地点半径
定义 OrbitParam.cpp:316
double aPeriRadToMeanMotion(double perigeeRad, double eccentricity, double gm)
近地点半径转换为平均角速度
定义 OrbitParam.cpp:321
double aTimePastPeriToMean(double TimePastPeri, double semiMajorAxis, double gm)
过近心点后时间转换为平近点角
定义 OrbitParam.cpp:442
double aRAANToLAN(double raan, Axes *inertialAxes, const TimePoint &timeOfAscNodePassage, Axes *bodyFixedAxes)
升交点赤经转换为升交点经度
定义 OrbitParam.cpp:511
double aPeriRadToSMA(double perigeeRad, double eccentricity)
近地点半径转换为长半轴
定义 OrbitParam.cpp:335
double aPeriAltToPeriRad(double perigeeAlt, double bodyRadius)
近地点高度转换为近地点半径
定义 OrbitParam.cpp:299
double aSMAToMeanMotion(double semiMajorAxis, double gm)
长半轴转换为平均角速度
定义 OrbitParam.cpp:384
double aTrueToMean(double trueAnomaly, double eccentricity)
真近点角转换为平近点角
定义 OrbitParam.cpp:484
double aPeriodToApoAlt(double period, double eccentricity, double bodyRadius, double gm)
轨道周期转换为远地点高度
定义 OrbitParam.cpp:339
double aMeanMotionToApoRad(double meanMotion, double eccentricity, double gm)
平均角速度转换为远地点半径
定义 OrbitParam.cpp:182
double aTrueToTrueLong(double trueAnomaly, double argPeri, double raan)
真近点角转换为真近点经度
定义 OrbitParam.cpp:501
double aMeanMotionToSMA(double meanMotn, double gm)
平均角速度转换为长半轴
定义 OrbitParam.cpp:202
double aSMAToSParam(double semiMajorAxis, double eccentricity)
长半轴转换为半通径参数
定义 OrbitParam.cpp:403
double aEccToTimePastPeri(double E, double semiMajorAxis, double e, double gm)
偏近点角转换为过近心点后时间
定义 OrbitParam.cpp:155
double aApoAltToApoRad(double apogeeAlt, double bodyRadius)
远地点高度转换为远地点半径
定义 OrbitParam.hpp:643
double aEccToFlat(double eccentricity)
偏心率转换为扁率
定义 OrbitParam.cpp:539
double aTimePastAscNodeToTrue(double TimePastAscNode, double argPeri, double semiMajorAxis, double eccentricity, double gm, double eps, int maxIter)
过升交点后时间转换为真近点角
定义 OrbitParam.cpp:430
double aLANToRAAN(double lan, Axes *bodyFixedAxes, const TimePoint &timeOfAscNodePassage, Axes *inertialAxes)
升交点经度转换为升交点赤经
定义 OrbitParam.cpp:522
double aMeanMotionToPeriod(double meanMotn)
平均角速度转换为轨道周期
定义 OrbitParam.cpp:198
double aMeanToTimePastAscNode(double meanAnomaly, double argPeri, double semiMajorAxis, double eccentricity, double gm)
平近点角转换为过升交点后时间
定义 OrbitParam.cpp:273
double aTrueToTimePastAscNode(double trueAnomaly, double argPeri, double semiMajorAxis, double eccentricity, double gm)
真近点角转换为过升交点后时间
定义 OrbitParam.cpp:489
double aMeanToTimePastPeri(double meanAnomaly, double semiMajorAxis, double gm)
平近点角转换为过近心点后时间
定义 OrbitParam.cpp:277
double aPeriRadToEcc(double perigeeRad, double semiMajorAxis)
近地点半径转换为偏心率
定义 OrbitParam.hpp:638
double aTimePastAscNodeToEcc(double TimePastAscNode, double argPeri, double semiMajorAxis, double eccentricity, double gm, double eps, int maxIter)
过升交点后时间转换为偏近点角
定义 OrbitParam.cpp:412
double aApoRadToEcc(double apogeeRad, double semiMajorAxis)
远地点半径转换为偏心率
定义 OrbitParam.hpp:633
double aMeanMotionToPeriRad(double meanMotion, double eccentricity, double gm)
平均角速度转换为近地点半径
定义 OrbitParam.cpp:193
double aPeriodToMeanMotion(double period)
轨道周期转换为平均角速度
定义 OrbitParam.cpp:349
double aApoAltToSMA(double apogeeAlt, double eccentricity, double bodyRadius)
远地点高度转换为长半轴
定义 OrbitParam.cpp:69
double aApoRadToSMA(double apogeeRad, double eccentricity)
远地点半径转换为长半轴
定义 OrbitParam.cpp:104
double aApoAltToPeriRad(double apogeeAlt, double eccentricity, double bodyRadius)
远地点高度转换为近地点半径
定义 OrbitParam.cpp:57
double aTimePastPeriToTimePastAscNode(double TimePastPeri, double argPeri, double semiMajorAxis, double eccentricity, double gm)
过近心点后时间转换为过升交点后时间
定义 OrbitParam.cpp:451
double aPeriRadToPeriod(double perigeeRad, double eccentricity, double gm)
近地点半径转换为轨道周期
定义 OrbitParam.cpp:330
double aEccToMean(double E, double e)
偏近点角转换为平近点角
定义 OrbitParam.cpp:110
double aApoRadToPeriod(double apogeeRad, double eccentricity, double gm)
远地点半径转换为轨道周期
定义 OrbitParam.cpp:92
double aPeriAltToApoAlt(double perigeeAlt, double eccentricity, double bodyRadius)
近地点高度转换为远地点高度
定义 OrbitParam.cpp:286
double aSMinAxToSMA(double semiminorAxis, double eccentricity)
短半轴转换为长半轴
定义 OrbitParam.cpp:408
double aArgLatToTrue(double argLat, double argPeri)
纬度幅角转换为真近点角
定义 OrbitParam.hpp:658
double aEccToTimePastAscNode(double E, double argPeri, double semiMajorAxis, double e, double gm)
偏近点角转换为过升交点后时间
定义 OrbitParam.cpp:150
double aPeriRadToPeriAlt(double perigeeRad, double bodyRadius)
近地点半径转换为近地点高度
定义 OrbitParam.cpp:326
double aEccToTrue(double E, double e)
偏近点角转换为真近点角
定义 OrbitParam.cpp:130
double aPeriAltApoAltToEcc(double perigeeAlt, double apogeeAlt, double bodyRadius)
根据近地点和远地点高度计算偏心率
定义 OrbitParam.cpp:371
double aTrueToEcc(double f, double e)
真近点角转换为偏近点角
定义 OrbitParam.cpp:457
double aTimePastPeriToEcc(double TimePastPeri, double semiMajorAxis, double eccentricity, double gm, double eps, int maxIter)
过近心点后时间转换为偏近点角
定义 OrbitParam.cpp:437
double aPeriodToApoRad(double period, double eccentricity, double gm)
轨道周期转换为远地点半径
定义 OrbitParam.cpp:344
double aPeriAltToPeriod(double perigeeAlt, double eccentricity, double bodyRadius, double gm)
近地点高度转换为轨道周期
定义 OrbitParam.cpp:303
double aSMAToApoAlt(double semiMajorAxis, double eccentricity, double bodyRadius)
长半轴转换为远地点高度
定义 OrbitParam.cpp:376
double aTrueToArgLat(double trueAnomaly, double argPeri)
真近点角转换为纬度幅角
定义 OrbitParam.hpp:653
double aApoAltToPeriod(double apogeeAlt, double eccentricity, double bodyRadius, double gm)
远地点高度转换为轨道周期
定义 OrbitParam.cpp:62
double aMeanToTrue(double meanAnomaly, double eccentricity, double eps, int maxIter)
平近点角转换为真近点角
定义 OrbitParam.cpp:281
double aApoRadToApoAlt(double apogeeRad, double bodyRadius)
远地点半径转换为远地点高度
定义 OrbitParam.cpp:75
double aSMAToPeriRad(double semiMajorAxis, double eccentricity)
长半轴转换为近地点半径
定义 OrbitParam.hpp:648
double aTimePastAscNodeToTimePastPeri(double TimePastAscNode, double argPeri, double semiMajorAxis, double eccentricity, double gm)
过升交点后时间转换为过近心点后时间
定义 OrbitParam.cpp:424
double aTimePastAscNodeToMean(double TimePastAscNode, double argPeri, double semiMajorAxis, double eccentricity, double gm)
过升交点后时间转换为平近点角
定义 OrbitParam.cpp:418
double aSMAToPeriod(double semiMajorAxis, double gm)
长半轴转换为轨道周期
定义 OrbitParam.cpp:393
double aSMAToPeriAlt(double semiMajorAxis, double eccentricity, double bodyRadius)
长半轴转换为近地点高度
定义 OrbitParam.cpp:388
double aPeriodToPeriRad(double period, double eccentricity, double gm)
轨道周期转换为近地点半径
定义 OrbitParam.cpp:358
double aMeanMotionToPeriAlt(double meanMotion, double eccentricity, double bodyRadius, double gm)
平均角速度转换为近地点高度
定义 OrbitParam.cpp:187
double aApoAltToMeanMotion(double apogeeAlt, double eccentricity, double bodyRadius, double gm)
远地点高度转换为平均角速度
定义 OrbitParam.cpp:45
double aFlatToEcc(double flatFactor)
扁率转换为偏心率
定义 OrbitParam.cpp:544
double aPeriRadApoRadToEcc(double perigeeRad, double apogeeRad)
根据近地点和远地点半径计算偏心率
定义 OrbitParam.cpp:367
double aTrueToTimePastPeri(double trueAnomaly, double semiMajorAxis, double eccentricity, double gm)
真近点角转换为过近心点后时间
定义 OrbitParam.cpp:494
double aApoAltToPeriAlt(double apogeeAlt, double eccentricity, double bodyRadius)
远地点高度转换为近地点高度
定义 OrbitParam.cpp:52
double aMeanToEcc(double M, double e, double eps, int maxIter)
平近点角转换为偏近点角(使用牛顿迭代法)
定义 OrbitParam.cpp:208
double aArgPeriToLongPeri(double argPeri, double raan)
近地点幅角转换为近地点经度
定义 OrbitParam.cpp:506
double aPeriAltToSMA(double perigeeAlt, double eccentricity, double bodyRadius)
近地点高度转换为长半轴
定义 OrbitParam.cpp:308
double aPeriAltToApoRad(double perigeeAlt, double eccentricity, double bodyRadius)
近地点高度转换为远地点半径
定义 OrbitParam.cpp:290
double aMeanMotionToApoAlt(double meanMotion, double eccentricity, double bodyRadius, double gm)
平均角速度转换为远地点高度
定义 OrbitParam.cpp:176
double aSMAToSMinAx(double semiMajorAxis, double eccentricity)
长半轴转换为短半轴
定义 OrbitParam.cpp:398
double aApoRadToMeanMotion(double apogeeRad, double eccentricity, double gm)
远地点半径转换为平均角速度
定义 OrbitParam.cpp:80
double aTimePastPeriToTrue(double TimePastPeri, double semiMajorAxis, double eccentricity, double gm, double eps, int maxIter)
过近心点后时间转换为真近点角
定义 OrbitParam.cpp:446
double aPeriodToSMA(double period, double gm)
轨道周期转换为长半轴
定义 OrbitParam.cpp:363
double aSMAToApoRad(double semiMajorAxis, double eccentricity)
长半轴转换为远地点半径
定义 OrbitParam.cpp:380
double aPeriRadToApoAlt(double perigeeRad, double eccentricity, double bodyRadius)
近地点半径转换为远地点高度
定义 OrbitParam.cpp:312