Class: Korba::Propagator::Kepler
- Inherits:
-
Object
- Object
- Korba::Propagator::Kepler
- Includes:
- OrbitUtils
- Defined in:
- lib/korba/propagator/kepler.rb
Instance Method Summary collapse
-
#initialize(initial_kep, disable_j2: false) ⇒ Kepler
constructor
A new instance of Kepler.
- #propagate(seconds_after_epoch) ⇒ Object
Methods included from OrbitUtils
#deg_to_rad, #distance, #eccentric_anomaly, #height_at_apogee, #height_at_perigee, #normalize_deg, #normalize_rad, #path_angle, #period, #rad_to_deg, #semi_major_axis, #true_anomaly, #velocity
Constructor Details
#initialize(initial_kep, disable_j2: false) ⇒ Kepler
Returns a new instance of Kepler.
6 7 8 9 |
# File 'lib/korba/propagator/kepler.rb', line 6 def initialize(initial_kep, disable_j2: false) @initial_kep = initial_kep @disable_j2 = disable_j2 end |
Instance Method Details
#propagate(seconds_after_epoch) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/korba/propagator/kepler.rb', line 11 def propagate(seconds_after_epoch) mean_motion = Math.sqrt(Constant::GME / @initial_kep.semi_major_axis ** 3) mean_anomaly = rad_to_deg(deg_to_rad(@initial_kep.mean_anomaly) + mean_motion * seconds_after_epoch) Kep.new( object_name: @initial_kep.object_name, epoch: @initial_kep.epoch + seconds_after_epoch, semi_major_axis: @initial_kep.semi_major_axis, eccentricity: @initial_kep.eccentricity, inclination: @initial_kep.inclination, ra_of_asc_node: ra_of_asc_node(seconds_after_epoch), arg_of_pericenter: arg_of_pericenter(seconds_after_epoch), mean_anomaly: mean_anomaly, ) end |