fr.cnes.sirius.patrius.assembly
Class Vehicle

java.lang.Object
  extended by fr.cnes.sirius.patrius.assembly.Vehicle
All Implemented Interfaces:
Serializable

public class Vehicle
extends Object
implements Serializable

This class implements a vehicle object : a satellite composed of a main shape, solar panels, tanks and engines. It contains aerodynamic and radiative properties (visible and IR).

This vehicle is a builder and returns an Assembly object to be used for propagation. Use setters to build the satellite then call method createAssembly(Frame) to return the Assembly

Since:
3.4
Author:
Thomas Rodrigues
See Also:
Assembly, Serialized Form
Concurrency :
not thread-safe

Constructor Summary
Vehicle()
          Constructor.
 
Method Summary
 void addEngine(PropulsiveProperty engine)
          Add an engine to the vehicle.
 void addSolarPanel(Vector3D normalPanel, double areaPanel)
          Add a solar panel to the vehicle.
 void addTank(TankProperty tank)
          Add a tank to the vehicle.
 Assembly createAssembly(Frame frame)
          Create an Assembly.
 Assembly createAssembly(Frame frame, double cMass, double cDrag, double cSRP)
          Create an Assembly with multiplicative coefficients to take into account the change in surface for drag or SRP during a propagation of the change of dry mass.
 IParamDiffFunction[] getAerodynamicsProperties()
          Returns the aero properties : drag and lift coefficients.
 double getDryMass()
          Returns dry mass.
 List<PropulsiveProperty> getEnginesList()
          Returns the engines list.
 double getErgolsMass()
          Returns the sum of ergols masses.
 CrossSectionProvider getMainShape()
          Returns the main shape.
 double[] getRadiativeProperties()
          Returns the radiative properties : absorption, specular and diffusion coefficient (visible and IR), as an array : [0] : absorption coefficient (visible) [1] : specular coefficient (visible) [2] : diffusion coefficient (visible) [3] : absorption coefficient (IR) [4] : specular coefficient (IR) [5] : diffusion coefficient (IR)
 List<Facet> getSolarPanelsList()
          Returns the solar panels list.
 List<TankProperty> getTanksList()
          Returns the tanks list.
 double getTotalMass()
          Returns total mass : sum of dry mass and ergol mass.
 void setAerodynamicsProperties(double cx, double cz)
          Set aerodynamics properties as constants.
 void setAerodynamicsProperties(IParamDiffFunction cx, IParamDiffFunction cz)
          Set aerodynamics properties as functions IParamDiffFunction only if possible : main shape must be a sphere or there must be no solar panels.
 void setDryMass(double mass)
          Set vehicle dry mass.
 void setMainShape(CrossSectionProvider shape)
          Set the main vehicle shape.
 void setRadiativeProperties(double ka, double ks, double kd, double kaIr, double ksIr, double kdIr)
          Set radiative properties.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Vehicle

public Vehicle()
Constructor. As this class is developed as a builder, vehicle properties are to be set by available setters.

Method Detail

createAssembly

public Assembly createAssembly(Frame frame)
                        throws OrekitException
Create an Assembly. Call to {createAssembly(Frame, double, double, double) with default multiplicative factors set to 1.

Parameters:
frame - frame link between tree of frames and spacecraft frame
Returns:
an assembly
Throws:
OrekitException - thrown if mass is negative

createAssembly

public Assembly createAssembly(Frame frame,
                               double cMass,
                               double cDrag,
                               double cSRP)
                        throws OrekitException
Create an Assembly with multiplicative coefficients to take into account the change in surface for drag or SRP during a propagation of the change of dry mass. Therefore, multiplicative factor for the mass, the drag/SRP area are to be given as input.

Warning: using this method, new tanks are created using cMass coefficients with current tanks. As a result, user-added tanks mass will not vary if using some mass equations.

Parameters:
frame - frame link between tree of frames and spacecraft frame
cMass - multiplicative factor on masses (dry and tanks)
cDrag - multiplicative factor on drag area
cSRP - multiplicative factor on SRP area
Returns:
an assembly
Throws:
OrekitException - thrown if mass is negative

setMainShape

public void setMainShape(CrossSectionProvider shape)
Set the main vehicle shape.

Parameters:
shape - main shape

addSolarPanel

public void addSolarPanel(Vector3D normalPanel,
                          double areaPanel)
Add a solar panel to the vehicle.

Parameters:
normalPanel - vector normal to the panel in satellite frame
areaPanel - panel area

addEngine

public void addEngine(PropulsiveProperty engine)
Add an engine to the vehicle.

Parameters:
engine - an engine

addTank

public void addTank(TankProperty tank)
Add a tank to the vehicle.

Parameters:
tank - a tank

setDryMass

public void setDryMass(double mass)
Set vehicle dry mass.

Parameters:
mass - dry mass

setAerodynamicsProperties

public void setAerodynamicsProperties(IParamDiffFunction cx,
                                      IParamDiffFunction cz)
Set aerodynamics properties as functions IParamDiffFunction only if possible : main shape must be a sphere or there must be no solar panels. An exception is thrown otherwise.

Parameters:
cx - drag coefficient function
cz - lift coefficient function
Throws:
IllegalArgumentException - if vehicle is inconsistent for aero properties

setAerodynamicsProperties

public void setAerodynamicsProperties(double cx,
                                      double cz)
Set aerodynamics properties as constants.

Parameters:
cx - constant drag coefficient
cz - constant lift coefficient

setRadiativeProperties

public void setRadiativeProperties(double ka,
                                   double ks,
                                   double kd,
                                   double kaIr,
                                   double ksIr,
                                   double kdIr)
Set radiative properties.

Parameters:
ka - absorption coefficient (visible)
ks - specular coefficient (visible)
kd - diffusion coefficient (visible)
kaIr - absorption coefficient (IR)
ksIr - specular coefficient (IR)
kdIr - diffusion coefficient (IR)

getMainShape

public CrossSectionProvider getMainShape()
Returns the main shape.

Returns:
main shape

getSolarPanelsList

public List<Facet> getSolarPanelsList()
Returns the solar panels list.

Returns:
solar panels list

getEnginesList

public List<PropulsiveProperty> getEnginesList()
Returns the engines list.

Returns:
engines list

getTanksList

public List<TankProperty> getTanksList()
Returns the tanks list.

Returns:
tanks list

getDryMass

public double getDryMass()
Returns dry mass.

Returns:
dry mass

getErgolsMass

public double getErgolsMass()
Returns the sum of ergols masses.

Returns:
total ergol mass

getTotalMass

public double getTotalMass()
Returns total mass : sum of dry mass and ergol mass.

Returns:
total mass

getAerodynamicsProperties

public IParamDiffFunction[] getAerodynamicsProperties()
Returns the aero properties : drag and lift coefficients.

Returns:
aero properties

getRadiativeProperties

public double[] getRadiativeProperties()
Returns the radiative properties : absorption, specular and diffusion coefficient (visible and IR), as an array : [0] : absorption coefficient (visible) [1] : specular coefficient (visible) [2] : diffusion coefficient (visible) [3] : absorption coefficient (IR) [4] : specular coefficient (IR) [5] : diffusion coefficient (IR)

Returns:
radiative properties


Copyright © 2017 CNES. All Rights Reserved.