User Manual 4.0 Wrench models : Différence entre versions

De Wiki
Aller à : navigation, rechercher
 
(Javadoc)
 
(4 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
 
 
== Introduction ==
 
== Introduction ==
 
=== Scope ===
 
=== Scope ===
Ligne 6 : Ligne 4 :
  
 
=== Javadoc ===
 
=== Javadoc ===
|=(% colspan="3" %)Library|=(% colspan="6" %)Javadoc
+
 
|(% colspan="3" %)Patrius|(% colspan="6" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/package-summary.html Package fn.cnes.sirius.patrius.wrenches]
+
{| class="wikitable"
 +
|-
 +
! scope="col"| Library
 +
! scope="col"| Javadoc
 +
|-
 +
|Patrius
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/package-summary.html Package fn.cnes.sirius.patrius.wrenches]
 +
|}
  
 
=== Links ===
 
=== Links ===
Ligne 18 : Ligne 23 :
 
==== Wrench models====
 
==== Wrench models====
  
[[File:wrenchmodels.png|center]]||width="950"]]
+
[[File:wrenchmodels.png|center|950px]]
 
+
  
 
== Features Description ==
 
== Features Description ==
 
 
=== Wrench models ===
 
=== Wrench models ===
 
The PATRIUS library provides several wrench model implementations :
 
The PATRIUS library provides several wrench model implementations :
Ligne 34 : Ligne 37 :
 
* Its implementations correspond to that of ForceModel
 
* Its implementations correspond to that of ForceModel
 
* The*WrenchSensitive interfaces (such as DragWrenchSensitive) correspond to *Sensitive interfaces (such as DragSensitive)
 
* The*WrenchSensitive interfaces (such as DragWrenchSensitive) correspond to *Sensitive interfaces (such as DragSensitive)
* The implementations of these interfaces are available using assemblies (e.g AeroWrenchModel which corresponds to AeroModel)
+
* The implementations of these interfaces are available using assemblies (e.g AeroWrenchModel which corresponds to AeroModel) <br> As a
As a consequence, creating these wrench models is very similar to creating force models. Both use very similar assembly models, but the former require inertia properties in order to compute leverage. The gravitational attraction wrench requires an inertia model (also amongst assembly models).
+
consequence, creating these wrench models is very similar to creating force models. Both use very similar assembly models, but the former require inertia properties in order to compute leverage. The gravitational attraction wrench requires an inertia model (also amongst assembly models).
  
Howevere, the generic wrench model allows creating wrench models out of force models. The parameters required at instanciation time are the ForceModel implementation and a Vector3D representing the leverage.
+
However, the generic wrench model allows creating wrench models out of force models. The parameters required at instanciation time are the ForceModel implementation and a Vector3D representing the leverage.
  
 
Below is a list of input parameters (and properties) for each wrench model
 
Below is a list of input parameters (and properties) for each wrench model
  
**DragWrench**
+
'''DragWrench'''
 
* Atmosphere
 
* Atmosphere
  
* An implementation of the DragWrenchSensitive
+
* An implementation of the DragWrenchSensitive<br>interface (eg AeroWrenchModel)
interface (eg AeroWrenchModel)
+
 
* An assembly with at least :
 
* An assembly with at least :
 
** one part with an (AERO_FACET or AERO_SPHERE), AERO and AERO_APPLICATION_POINT properties
 
** one part with an (AERO_FACET or AERO_SPHERE), AERO and AERO_APPLICATION_POINT properties
Ligne 76 : Ligne 78 :
  
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
//<del></del> create an assembly builder <del></del>
+
// ---- create an assembly builder ----
 
final AssemblyBuilder builder = new AssemblyBuilder();
 
final AssemblyBuilder builder = new AssemblyBuilder();
  
Ligne 109 : Ligne 111 :
 
final Assembly assembly = builder.returnAssembly();
 
final Assembly assembly = builder.returnAssembly();
  
//<del></del> define spacecraft state <del></del>
+
// ---- define spacecraft state ----
  
 
// spacecraft
 
// spacecraft
Ligne 118 : Ligne 120 :
 
final Frame referenceFrame = FramesFactory.getGCRF();
 
final Frame referenceFrame = FramesFactory.getGCRF();
 
// pos-vel
 
