public class SphericalSpacecraft extends Object implements RadiationSensitive, DragSensitive
The model of this spacecraft is a simple spherical model, this means that all coefficients are constant and do not depend of the direction.
Instances of this class are guaranteed to be immutable.
BoxAndSolarArraySpacecraft
ABSORPTION_COEFFICIENT, REFLECTION_COEFFICIENT
DRAG_COEFFICIENT
Constructor and Description |
---|
SphericalSpacecraft(double crossSection,
double dragCoeff,
double absorptionCoeff,
double reflectionCoeff)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
FieldVector3D<DerivativeStructure> |
dragAcceleration(AbsoluteDate date,
Frame frame,
FieldVector3D<DerivativeStructure> position,
FieldRotation<DerivativeStructure> rotation,
DerivativeStructure mass,
double density,
FieldVector3D<DerivativeStructure> relativeVelocity)
Compute the acceleration due to drag, with state derivatives.
|
Vector3D |
dragAcceleration(AbsoluteDate date,
Frame frame,
Vector3D position,
Rotation rotation,
double mass,
double density,
Vector3D relativeVelocity)
Compute the acceleration due to drag.
|
FieldVector3D<DerivativeStructure> |
dragAcceleration(AbsoluteDate date,
Frame frame,
Vector3D position,
Rotation rotation,
double mass,
double density,
Vector3D relativeVelocity,
String paramName)
Compute acceleration due to drag, with parameters derivatives.
|
double |
getAbsorptionCoefficient()
Get the absorption coefficient.
|
double |
getDragCoefficient()
Get the drag coefficient.
|
double |
getReflectionCoefficient()
Get the specular reflection coefficient.
|
FieldVector3D<DerivativeStructure> |
radiationPressureAcceleration(AbsoluteDate date,
Frame frame,
FieldVector3D<DerivativeStructure> position,
FieldRotation<DerivativeStructure> rotation,
DerivativeStructure mass,
FieldVector3D<DerivativeStructure> flux)
Compute the acceleration due to radiation pressure, with state derivatives.
|
Vector3D |
radiationPressureAcceleration(AbsoluteDate date,
Frame frame,
Vector3D position,
Rotation rotation,
double mass,
Vector3D flux)
Compute the acceleration due to radiation pressure.
|
FieldVector3D<DerivativeStructure> |
radiationPressureAcceleration(AbsoluteDate date,
Frame frame,
Vector3D position,
Rotation rotation,
double mass,
Vector3D flux,
String paramName)
Compute the acceleration due to radiation pressure, with parameters derivatives.
|
void |
setAbsorptionCoefficient(double value)
Set the absorption coefficient.
|
void |
setDragCoefficient(double value)
Set the drag coefficient.
|
void |
setReflectionCoefficient(double value)
Set the specular reflection coefficient.
|
public SphericalSpacecraft(double crossSection, double dragCoeff, double absorptionCoeff, double reflectionCoeff)
crossSection
- Surface (m²)dragCoeff
- drag coefficient (used only for drag)absorptionCoeff
- absorption coefficient between 0.0 an 1.0
(used only for radiation pressure)reflectionCoeff
- specular reflection coefficient between 0.0 an 1.0
(used only for radiation pressure)public Vector3D dragAcceleration(AbsoluteDate date, Frame frame, Vector3D position, Rotation rotation, double mass, double density, Vector3D relativeVelocity)
The computation includes all spacecraft specific characteristics like shape, area and coefficients.
dragAcceleration
in interface DragSensitive
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in reference framerotation
- orientation (attitude) of the spacecraft with respect to reference framemass
- current massdensity
- atmospheric density at spacecraft positionrelativeVelocity
- relative velocity of atmosphere with respect to spacecraft,
in the same inertial frame as spacecraft orbit (m/s)public FieldVector3D<DerivativeStructure> dragAcceleration(AbsoluteDate date, Frame frame, FieldVector3D<DerivativeStructure> position, FieldRotation<DerivativeStructure> rotation, DerivativeStructure mass, double density, FieldVector3D<DerivativeStructure> relativeVelocity)
The computation includes all spacecraft specific characteristics like shape, area and coefficients.
dragAcceleration
in interface DragSensitive
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in reference framerotation
- orientation (attitude) of the spacecraft with respect to reference framemass
- spacecraft massdensity
- atmospheric density at spacecraft positionrelativeVelocity
- relative velocity of atmosphere with respect to spacecraft,
in the same inertial frame as spacecraft orbit (m/s)public FieldVector3D<DerivativeStructure> dragAcceleration(AbsoluteDate date, Frame frame, Vector3D position, Rotation rotation, double mass, double density, Vector3D relativeVelocity, String paramName) throws OrekitException
dragAcceleration
in interface DragSensitive
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in reference framerotation
- orientation (attitude) of the spacecraft with respect to reference framemass
- current massdensity
- atmospheric density at spacecraft positionrelativeVelocity
- relative velocity of atmosphere with respect to spacecraft,
in the same inertial frame as spacecraft orbit (m/s)paramName
- name of the parameter with respect to which derivatives are requiredOrekitException
- if derivatives cannot be computedpublic Vector3D radiationPressureAcceleration(AbsoluteDate date, Frame frame, Vector3D position, Rotation rotation, double mass, Vector3D flux)
radiationPressureAcceleration
in interface RadiationSensitive
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in reference framerotation
- orientation (attitude) of the spacecraft with respect to reference framemass
- current massflux
- radiation flux in the same inertial frame as spacecraft orbitpublic FieldVector3D<DerivativeStructure> radiationPressureAcceleration(AbsoluteDate date, Frame frame, FieldVector3D<DerivativeStructure> position, FieldRotation<DerivativeStructure> rotation, DerivativeStructure mass, FieldVector3D<DerivativeStructure> flux)
radiationPressureAcceleration
in interface RadiationSensitive
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in reference framerotation
- orientation (attitude) of the spacecraft with respect to reference framemass
- spacecraft massflux
- radiation flux in the same inertial frame as spacecraft orbitpublic FieldVector3D<DerivativeStructure> radiationPressureAcceleration(AbsoluteDate date, Frame frame, Vector3D position, Rotation rotation, double mass, Vector3D flux, String paramName) throws OrekitException
radiationPressureAcceleration
in interface RadiationSensitive
date
- current dateframe
- inertial reference frame for state (both orbit and attitude)position
- position of spacecraft in reference framerotation
- orientation (attitude) of the spacecraft with respect to reference framemass
- current massflux
- radiation flux in the same inertial frame as spacecraft orbitparamName
- name of the parameter with respect to which derivatives are requiredOrekitException
- if acceleration cannot be computedpublic void setDragCoefficient(double value)
setDragCoefficient
in interface DragSensitive
value
- drag coefficientpublic double getDragCoefficient()
getDragCoefficient
in interface DragSensitive
public void setAbsorptionCoefficient(double value)
setAbsorptionCoefficient
in interface RadiationSensitive
value
- absorption coefficientpublic double getAbsorptionCoefficient()
getAbsorptionCoefficient
in interface RadiationSensitive
public void setReflectionCoefficient(double value)
setReflectionCoefficient
in interface RadiationSensitive
value
- specular reflection coefficientpublic double getReflectionCoefficient()
getReflectionCoefficient
in interface RadiationSensitive
Copyright © 2002-2015 CS Systèmes d'information. All rights reserved.