public final class InertiaSimpleModel extends Object implements IInertiaModel
Note : when using this model within a propagation, it is necessary to feed the additional equations to the propagator. This has to be done prior to any propagation, to allow this model to account mass variations (i.e. due to maneuvers), using the method NumericalPropagator.setMassProviderEquation() which will register the additional equation and initialize the initial additional state.
IInertiaModel
,
Serialized FormMASS
Constructor and Description |
---|
InertiaSimpleModel(double mass,
Vector3D massCenter,
Matrix3D inertiaMatrix,
Frame frame,
String partName)
Constructor for a simple inertia model.
|
InertiaSimpleModel(double mass,
Vector3D massCenter,
Matrix3D inertiaMatrix,
Vector3D inertiaReferencePoint,
Frame frame,
String partName)
Constructor for a simple inertia model; the inertia matrix is expressed with respect to a point
that can be different from the mass center.
|
Modifier and Type | Method and Description |
---|---|
void |
addMassDerivative(String partName,
double flowRate)
Add the mass derivate of the given part.
|
AdditionalEquations |
getAdditionalEquation(String partName)
Get the mass equation related to the part.
|
List<String> |
getAllPartsNames()
Get the list of the name of the parts.
|
Matrix3D |
getInertiaMatrix(Frame frame,
AbsoluteDate date)
Getter for the inertia matrix of the spacecraft,
expressed with respect to the MASS CENTER in a given frame.
|
Matrix3D |
getInertiaMatrix(Frame frame,
AbsoluteDate date,
Vector3D inertiaReferencePoint)
Getter for the inertia matrix of the spacecraft,
once expressed with respect to a point
that can be different from the mass center.
|
double |
getMass(String partName)
Return the mass of the given part.
|
Vector3D |
getMassCenter(Frame frame,
AbsoluteDate date)
Getter for the mass center.
|
double |
getTotalMass()
Return the mass of the spacecraft.
|
double |
getTotalMass(SpacecraftState state)
Return the mass of the spacecraft following the order.
|
void |
setMassDerivativeZero(String partName)
Set mass derivative to zero.
|
void |
updateIntertiaMatrix(Matrix3D inertiaMatrix)
Updates the inertia matrix.
|
void |
updateMass(String part,
double mass)
Update the mass of the given part.
|
void |
updateMassCenter(Vector3D massCenter)
Updates the mass center.
|
public InertiaSimpleModel(double mass, Vector3D massCenter, Matrix3D inertiaMatrix, Frame frame, String partName) throws PatriusException
mass
- the global massmassCenter
- the mass centerinertiaMatrix
- the inertia matrix, expressed with respect to the mass centerframe
- the expression frame of the mass center vector and inertia matrixpartName
- name of the partPatriusException
- if the mass is negative (PatriusMessages.MASS_ARGUMENT_IS_NEGATIVE)public InertiaSimpleModel(double mass, Vector3D massCenter, Matrix3D inertiaMatrix, Vector3D inertiaReferencePoint, Frame frame, String partName) throws PatriusException
mass
- the global massmassCenter
- the mass centerinertiaMatrix
- the inertia matrixinertiaReferencePoint
- the point with respect to the inertia matrix is expressed (in the reference frame)frame
- the expression frame of the mass center vector and inertia matrixpartName
- name of the partPatriusException
- if the mass is negative (PatriusMessages.MASS_ARGUMENT_IS_NEGATIVE)public double getTotalMass()
getTotalMass
in interface MassProvider
public double getTotalMass(SpacecraftState state)
MassProvider.getTotalMass()
)getTotalMass
in interface MassProvider
state
- spacecraft statepublic double getMass(String partName)
getMass
in interface MassProvider
partName
- given partpublic Vector3D getMassCenter(Frame frame, AbsoluteDate date) throws PatriusException
getMassCenter
in interface IInertiaModel
frame
- the expression frame of the mass center positiondate
- the current date (unused for simple the model)PatriusException
- if a problem occurs during frames transformationspublic Matrix3D getInertiaMatrix(Frame frame, AbsoluteDate date) throws PatriusException
getInertiaMatrix
in interface IInertiaModel
frame
- the expression frame of the inertia matrixdate
- the current date (unused for simple the model)PatriusException
- if a problem occurs during frames transformationspublic void updateMass(String part, double mass) throws PatriusException
updateMass
in interface MassProvider
part
- ignore this parametermass
- mass of the given partPatriusException
- if the mass is negative (PatriusMessages.MASS_ARGUMENT_IS_NEGATIVE)public void updateMassCenter(Vector3D massCenter)
massCenter
- the new mass centerpublic void updateIntertiaMatrix(Matrix3D inertiaMatrix)
inertiaMatrix
- the new inertia matrix.public Matrix3D getInertiaMatrix(Frame frame, AbsoluteDate date, Vector3D inertiaReferencePoint) throws PatriusException
getInertiaMatrix
in interface IInertiaModel
frame
- the expression frame of the inertia matrixdate
- the current date (unused for simple the model)inertiaReferencePoint
- the point with respect to the inertia matrix is expressed (in the reference frame)PatriusException
- if a problem occurs during frames transformationspublic void addMassDerivative(String partName, double flowRate)
addMassDerivative
in interface MassProvider
partName
- name of part subject to mass variationflowRate
- flow rate of specified partpublic void setMassDerivativeZero(String partName)
setMassDerivativeZero
in interface MassProvider
partName
- name of part whose mass derivative is set to zeropublic AdditionalEquations getAdditionalEquation(String partName)
getAdditionalEquation
in interface MassProvider
partName
- part namepublic List<String> getAllPartsNames()
getAllPartsNames
in interface MassProvider
Copyright © 2023 CNES. All rights reserved.