User Manual 4.13 Wrench models

De Wiki
Aller à : navigation, rechercher

Introduction

Scope

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

Javadoc

Library Javadoc
Patrius [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/package-summary.html 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

Please note that not all implementations are present in the following diagram for the sake of clarity.

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 BodyShape
  • 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.15e+07, -1.18e+07, -6.59e+05);
final Vector3D vel = new Vector3D(8.57e+02, 2.95e+03, -4.17e+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. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/WrenchModel.html ...]
RadiationWrenchSensitive This interface represents a solar wrench sensitive assembly. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/RadiationWrenchSensitive.html ...]
DragWrenchSensitive This interface represents a drag wrench sensitive assembly. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/DragWrenchSensitive.html ...]

Classes

Class Summary Javadoc
Wrench This class represents a static wrench. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/Wrench.html ...]
DragWrench This class represents the drag wrench. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/DragWrench.html ...]
SolarRadiationWrench This class represents the solar radiation wrench. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/SolarRadiationWrench.html ...]
GravitationalAttractionWrench This class represents the gravitational attraction wrench. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/GravitationalAttractionWrench.html ...]
GenericWrenchModel This class represents the generic wrench model. [[[:Modèle:JavaDoc4.13]]/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. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/wrenches/MagneticWrench.html ...]
MagneticMoment This class represents a magnetic moment. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/assembly/models/MagneticMoment.html ...]
DirectRadiativeWrenchModel This class represents a radiation wrench sensitive spacecraft. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/assembly/models/DirectRadiativeWrenchModel.html ...]
AeroWrenchModel This class represents a drag wrench sensitive spacecraft. [[[:Modèle:JavaDoc4.13]]/fr/cnes/sirius/patrius/assembly/models/AeroWrenchModel.html ...]