User Manual 4.15 Wrench models
Sommaire
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
Please note that not all implementations are present in the following diagram for the sake of clarity.
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. | ... |
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. | ... |