User Manual 4.4 Assemblies in PATRIUS: Presentation : Différence entre versions

De Wiki
Aller à : navigation, rechercher
(Page créée avec « == Introduction == === Scope === This chapter presents the global architecture of the assembly: its decomposition in parts and the notion of “properties” of those part... »)
 
(The tree of parts)
 
(3 révisions intermédiaires par le même utilisateur non affichées)
Ligne 26 : Ligne 26 :
  
 
* An assembly is described by its sub parts (and can be made of only one).
 
* An assembly is described by its sub parts (and can be made of only one).
* Each of these parts is definied by a name, a frame to know its position and orientation at any time, and a list of properties.
+
* Each of these parts is definied by a name, a frame to know its position and orientation at any time, and a list of properties. Parts can be of two types: fixed parts and mobile parts
 
* The first created part is the "main part". Its associated frame defines the "main frame" of the vehicle.
 
* The first created part is the "main part". Its associated frame defines the "main frame" of the vehicle.
 
* The assembly contains only information : it does not act as physical models (force computations for the spacecraft,...) and implements no complex algorithm. "Models" objects are used for this purpose.
 
* The assembly contains only information : it does not act as physical models (force computations for the spacecraft,...) and implements no complex algorithm. "Models" objects are used for this purpose.
Ligne 32 : Ligne 32 :
  
 
[[File:parts2.PNG|center]]
 
[[File:parts2.PNG|center]]
 
  
 
Classes of the package :
 
Classes of the package :
  
 
* The builder allows the user to instantiate their own assembly, building it step by step (see "Building the assembly").
 
* The builder allows the user to instantiate their own assembly, building it step by step (see "Building the assembly").
* The assembly contains several parts , of the IPart type : one "MainPart" and some "Part" objects.
+
* The assembly contains several parts, of the IPart type : one "MainPart" and some "Part" or "MobilePart" objects.
 
* The parts contain "properties" of the "IPartProperty" type.
 
* The parts contain "properties" of the "IPartProperty" type.
 
* Each PartProperty is associated to a "PropertyType" that allows the user to add only one property of a certain type to a particular part.
 
* Each PartProperty is associated to a "PropertyType" that allows the user to add only one property of a certain type to a particular part.
  
 +
The following diagram represents the link between the main classes used for standard assemblies:
 
[[File:vehicleUML2.PNG|center]]
 
[[File:vehicleUML2.PNG|center]]
 +
 +
The following diagram represents the classes used for MobileParts. In particular MobileParts rely on a <code>TransformStateProvider</code> which provides the transformation between the mobile part and its parent part at any time.
 +
[[File:MobileAssembly.png|center]]
  
 
== Features Description ==
 
== Features Description ==
Ligne 47 : Ligne 50 :
 
Each Part is associated to a frame, which is defined relatively (position and orientation) to the frame of the parent part. The “main part” is associated to the main frame, that has no parent unless the vehicle is linked to the main tree of frames.
 
Each Part is associated to a frame, which is defined relatively (position and orientation) to the frame of the parent part. The “main part” is associated to the main frame, that has no parent unless the vehicle is linked to the main tree of frames.
  
 +
Note that two parts type exist:
 +
* <code>Part</code>: fixed parts with constant transformation between its frame and its parent frame
 +
* <code>MobilePart</code>: mobile parts relying on a <code>TransformStateProvider</code> which provides the transformation between the mobile part and its parent part at any time.
  
 
+
=== Part Properties ===
=== Part Properies ===
+
 
Each part has a list of properties that can be chosen arbitrarily amongst the ones available (e.g. mass, geometry, drag coefficient). The design of the Assembly package allows easy additions of new properties.<br>
 
Each part has a list of properties that can be chosen arbitrarily amongst the ones available (e.g. mass, geometry, drag coefficient). The design of the Assembly package allows easy additions of new properties.<br>
 
To ensure that a property of a particular type is added only once, a "Property type" list exists : different properties can be of a same "type" (for examples two ways of describing the drag coefficients).
 
To ensure that a property of a particular type is added only once, a "Property type" list exists : different properties can be of a same "type" (for examples two ways of describing the drag coefficients).

Version actuelle en date du 29 août 2019 à 09:03