// pos-vel
final Vector3D pos = new Vector3D(4.05e+07,-1.18e+07, -6.59e+05);
+
final Vector3D pos = new Vector3D(4.05e+07, -1.18e+07, -6.59e+05);
final Vector3D vel = new Vector3D(8.57e+02, 2.95e+03,-4.07e+01);
+
final Vector3D vel = new Vector3D(8.57e+02, 2.95e+03, -4.07e+01);
 
final PVCoordinates pvCoordinates = new PVCoordinates(pos, vel);
 
final PVCoordinates pvCoordinates = new PVCoordinates(pos, vel);
 
final Orbit orbit = new CartesianOrbit(pvCoordinates, referenceFrame, date, mu);
 
final Orbit orbit = new CartesianOrbit(pvCoordinates, referenceFrame, date, mu);
Ligne 126 : Ligne 128 :
 
final SpacecraftState state = new SpacecraftState(orbit, attitude);
 
final SpacecraftState state = new SpacecraftState(orbit, attitude);
  
//<del></del> link the assembly to the frames tree, for forces computation <del></del>
+
// ---- link the assembly to the frames tree, for forces computation ----
 
assembly.initMainPartFrame(state);
 
assembly.initMainPartFrame(state);
  
//<del></del> create an aerodynamic model <del></del>
+
// ---- create an aerodynamic model ----
 
final AeroWrenchModel assemblyModel = new AeroWrenchModel(assembly);
 
final AeroWrenchModel assemblyModel = new AeroWrenchModel(assembly);
  
//<del></del> create the wrench model <del></del>
+
// ---- create the wrench model ----
 
// atmosphere
 
// atmosphere
 
final Atmosphere atm = new DTM2000(new DTM2000SolarData(new ConstantSolarActivity(11, 15.)),
 
final Atmosphere atm = new DTM2000(new DTM2000SolarData(new ConstantSolarActivity(11, 15.)),
Ligne 145 : Ligne 147 :
 
== Contents ==
 
== Contents ==
 
=== Interfaces ===
 
=== Interfaces ===
|(% colspan="3" %)'''WrenchModel'''|(% colspan="6" %)This interface represents a static wrench model.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/WrenchModel.html ...]
+
{| class="wikitable"
|(% colspan="3" %)'''RadiationWrenchSensitive'''|(% colspan="6" %)This interface represents a solar wrench sensitive assembly.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/RadiationWrenchSensitive.html ...]
+
|-
|(% colspan="3" %)'''DragWrenchSensitive'''|(% colspan="6" %)This interface represents a drag wrench sensitive assembly.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/DragWrenchSensitive.html ...]
+
! scope="col"| Interface
 
+
! scope="col"| Summary
 +
! scope="col"| Javadoc
 +
|-
 +
|'''WrenchModel'''
 +
|This interface represents a static wrench model.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/WrenchModel.html ...]
 +
|-
 +
|'''RadiationWrenchSensitive'''
 +
|This interface represents a solar wrench sensitive assembly.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/RadiationWrenchSensitive.html ...]
 +
|-
 +
|'''DragWrenchSensitive'''
 +
|This interface represents a drag wrench sensitive assembly.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/DragWrenchSensitive.html ...]
 +
|}
  
 
=== Classes ===
 
=== Classes ===
|=(% colspan="3" %)Class|=(% colspan="6" %)Summary|=(% colspan="1" %)Javadoc
+
{| class="wikitable"
|(% colspan="3" %)'''Wrench'''|(% colspan="6" %)This class represents a static wrench.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/Wrench.html ...]
+
|-
|(% colspan="3" %)'''DragWrench'''|(% colspan="6" %)This class represents the drag wrench.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/DragWrench.html ...]
+
! scope="col"| Class
|(% colspan="3" %)'''SolarRadiationWrench'''|(% colspan="6" %)This class represents the solar radiation wrench.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/SolarRadiationWrench.html ...]
+
! scope="col"| Summary
|(% colspan="3" %)'''GravitationalAttractionWrench'''|(% colspan="6" %)This class represents the gravitational attraction wrench.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/GravitationalAttractionWrench.html ...]
+
! scope="col"| Javadoc
|(% colspan="3" %)'''GenericWrenchModel'''|(% colspan="6" %)This class represents the generic wrench model.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/GenericWrenchModel.html ...]
+
|-
|(% colspan="3" %)'''MagneticWrench'''|(% colspan="6" %)This class represents the magnetic wrench due to the interaction of the spacecraft with Earth's magnetic field.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/wrenches/MagneticWrench.html ...]
+
|'''Wrench'''
|(% colspan="3" %)'''MagneticMoment'''|(% colspan="6" %)This class represents a magnetic moment.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/assembly/models/MagneticMoment.html ...]
+
|This class represents a static wrench.
|(% colspan="3" %)'''DirectRadiativeWrenchModel'''|(% colspan="6" %)This class represents a radiation wrench sensitive spacecraft.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/assembly/models/DirectRadiativeWrenchModel.html ...]
+
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/Wrench.html ...]
|(% colspan="3" %)'''AeroWrenchModel'''|(% colspan="6" %)This class represents a drag wrench sensitive spacecraft.|(% colspan="1" %)[{{PathCurrentJavaDoc}}/fr/cnes/sirius/patrius/assembly/models/AeroWrenchModel.html ...]
+
|-
 +
