public final class StelaAeroModel extends Parameterizable implements DragSensitive
This class represents a STELA aero model, based on a spherical spacecraft.
It contains the STELA algorithm for the drag computation, as well as the STELA algorithm for the computation of the
partial derivatives with respect to position and velocity, in the TNW frame.
As this class is an implementation of the DragSensitive interface, it is intended to be used in the
StelaAtmosphericDrag class.
AeroModel,
StelaAtmosphericDrag,
Serialized Form| Constructor and Description |
|---|
StelaAeroModel(double inMass,
StelaCd inCd,
double inSurface)
Constructor to be used when partial derivatives should not be computed.
|
StelaAeroModel(double inMass,
StelaCd inCd,
double inSurface,
Atmosphere inAtmosphere,
double atmosDX)
Constructor to be used when partial derivatives are computed using the full finite differences method.
|
StelaAeroModel(double inMass,
StelaCd inCd,
double inSurface,
Atmosphere inAtmosphere,
double atmosDH,
GeodPosition inGeodPosition)
Constructor to be used when partial derivatives are computed using the altitude finite differences method.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addDDragAccDParam(SpacecraftState s,
Parameter param,
double density,
Vector3D relativeVelocity,
double[] dAccdParam)
Compute acceleration derivatives with respect to additional parameters (the ballistic
coefficient).
|
void |
addDDragAccDState(SpacecraftState s,
double[][] dAccdPos,
double[][] dAccdVel,
double density,
Vector3D acceleration,
Vector3D relativeVelocity,
boolean computeGradientPosition,
boolean computeGradientVelocity)
Compute acceleration derivatives with respect to state parameters (position and velocity).
|
DragSensitive |
copy(Assembly assembly)
Copy drag sensitive object using new assembly.
|
Vector3D |
dragAcceleration(SpacecraftState state,
double density,
Vector3D relativeVelocity)
Return the drag acceleration in the CIRF frame.
|
ArrayList<Parameter> |
getJacobianParameters()
Get the list of all jacobian parameters supported.
|
addAllParameters, addAllParameters, addParameter, getParameters, supportsParameterpublic StelaAeroModel(double inMass,
StelaCd inCd,
double inSurface)
throws PatriusException
inMass - the spacecraft mass.inCd - the spacecraft drag coefficient.inSurface - the spacecraft cross section (m2).PatriusException - if the frame factory fails.public StelaAeroModel(double inMass,
StelaCd inCd,
double inSurface,
Atmosphere inAtmosphere,
double atmosDX)
throws PatriusException
inMass - the spacecraft mass.inCd - the spacecraft drag coefficient.inSurface - the spacecraft cross section (m2).inAtmosphere - the atmospheric modelatmosDX - dX in atmospheric density derivatives full finite differences computationPatriusException - if the frame factory fails.public StelaAeroModel(double inMass,
StelaCd inCd,
double inSurface,
Atmosphere inAtmosphere,
double atmosDH,
GeodPosition inGeodPosition)
throws PatriusException
inMass - the spacecraft mass.inCd - the spacecraft drag coefficient.inSurface - the spacecraft cross section (m2).inAtmosphere - the atmospheric modelatmosDH - dH in atmospheric density derivatives altitude finite differences computationinGeodPosition - the spacecraft geodetic position modelPatriusException - if the frame factory fails.public Vector3D dragAcceleration(SpacecraftState state, double density, Vector3D relativeVelocity) throws PatriusException
dragAcceleration in interface DragSensitivestate - current state information: date, kinematics, attitudedensity - atmospheric density at spacecraft positionrelativeVelocity - relative velocity of atmosphere with respect to spacecraft, in the same inertial frame as spacecraft
orbit (m/s)PatriusException - if acceleration cannot be computedpublic void addDDragAccDParam(SpacecraftState s, Parameter param, double density, Vector3D relativeVelocity, double[] dAccdParam) throws PatriusException
addDDragAccDParam in interface DragSensitives - spacecraft stateparam - parameterdensity - the atmospheric density valuerelativeVelocity - relative velocity of atmosphere with respect to spacecraft,
in the same inertial frame as spacecraft orbit (m/s)dAccdParam - acceleration derivatives with respect to ballistic coefficientPatriusException - if derivatives cannot be computedpublic void addDDragAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel, double density, Vector3D acceleration, Vector3D relativeVelocity, boolean computeGradientPosition, boolean computeGradientVelocity) throws PatriusException
addDDragAccDState in interface DragSensitives - spacecraft statedAccdPos - acceleration derivatives with respect to position parametersdAccdVel - acceleration derivatives with respect to velocity parametersdensity - the atmospheric density valueacceleration - the spacecraft acceleration in the inertial framerelativeVelocity - relative velocity of atmosphere with respect to spacecraft,
in the same inertial frame as spacecraft orbit (m/s)computeGradientPosition - true if partial derivatives with respect to position should be computedcomputeGradientVelocity - true if partial derivatives with respect to position should be computedPatriusException - if derivatives cannot be computedpublic ArrayList<Parameter> getJacobianParameters()
getJacobianParameters in interface JacobianParametersProviderpublic DragSensitive copy(Assembly assembly)
copy in interface DragSensitiveassembly - new assemblyCopyright © 2024 CNES. All rights reserved.