Aerospace Control Framework 1.0
sc_suborb.h
Go to the documentation of this file.
1/*
2 * sc_suborb.h
3 *
4 * Copyright 2007, 2021 Princeton Satellite Systems. All rights reserved.
5 *
6 * Suborbital vehicle utility functions.
7 */
8
14#ifndef __SC_SUBORB__
15#define __SC_SUBORB__
16
17#include <math.h>
18#ifdef AS_OS_WINDOWS
19#include "matrixlib.h"
20#else
21#include <MatrixLib/MatrixLib.h>
22#endif
23
24#include <SCControl/sc_constants.h>
25
26extern "C++"
27{
28
30bool azimuth_launch_angle (double lat0, double lon0, double latF, double lonF,
31 double jd, double tof, bool deg,
32 double &az, double &inc, double &ra, double &m0, double &mF);
33
35ml_matrix ecef_to_eci (double loc_sid_time);
36
38ml_matrix eci_to_orbit_plane (const ml_matrix &r, const ml_matrix &n);
39
41ml_matrix lla_to_ecef (const ml_matrix &lla, double rP);
42
44ml_matrix ecef_to_lla (const ml_matrix &ecef, double rP);
45
47void suborb_distance (double lat0, double lon0, double latF, double lonF,
48 double &angleDist, double &range);
49
51void suborb_lambert (double tFDes, double h0, double hF, double angleDist, double tol, double maxIter,
52 double &gamma, double &v, double &tF);
53
55void suborb_velocity (double gamma, double h0, double hF, double angleDist,
56 double &v, double &tF);
57
59ml_matrix orbit_normal_from_elements (double inc, double ra);
60
61void optimal_intercept(const ml_matrix &rA0,const ml_matrix &vA0,const ml_matrix &lla0,double jd0,double minDist,double vBurnout,
62 double &vDes,double &gammaDes,double &t0F,ml_matrix &llaF,double &tLaunch,double &jdLaunch);
63
64ml_matrix adjust_eci_for_time(double jD0,double jDF,const ml_matrix &ECI0);
65
66}
67
68#endif
void optimal_intercept(const ml_matrix &rA0, const ml_matrix &vA0, const ml_matrix &lla0, double jd0, double minDist, double vBurnout, double &vDes, double &gammaDes, double &t0F, ml_matrix &llaF, double &tLaunch, double &jdLaunch)
Computes the optimal intercept time and velocity.
Definition: sc_suborb.cc:393
ml_matrix orbit_normal_from_elements(double inc, double ra)
Computes the orbit normal from inclination and right ascension.
Definition: sc_suborb.cc:362
ml_matrix ecef_to_eci(double loc_sid_time)
Compute the transformation matrix from ECEF to ECI.
Definition: sc_suborb.cc:153
ml_matrix adjust_eci_for_time(double jD0, double jDF, const ml_matrix &ECI0)
Computes the optimal intercept time and velocity.
Definition: sc_suborb.cc:532
void suborb_distance(double lat0, double lon0, double latF, double lonF, double &angleDist, double &range)
Compute the minimum angular distance around the Earth that connects two points.
Definition: sc_suborb.cc:232
void suborb_lambert(double tFDes, double h0, double hF, double angleDist, double tol, double maxIter, double &gamma, double &v, double &tF)
Find initial velocity and flight path angle that gives desired distance.
Definition: sc_suborb.cc:262
bool azimuth_launch_angle(double lat0, double lon0, double latF, double lonF, double jd, double tof, bool deg, double &az, double &inc, double &ra, double &m0, double &mF)
Compute the azimuth angle at the launch site for an orbital plane that intersects the launch location...
Definition: sc_suborb.cc:44
ml_matrix lla_to_ecef(const ml_matrix &lla, double rP)
Convert from LLA to ECEF.
Definition: sc_suborb.cc:187
ml_matrix ecef_to_lla(const ml_matrix &ecef, double rP)
Convert from ECEF to LLA.
Definition: sc_suborb.cc:207
ml_matrix eci_to_orbit_plane(const ml_matrix &r, const ml_matrix &n)
Compute the rotation matrix from ECI to orbit plane.
Definition: sc_suborb.cc:172
void suborb_velocity(double gamma, double h0, double hF, double angleDist, double &v, double &tF)
Compute initial velocity and flight time for a suborb trajectory.
Definition: sc_suborb.cc:329