Spacecraft Control Bundle 1
ons_orbit_propagation.h
Go to the documentation of this file.
1/*
2 * sc_orbit_propagation.h
3 *
4 * Copyright 2008, Princeton Satellite Systems. All rights reserved.
5 *
6 * Orbit propagation class.
7 *
8 */
9
25#ifdef AS_OS_WINDOWS
26#include "matrixlib.h"
27#else
28#include <MatrixLib/MatrixLib.h>
29#endif
30#include <SCControl/SCControl.h>
31
32
33#ifndef __ORBIT_PROPAGATION__
34#define __ORBIT_PROPAGATION__
35
38public:
44 void set_integrator_time_info (ml_matrix t, double jd_start );
46 void set_observation_time_info (ml_matrix tObs );
48 void set_acceleration_info (ml_matrix tAcc, ml_matrix accel );
50 void merge_integrator_time (ml_matrix tNew );
52 void set_spherical_harmonic_info (double radius, ml_matrix s, ml_matrix c, ml_matrix j, double mu, int z_harm, int t_harm, int spherical );
54 void set_solar_pressure_info ( double area );
56 void set_initial_values (const ml_matrix &x0);
58 void set_ephemeris_info ( const ml_matrix& mu, const ml_matrix &planet_index, char* frame, int observer );
60 ml_matrix propagate ();
62 void print ();
63
65 ml_matrix right_hand_side( ml_matrix x, double t, ml_matrix appAcc );
66
67private:
69 ml_matrix t;
71 double jd;
73 ml_matrix tObs;
75 ml_matrix tAcc;
77 ml_matrix acc;
79 ml_matrix x;
81 int order;
83 int spherical_harmonic_on;
85 int solar_pressure_on;
87 double area;
89 ml_matrix mu;
91 ml_matrix planet_index;
93 gravity_t *gravity_model;
95 char* frame;
97 int observer;
99 int center;
100
101
102 galilean_moons g;
103
104 int n_galilean_moons;
105
106
107};
108
109#endif
Propagate an orbit.
Definition: ons_orbit_propagation.h:37
void merge_integrator_time(ml_matrix tNew)
Merges a new time vector with the existing integrator times.
void set_integrator_time_info(ml_matrix t, double jd_start)
Sets the integrator times and julian date.
ml_matrix propagate()
Updates the current estimate.
void set_solar_pressure_info(double area)
Sets the solar pressure model.
void set_acceleration_info(ml_matrix tAcc, ml_matrix accel)
Sets the acceleration history and times.
void set_spherical_harmonic_info(double radius, ml_matrix s, ml_matrix c, ml_matrix j, double mu, int z_harm, int t_harm, int spherical)
Sets the gravity model.
void print()
Updates the current estimate.
ml_matrix right_hand_side(ml_matrix x, double t, ml_matrix appAcc)
Dynamical equations right hand side.
orbit_propagation()
Constructor.
void set_observation_time_info(ml_matrix tObs)
Sets the observation times.
void set_ephemeris_info(const ml_matrix &mu, const ml_matrix &planet_index, char *frame, int observer)
Sets the ephemeris.
void set_initial_values(const ml_matrix &x0)
Sets the initial state.
~orbit_propagation()
Destructor.