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 FormConstructor 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, supportsParameter
public 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 DragSensitive
state
- 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 DragSensitive
s
- 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 DragSensitive
s
- 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 JacobianParametersProvider
public DragSensitive copy(Assembly assembly)
copy
in interface DragSensitive
assembly
- new assemblyCopyright © 2023 CNES. All rights reserved.