|'''DragWrench'''
 +
|This class represents the drag wrench.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/DragWrench.html ...]
 +
|-
 +
|'''SolarRadiationWrench'''
 +
|This class represents the solar radiation wrench.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/SolarRadiationWrench.html ...]
 +
|-
 +
|'''GravitationalAttractionWrench'''
 +
|This class represents the gravitational attraction wrench.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/GravitationalAttractionWrench.html ...]
 +
|-
 +
|'''GenericWrenchModel'''
 +
|This class represents the generic wrench model.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/GenericWrenchModel.html ...]
 +
|-
 +
|'''MagneticWrench'''
 +
|This class represents the magnetic wrench due to the interaction of the spacecraft with Earth's magnetic field.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/wrenches/MagneticWrench.html ...]
 +
|-
 +
|'''MagneticMoment'''
 +
|This class represents a magnetic moment.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/assembly/models/MagneticMoment.html ...]
 +
|-
 +
|'''DirectRadiativeWrenchModel'''
 +
|This class represents a radiation wrench sensitive spacecraft.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/assembly/models/DirectRadiativeWrenchModel.html ...]
 +
|-
 +
|'''AeroWrenchModel'''
 +
|This class represents a drag wrench sensitive spacecraft.
 +
|[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/assembly/models/AeroWrenchModel.html ...]
 +
|}
 +
 
 +
[[Category:User_Manual_4.0_Orbit_Propagation]]

Version actuelle en date du 21 février 2018 à 13:11

Introduction

Scope

The scope of this section is to present the wrench models available in PATRIUS.

Javadoc

Library Javadoc
Patrius Package fn.cnes.sirius.patrius.wrenches

Links

Modèle:SpecialInclusion prefix=$theme sub section="Links"/

Useful Documents

Modèle:SpecialInclusion prefix=$theme sub section="UsefulDocs"/

Package Overview

Wrench models

Wrenchmodels.png

Features Description

Wrench models

The PATRIUS library provides several wrench model implementations :

  • Drag wrench
  • Solar radiation Wrench
  • Gravitational attraction wrench
  • A generic wrench model

Drag and radiation wrench models follow the same design as force models :

  • The WrenchModel interface corresponds the ForceModel interface
  • Its implementations correspond to that of ForceModel
  • The*WrenchSensitive interfaces (such as DragWrenchSensitive) correspond to *Sensitive interfaces (such as DragSensitive)
  • The implementations of these interfaces are available using assemblies (e.g AeroWrenchModel which corresponds to AeroModel)
    As a

consequence, creating these wrench models is very similar to creating force models. Both use very similar assembly models, but the former require inertia properties in order to compute leverage. The gravitational attraction wrench requires an inertia model (also amongst assembly models).

However, the generic wrench model allows creating wrench models out of force models. The parameters required at instanciation time are the ForceModel implementation and a Vector3D representing the leverage.

Below is a list of input parameters (and properties) for each wrench model

DragWrench

  • Atmosphere
  • An implementation of the DragWrenchSensitive
    interface (eg AeroWrenchModel)
  • An assembly with at least :
    • one part with an (AERO_FACET or AERO_SPHERE), AERO and AERO_APPLICATION_POINT properties
    • one part with an inertia property

SolarRadiationWrench

  • The sun as a PVCoordinatesProvider
  • Earth as a GeometricBodyShape
  • An implementation of the DragWrenchSensitive interface (eg DirectRadiativeWrenchModel)
    • one part with a (RADIATIVE_SPHERE or RADIATIVE_FACET), RADIATIVE and RADIATION_APPLICATION_POINT properties
    • one part with an INERTIA property

