User Manual 4.0 Wrench models

De Wiki
Révision de 20 février 2018 à 12:13 par Admin (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher


Introduction

Scope

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

Javadoc

|=(% colspan="3" %)Library|=(% colspan="6" %)Javadoc |(% colspan="3" %)Patrius|(% colspan="6" %)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
||width="950"]]


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

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.

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 :

//<del></del> create an assembly builder <del></del>
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();
 
//<del></del> define spacecraft state <del></del>
 
// 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);
 
//<del></del> link the assembly to the frames tree, for forces computation <del></del>
assembly.initMainPartFrame(state);
 
//<del></del> create an aerodynamic model <del></del>
final AeroWrenchModel assemblyModel = new AeroWrenchModel(assembly);
 
//<del></del> create the wrench model <del></del>
// 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

|(% colspan="3" %)WrenchModel|(% colspan="6" %)This interface represents a static wrench model.|(% colspan="1" %)... |(% colspan="3" %)RadiationWrenchSensitive|(% colspan="6" %)This interface represents a solar wrench sensitive assembly.|(% colspan="1" %)... |(% colspan="3" %)DragWrenchSensitive|(% colspan="6" %)This interface represents a drag wrench sensitive assembly.|(% colspan="1" %)...


Classes

|=(% colspan="3" %)Class|=(% colspan="6" %)Summary|=(% colspan="1" %)Javadoc |(% colspan="3" %)Wrench|(% colspan="6" %)This class represents a static wrench.|(% colspan="1" %)... |(% colspan="3" %)DragWrench|(% colspan="6" %)This class represents the drag wrench.|(% colspan="1" %)... |(% colspan="3" %)SolarRadiationWrench|(% colspan="6" %)This class represents the solar radiation wrench.|(% colspan="1" %)... |(% colspan="3" %)GravitationalAttractionWrench|(% colspan="6" %)This class represents the gravitational attraction wrench.|(% colspan="1" %)... |(% colspan="3" %)GenericWrenchModel|(% colspan="6" %)This class represents the generic wrench model.|(% colspan="1" %)... |(% 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" %)... |(% colspan="3" %)MagneticMoment|(% colspan="6" %)This class represents a magnetic moment.|(% colspan="1" %)... |(% colspan="3" %)DirectRadiativeWrenchModel|(% colspan="6" %)This class represents a radiation wrench sensitive spacecraft.|(% colspan="1" %)... |(% colspan="3" %)AeroWrenchModel|(% colspan="6" %)This class represents a drag wrench sensitive spacecraft.|(% colspan="1" %)...