Introduction

Scope

This chapter presents the global architecture of the assembly: its decomposition in parts and the notion of “properties” of those parts. These are only the main principles of the theme. Other chapters are dedicated to the assembly building and use with code samples.

Javadoc

The main vehicle objects are available in the package fr.cnes.sirius.patrius.assembly

Library Javadoc
Patrius Package fr.cnes.sirius.patrius.assembly

Links

None as of now.

Useful Documents

None as of now.

Package overview

Main principles :

  • An assembly is described by its sub parts (and can be made of only one).
  • Each of these parts is definied by a name, a frame to know its position and orientation at any time, and a list of properties. Parts can be of two types: fixed parts and mobile parts
  • The first created part is the "main part". Its associated frame defines the "main frame" of the vehicle.
  • The assembly contains only information : it does not act as physical models (force computations for the spacecraft,...) and implements no complex algorithm. "Models" objects are used for this purpose.
  • The assembly's creation is made through a "builder" object.
Parts2.PNG

Classes of the package :

  • The builder allows the user to instantiate their own assembly, building it step by step (see "Building the assembly").
  • The assembly contains several parts, of the IPart type : one "MainPart" and some "Part" or "MobilePart" objects.
  • The parts contain "properties" of the "IPartProperty" type.
  • Each PartProperty is associated to a "PropertyType" that allows the user to add only one property of a certain type to a particular part.

The following diagram represents the link between the main classes used for standard assemblies:

VehicleUML2.PNG

The following diagram represents the classes used for MobileParts. In particular MobileParts rely on a TransformStateProvider which provides the transformation between the mobile part and its parent part at any time.

MobileAssembly.png

Features Description

The tree of parts

Each Part is associated to a frame, which is defined relatively (position and orientation) to the frame of the parent part. The “main part” is associated to the main frame, that has no parent unless the vehicle is linked to the main tree of frames.

Note that two parts type exist:

  • Part: fixed parts with constant transformation between its frame and its parent frame
  • MobilePart: mobile parts relying on a TransformStateProvider which provides the transformation between the mobile part and its parent part at any time.

Part Properties

Each part has a list of properties that can be chosen arbitrarily amongst the ones available (e.g. mass, geometry, drag coefficient). The design of the Assembly package allows easy additions of new properties.
To ensure that a property of a particular type is added only once, a "Property type" list exists : different properties can be of a same "type" (for examples two ways of describing the drag coefficients).

PartsProp.png

Models

The physical models (such as forces computations on a spacecraft) are not part of the assembly package.
An assembly does not contain complex algorithm, it is only a description. A model shall be coded in a dedicated class, using if necessary an assembly to get its features.
This way, it is easy to create models implementing existing interfaces, or to create new models and interfaces

Models.PNG

Available models

Here is a summary of available models, what they stand for, and the properties needed on the assembly parts for the model to work :

Model Ability Properties
AeroModel Acceleration due to atmospheric drag At least one part with MASS, AERO_FACET or AERO_SPHERE
DirectRadiativeModel Acceleration due to radiation pressure At least one part with RADIATIVE, MASS and either RADIATIVE_FACET or RADIATIVE_SPHERE
InertiaComputedModel Inertia model for the assembly INERTIA (note : INERTIA property provides its own mass)
InertiaSimpleModel Inertia model provided by user No assembly required
MassModel Mass of the assembly MASS (not required : if no part has a MASS property, total mass will be zero, and valid)
RediffusedRadiativeModel Acceleration due to rediffused radiation At least one part with MASS and either RADIATIVE_FACET or RADIATIVE_SPHERE, and also with RADIATIVE if albedo is enabled in the model, or RADIATIVEIR if infrared is enabled in the model
RFLinkBudgetModel Accounting of all of the gains and losses from the transmitter (the satellite), through the medium, to the receiver (the ground station) RF for the part identified as the antenna
SensorModel Geometric properties of a given sensor (target visibility, masking, inhibition...) SENSOR for the part identified as a sensor, GEOMETRY for the masking parts

For a model to work, it needs an assembly providing parts with the right properties. This is done by building a suitable assembly, as described in the [SPC_VBU_Home "Building and using an assembly"] chapter.