Class HarmonicParametricAcceleration

    • Constructor Detail

      • HarmonicParametricAcceleration

        public HarmonicParametricAcceleration​(org.hipparchus.geometry.euclidean.threed.Vector3D direction,
                                              boolean isInertial,
                                              String prefix,
                                              AbsoluteDate referenceDate,
                                              double fundamentalPeriod,
                                              int harmonicMultiplier)
        Simple constructor.

        The signed amplitude of the acceleration is γ sin[2kπ(t-t₀)/T + φ], where γ is parameter 0 and represents the full amplitude, t is current date, t₀ is reference date, T is fundamental period, k is harmonic multiplier, and φ is parameter 1 and represents phase at t₀. The value t-t₀ is in seconds.

        The fundamental period T is often set to the Keplerian period of the orbit and the harmonic multiplier k is often set to 1 or 2. The model has two parameters, one for the full amplitude and one for the phase at reference date.

        The two parameters for this model are the full amplitude (parameter 0) and the phase at reference date (parameter 1). Their reference values (used also as the initial values) are both set to 0. User can change them before starting the propagation (or orbit determination) by calling getParametersDrivers() and ParameterDriver.setValue(double).

        Parameters:
        direction - acceleration direction in defining frame
        isInertial - if true, direction is defined in the same inertial frame used for propagation (i.e. SpacecraftState.getFrame()), otherwise direction is defined in spacecraft frame (i.e. using the propagation attitude law)
        prefix - prefix to use for parameter drivers
        referenceDate - reference date for computing phase, if null the reference date will be automatically set at propagation start
        fundamentalPeriod - fundamental period (typically set to initial orbit Keplerian period)
        harmonicMultiplier - multiplier to compute harmonic period from fundamental period)
      • HarmonicParametricAcceleration

        public HarmonicParametricAcceleration​(org.hipparchus.geometry.euclidean.threed.Vector3D direction,
                                              AttitudeProvider attitudeOverride,
                                              String prefix,
                                              AbsoluteDate referenceDate,
                                              double fundamentalPeriod,
                                              int harmonicMultiplier)
        Simple constructor.

        The signed amplitude of the acceleration is γ sin[2kπ(t-t₀)/T + φ], where γ is parameter 0 and represents the full amplitude, t is current date, t₀ is reference date, T is fundamental period, k is harmonic multiplier, and φ is parameter 1 and represents phase at t₀. The value t-t₀ is in seconds.

        The fundamental period T is often set to the Keplerian period of the orbit and the harmonic multiplier k is often set to 1 or 2. The model has two parameters, one for the full amplitude and one for the phase at reference date.

        The two parameters for this model are the full amplitude (parameter 0) and the phase at reference date (parameter 1). Their reference values (used also as the initial values) are both set to 0. User can change them before starting the propagation (or orbit determination) by calling getParametersDrivers() and ParameterDriver.setValue(double).

        Parameters:
        direction - acceleration direction in overridden spacecraft frame
        attitudeOverride - provider for attitude used to compute acceleration direction
        prefix - prefix to use for parameter drivers
        referenceDate - reference date for computing phase, if null the reference date will be automatically set at propagation start
        fundamentalPeriod - fundamental period (typically set to initial orbit Keplerian period)
        harmonicMultiplier - multiplier to compute harmonic period from fundamental period)
    • Method Detail

      • dependsOnPositionOnly

        public boolean dependsOnPositionOnly()
        Check if force models depends on position only.
        Returns:
        true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on attitude
      • signedAmplitude

        protected double signedAmplitude​(SpacecraftState state,
                                         double[] parameters)
        Compute the signed amplitude of the acceleration.

        The acceleration is the direction multiplied by the signed amplitude. So if signed amplitude is negative, the acceleratin is towards the opposite of the direction specified at construction.

        . The signed amplitude of the acceleration is γ sin[2kπ(t-t₀)/T + φ], where γ is parameter 0 and represents the full amplitude, t is current date, t₀ is reference date, T is fundamental period, k is harmonic multiplier, and φ is parameter 1 and represents phase at t₀. The value t-t₀ is in seconds.
        Specified by:
        signedAmplitude in class AbstractParametricAcceleration
        Parameters:
        state - current state information: date, kinematics, attitude
        parameters - values of the force model parameters
        Returns:
        norm of the acceleration
      • signedAmplitude

        protected <T extends org.hipparchus.RealFieldElement<T>> T signedAmplitude​(FieldSpacecraftState<T> state,
                                                                                   T[] parameters)
        Compute the signed amplitude of the acceleration.

        The acceleration is the direction multiplied by the signed amplitude. So if signed amplitude is negative, the acceleratin is towards the opposite of the direction specified at construction.

        The signed amplitude of the acceleration is γ sin[2kπ(t-t₀)/T + φ], where γ is parameter 0 and represents the full amplitude, t is current date, t₀ is reference date, T is fundamental period, k is harmonic multiplier, and φ is parameter 1 and represents phase at t₀. The value t-t₀ is in seconds.
        Specified by:
        signedAmplitude in class AbstractParametricAcceleration
        Type Parameters:
        T - type of the elements
        Parameters:
        state - current state information: date, kinematics, attitude
        parameters - values of the force model parameters
        Returns:
        norm of the acceleration
      • getParametersDrivers

        public ParameterDriver[] getParametersDrivers()
        Get the drivers for force model parameters.
        Returns:
        drivers for force model parameters