User Manual 4.15 Properties and models: Inertia

De Wiki
Aller à : navigation, rechercher

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.

Inertia.PNG

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.
SphereInertia.PNG
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.
BoxInertia.PNG
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.
CylinderInertia.PNG

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. ...