User Manual 4.15 Properties and models: Inertia
Sommaire
Introduction
Scope
In this sections are presented the assembly's properties and models to get its inertia features : mass, mass center and inertia matrix.
Javadoc
The inertia models are available in the package fr.cnes.sirius.patrius.assembly.models.
The associated properties are available in the package fr.cnes.sirius.patrius.assembly.properties.
Links
None as of now.
Useful Documents
None as of now.
Package Overview
None as of now.
Features Description
Generalities about inertia models
The aim of inertia models is to return the (mass / center of mass / inertia matrix) information for the whole spacecraft. Two models are available : one that allows the user to fill directly those informations, one that computes it from the inertia of the different parts of the assembly.
Those models are under the "IInertiaModel" interface, that defines the following methods :
- Getter for the inertia matrix of the spacecraft, expressed with respect to the MASS CENTER in a given frame.
Matrix3D inertiaMatrixAtMassCenter = model.getInertiaMatrix(frame, date);
- Getter for the inertia matrix of the spacecraft, once expressed with respect to a point (expressed in the given frame) that can be different from the mass center.
Matrix3D matrix = model.getInertiaMatrix(frame, date, inertiaReferencePoint);
- getter for the mass center in a given frame
Vector3D massCenterInUserFrame = model.getMassCenter(frame, date);
- getter for the last computed mass
double globalMass = model.getTotalMass();
Simple inertia model
In the InertiaSimpleModel, the mass / mass center / inertia matrix are directly provided by the user. It does not need any assembly construction.
The inertia matrix can be defined :
- at the mass center point, in a given reference frame, with the following constructor
IInertiaModel model = new InertiaSimpleModel(mass, massCenter, inertiaMatrix, referenceFrame, "part");
- at another point, in a given reference frame, with the following constructor
IInertiaModel model = new InertiaSimpleModel(mass, massCenter, inertiaMatrix, inertiaReferencePoint, referenceFrame, "part");
Computed inertia model
The InertiaComputedModel computes those values from the part properties of an assembly. The concerned parts are the ones containing the INERTIA properties (cf. next paragraph).
It is built simply from the assembly :
IInertiaModel model = new InertiaComputedModel(assembly);
Inertia properties
The INERTIA property completes the MASS property to get a complete (mass / center of mass / inertia matrix) description of a part. It shall be built providing the mass property that is associated to to the same part (so both properties will provide and work with the same mass value even if it changes in time). Consequently, the property contains three informations :
- the mass value (get from the MASS property itself)
- the mass-center vector
- the inertia matrix at the mass center point
There are different ways to define it : computing it from a geometry (sphere, box...), or giving it directly. So many classes are available, implementing the same interface. The IInertiaProperty interface and AbstractInertiaProperty are the interface and abstract class for all the different Inertia properties available and shall be used by users willing to create their own inertia definition of the part.
Check the different javadocs for the building of those properties.
Please note that not all implementations are present in the following diagram for the sake of clarity.
The property type associated is INERTIA.
Here are the different geometrical pre-computed available inertia:
- Sphere
- Defined by its radius. The CENTER of the sphere is the (0, 0, 0) point of the part frame of this property.
- Parallelepiped
- Defined by its length (dimension on the X axis of the part frame of the property), width (dimension on the Y axis of this frame) and height (on the Z axis). The CENTER of the parallelepiped is the (0, 0, 0) point.
- Cylinder
- Defined by the radius of its base and height. The (0, 0, 0) point of the part frame of this property is the center of a base, the axis on the positive Z axis.
Getting Started
Here is a code sample for the creation of an inertia property associated to the part "part1" :
// mass property creation for this part final MassProperty massProp = new MassProperty(55.0); // mass property adding assemblyBuilder.addProperty(massProp, "part1"); // inertia features : mass center Vector3D massCenter = new Vector3D( 0.0, 0.7849, 0.0016); // inertia features : inertia matrix at mass center final double[][] inertiaData = {{9.2814945, 0. , 0. }, {0., 0.1422165,- 0.0160876}, {0.,- 0.0160876, 9.148478 }}; final Matrix3D inertiaMatrix = new Matrix3D(inertiaData); // inertia property creation : the mass property is the one given to the same part final InertiaSimpleProperty inertiaProp = new InertiaSimpleProperty(massCenter, inertiaMatrix, massProp); // inertia property adding assemblyBuilder.addProperty(inertiaProp, "part1");
Contents
Interfaces
Interface | Summary | Javadoc |
---|---|---|
IInertiaModel | Interface for inertia models. | ... |
IInertiaProperty | Interface for all inertia parts properties. | ... |
Classes
Class | Summary | Javadoc |
---|---|---|
InertiaSimpleModel | This class is a model to describe a construction's inertia : it does not need an assembly. | ... |
InertiaComputedModel | This class is a model to describe an assembly's inertia. | ... |
InertiaSimpleProperty | This class is a part property for the PATRIUS assembly. It allows to define an inertia property to a part, the mass center and inertia matrix at the mass center being provided by the user. | ... |
InertiaSphereProperty | This class is a part property for the PATRIUS assembly. It allows to define an inertia property to a part, the mass center and inertia matrix being computed for a sphereical object. | ... |
InertiaParallelepipedProperty | This class is a part property for the PATRIUS assembly. It allows to define an inertia property to a part, the mass center and inertia matrix being computed for a parallelepiped object. | ... |
InertiaCylinderProperty | This class is a part property for the PATRIUS assembly. It allows to define an inertia property to a part, the mass center and inertia matrix being computed for a cylinder object. | ... |