GenericWrench

  • A ForceModel
  • A force application point in spacecraft main part frame

MagneticWrench

  • An implementation of the MagneticMomentProvider interface (eg MagneticMoment, representing a constant magnetic moment)
  • A GeoMagneticField

GravitationalAttractionWrench

  • An assembly inertia model (InertiaSimpleModel or InertiaComputedModel)
  • A standard gravitational parameter


Getting Started

Using wrench models

The code snippet hereunder shows how to create a drag wrench model :

// ---- create an assembly builder ----
final AssemblyBuilder builder = new AssemblyBuilder();
 
// main part with mass (bus)
builder.addMainPart("bus");
final double mass = 5000.;
builder.addProperty(new MassProperty(mass), "bus");
 
// solar panel with aerodynamics properties
builder.addPart("solarPanel", "bus", Transform.IDENTITY);
 
// the AERO-FACET property
// one facet
final Vector3D normal = Vector3D.PLUS_J;
final double area = 10.;
final Facet facet = new Facet(normal, area);
// aero facet property
final double cn = 2., ct = 1.;
final IPartProperty aeroFacetProp = new AeroFacetProperty(facet, cn, ct);
builder.addProperty(aeroFacetProp, "solarPanel");
 
// the AERO_SPHERE property (simplified representation)
final double cx = 1.;
final double radius = 2.;
builder.addProperty(new AeroSphereProperty(radius, cx), "solarPanel");
 
// AERO application point
final AeroApplicationPoint applicationPoint = new AeroApplicationPoint(Vector3D.PLUS_I);
builder.addProperty(applicationPoint, "solarPanel");
 
// get the generated assembly
final Assembly assembly = builder.returnAssembly();
 
// ---- define spacecraft state ----
 
// spacecraft
final AbsoluteDate date = new AbsoluteDate();
// mu from grim4s4_gr model
final double mu = 0.39860043770442e+15;
// GCRF reference frame
final Frame referenceFrame = FramesFactory.getGCRF();
// pos-vel
final Vector3D pos = new Vector3D(4.05e+07, -1.18e+07, -6.59e+05);
final Vector3D vel = new Vector3D(8.57e+02, 2.95e+03, -4.07e+01);
final PVCoordinates pvCoordinates = new PVCoordinates(pos, vel);
final Orbit orbit = new CartesianOrbit(pvCoordinates, referenceFrame, date, mu);
final Attitude attitude = new LofOffset(orbit.getFrame(), LOFType.LVLH).getAttitude(orbit, orbit.getDate(),
        orbit.getFrame());
final SpacecraftState state = new SpacecraftState(orbit, attitude);
 
// ---- link the assembly to the frames tree, for forces computation ----
assembly.initMainPartFrame(state);
 
// ---- create an aerodynamic model ----
final AeroWrenchModel assemblyModel = new AeroWrenchModel(assembly);
 
// ---- create the wrench model ----
// atmosphere
final Atmosphere atm = new DTM2000(new DTM2000SolarData(new ConstantSolarActivity(11, 15.)),
        CelestialBodyFactory.getSun(), new OneAxisEllipsoid(Constants.GRIM5C1_EARTH_EQUATORIAL_RADIUS,
                Constants.GRIM5C1_EARTH_FLATTENING, FramesFactory.getITRF()));
 
final DragWrench wrench = new DragWrench(atm, assemblyModel);


Contents

Interfaces

Interface Summary Javadoc
WrenchModel This interface represents a static wrench model. ...
RadiationWrenchSensitive This interface represents a solar wrench sensitive assembly. ...
DragWrenchSensitive This interface represents a drag wrench sensitive assembly. ...

Classes

Class Summary Javadoc
Wrench This class represents a static wrench. ...
DragWrench This class represents the drag wrench. ...
SolarRadiationWrench This class represents the solar radiation wrench. ...
GravitationalAttractionWrench This class represents the gravitational attraction wrench. ...
GenericWrenchModel This class represents the generic wrench model. ...
MagneticWrench This class represents the magnetic wrench due to the interaction of the spacecraft with Earth's magnetic field. ...
MagneticMoment This class represents a magnetic moment. ...
DirectRadiativeWrenchModel This class represents a radiation wrench sensitive spacecraft. ...
AeroWrenchModel This class represents a drag wrench sensitive spacecraft. ...