Class PolynomialParametricAcceleration

    • Constructor Detail

      • PolynomialParametricAcceleration

        public PolynomialParametricAcceleration​(org.hipparchus.geometry.euclidean.threed.Vector3D direction,
                                                boolean isInertial,
                                                String prefix,
                                                AbsoluteDate referenceDate,
                                                int degree)
        Simple constructor.

        The signed amplitude of the acceleration is ∑pₙ(t-t₀)ⁿ, where pₙ is parameter n, t is current date and t₀ is reference date. The value t-t₀ is in seconds.

        The degree + 1 parameters for this model are the polynomial coefficients in increasing degree order. Their reference values (used also as the initial values) are all 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 polynomials, if null the reference date will be automatically set at propagation start
        degree - polynomial degree (i.e. a value of 0 corresponds to a constant acceleration)
      • PolynomialParametricAcceleration

        public PolynomialParametricAcceleration​(org.hipparchus.geometry.euclidean.threed.Vector3D direction,
                                                AttitudeProvider attitudeOverride,
                                                String prefix,
                                                AbsoluteDate referenceDate,
                                                int degree)
        Simple constructor.

        The signed amplitude of the acceleration is ∑pₙ(t-t₀)ⁿ, where pₙ is parameter n, t is current date and t₀ is reference date. The value t-t₀ is in seconds.

        The degree + 1 parameters for this model are the polynomial coefficients in increasing degree order. Their reference values (used also as the initial values) are all 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 polynomials, if null the reference date will be automatically set at propagation start
        degree - polynomial degree (i.e. a value of 0 corresponds to a constant acceleration)
    • 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.

        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.

        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