vehicle_systems#

This module contains a set of factory functions for setting up physical and system properties of a vehicle

Functions#

frame_fixed_panel_geometry(surface_normal, area)

Factory function for creating settings for a vehicle exterior panel that is fixed to a given frame.

time_varying_panel_geometry(...)

Factory function for creating settings for a vehicle exterior panel that has time-variable orientation in a given frame.

body_tracking_panel_geometry(body_to_track, ...)

Factory function for creating settings for a vehicle exterior panel that has where the surface normal tracks a given body

body_panel_settings(panel_geometry[, ...])

Factory function for creating settings for a full panel

full_panelled_body_settings(panel_settings)

Factory function for creating settings for a full panelled vehicle exterior

box_wing_panelled_body_settings(length, ...)

Factory function for creating a simple box-wing spacecraft exterior shape with reflection law settings.

frame_fixed_panel_geometry(surface_normal: numpy.ndarray[numpy.float64[3, 1]], area: float, frame_orientation: str = '') tudatpy.kernel.numerical_simulation.environment_setup.vehicle_systems.BodyPanelGeometrySettings#

Factory function for creating settings for a vehicle exterior panel that is fixed to a given frame.

Factory function for creating settings for a vehicle exterior panel that is fixed to a given frame, meaning that the orientation of the panel is fully defined by the rotation model(s) defined in the vehicle. The constant surface normal \(\hat{\mathbf{n}}^{\mathcal{F}}\) in frame \(\mathcal{F}\) is provided by the user. If the frame_orientation of this function is left empty, the panel is fixed to the body-frame, and \(\mathcal{F}\) is the body-fixed frame \(\mathcal{B}\). Alternatively, the frame_orientation may be defined as the identifier of the frame fixed to one of the vehicle parts (solar array, antenna, etc.). See full_panelled_body_settings() for the definition of rotation models of vehicle parts Note that this panel model does not contain information on panel location or shape, only its area and surface normal, and is therefore not suitable for computation of panel shadowing of torque computations.

Parameters:
  • surface_normal (np.array) – Panel outward surface normal vector (in specified frame)

  • area (float) – Panel surface area

  • frame_orientation (str, default = "") – Identifier of the frame to which the panel is fixed (if body-fixed frame, this can be left empty)

Returns:

Object defining settings for panel geometry

Return type:

BodyPanelGeometrySettings

time_varying_panel_geometry(surface_normal_function: Callable[[], numpy.ndarray[numpy.float64[3, 1]]], area: float, frame_orientation: str) tudatpy.kernel.numerical_simulation.environment_setup.vehicle_systems.BodyPanelGeometrySettings#

Factory function for creating settings for a vehicle exterior panel that has time-variable orientation in a given frame.

As frame_fixed_panel_geometry(), but with a time-variable outward surface normal \(\hat{\mathbf{n}}^{\mathcal{F}}(t)\)

Parameters:
  • surface_normal (np.array) – Panel outward surface normal vector (in specified frame)

  • area (float) – Panel surface area

  • frame_orientation (str, default = "") – Identifier of the frame to which the panel is fixed (if body-fixed frame, this can be left empty)

Returns:

Object defining settings for panel geometry

Return type:

BodyPanelGeometrySettings

body_tracking_panel_geometry(body_to_track: str, towards_tracked_body: bool, area: float, frame_orientation: str = '') tudatpy.kernel.numerical_simulation.environment_setup.vehicle_systems.BodyPanelGeometrySettings#

Factory function for creating settings for a vehicle exterior panel that has where the surface normal tracks a given body

Factory function for creating settings for a vehicle exterior panel that has where the surface normal tracks a given body, for instance to define the surface normal of a solar array to always point towards the Sun, or an antenna to always point towards the Earth. When using this option, the panel surface normal \(\hat{\mathbf{n}}\) is computed in an inertial frame based on the tracked body, and then (if necessary) rotated to the body-fixed frame. Note that this panel model does not contain information on panel location or shape, only its area and surface normal, and is therefore not suitable for computation of panel shadowing of torque computations.

Parameters:
  • body_to_track (str) – Name of the body towards (or away from) which the panel surface normal is to point

  • towards_tracked_body (bool) – Boolean defining whether the normal vector points towards (if true) or away from (if false) the tracked body

  • area (float) – Panel surface area

  • frame_orientation (str, default = "") – Identifier of the frame in which the panel is defined (with time-variable orientation, defined by tracked body). Note that this option is typically only relevant for internal book-keeping, and can be left empty

Returns:

Object defining settings for panel geometry

Return type:

BodyPanelGeometrySettings

body_panel_settings(panel_geometry: tudatpy.kernel.numerical_simulation.environment_setup.vehicle_systems.BodyPanelGeometrySettings, panel_reflection_law: tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.BodyPanelReflectionLawSettings = None, panel_type_id: str = '') tudatpy.kernel.numerical_simulation.environment_setup.vehicle_systems.BodyPanelSettings#

Factory function for creating settings for a full panel

Factory function for creating settings for a full panel (presently only geometry and reflection properties). The panel can also be endowed with an identifier to specify the type of the panel. This has no direct consequences for the model, but may be useful in estimation, to for instance estimate the reflection properties of all panels specified with identified “MLI” as a single parameter

Parameters:
  • panel_geometry (BodyPanelGeometrySettings) – Geometric properties of the panel (size and orientation, at least)

  • panel_reflection_law (BodyPanelReflectionLawSettings, default = None) – Reflection law settings of the panel (default none)

  • panel_type_id (str, default = "") – Optional identifier for panel type

Returns:

Object defining settings for a panel

Return type:

BodyPanelSettings

full_panelled_body_settings(panel_settings: List[tudatpy.kernel.numerical_simulation.environment_setup.vehicle_systems.BodyPanelSettings], part_rotation_model_settings: Dict[str, tudatpy.kernel.numerical_simulation.environment_setup.rotation_model.RotationModelSettings] = {}) tudatpy.kernel.numerical_simulation.environment_setup.vehicle_systems.FullPanelledBodySettings#

Factory function for creating settings for a full panelled vehicle exterior

Factory function for creating settings for a full panelled vehicle exterior, taking a list of panel settings, and (optionally) a list of rotation model settings for vehicle parts. The identifiers for the rotation models are used to specify the names of part-fixed frames, which are used by the frame_orientation inputs to factory functions creating settings for BodyPanelGeometrySettings. For instance, assigning a rotation model to frame LRO_SolarArray (dict key for part_rotation_model_settings) allows panels defined in the frame with this same frame orientation to be defined. The associated rotation model defines rotations from body-fixed frame \(\mathcal{B}\) to part-fixed frame \(\mathcal{F}_{j}\) (for part \(j\)). The rotation from part-fixed (where the surface normal is defined) to inertial frame is then computed from \(\mathbf{R}^{I/\mathcal{F}_{j}}=\mathbf{R}^{I/\mathcal{B}}\mathbf{R}^{\mathcal{B}/\mathcal{F}_{j}}\), where \(\mathbf{R}^{I/\mathcal{B}}\) defines the body’s orientation, and \(\mathbf{R}^{\mathcal{B}/\mathcal{F}_{j}}\) the part orientation (w.r.t. a body-fixed frame)

Parameters:
  • panel_settings (list[BodyPanelSettings]) – List of settings for body panels.

  • part_rotation_model_settings (dict[str,RotationModelSettings], default = dict()) – Rotation model settings per vehicle part (default empty, indicating no part-fixed frames are defined)

  • panel_type_id (str, default = "") – Optional identifier for panel type

Returns:

Object defining full panelled vehicle exterior

Return type:

FullPanelledBodySettings

box_wing_panelled_body_settings(length: float, width: float, height: float, solar_array_area: float, box_specular_reflectivity: float, box_diffuse_reflectivity: float, solar_array_specular_reflectivity: float, solar_array_diffuse_reflectivity: float, box_instantaneous_reradiation: bool = True, solar_array_instantaneous_reradiation: bool = True) tudatpy.kernel.numerical_simulation.environment_setup.vehicle_systems.FullPanelledBodySettings#

Factory function for creating a simple box-wing spacecraft exterior shape with reflection law settings.

This function creates a full_panelled_body_settings() with panel_settings generated from simple box-wing settings. The assumptions behind the box-wing model are:

  • The spacecraft shape is defined by a rectangular box (cuboid) and solar array

  • The box has its faces parallel to the xy-, xz- and yz-planes

  • The solar array surface normal always points towards the Sun

  • Each box face has identical reflection law settings, defined by specular_diffuse_body_panel_reflection() settings.

  • The solar array has reflection law settings, defined by specular_diffuse_body_panel_reflection() settings.

Parameters:
  • length (float) – Box length (size in body-fixed x-direction).

  • width (float) – Box width (size in body-fixed y-direction).

  • height (float) – Box height (size in body-fixed z-direction).

  • solar_array_area (float) – Surface area of the solar array.

  • box_specular_reflectivity (float) – Box secular reflectivity \(\rho\).

  • box_diffuse_reflectivity (float) – Box secular reflectivity \(\delta\).

  • solar_array_specular_reflectivity (float) – Solar array secular reflectivity \(\rho\).

  • solar_array_diffuse_reflectivity (float) – Solar array secular reflectivity \(\delta\).

  • box_instantaneous_reradiation (bool) – Boolean denoting whether absorbed radiation is instantaneously retransmitted from box (yes, if true).

  • solar_array_instantaneous_reradiation (bool) – Boolean denoting whether absorbed radiation is instantaneously retransmitted from solar array (yes, if true).

Returns:

Object defining full panelled vehicle exterior

Return type:

FullPanelledBodySettings

Classes#

BodyPanelGeometrySettings

Base class for defining the geometrical properties of a single panel on the vehicle's exterior

BodyPanelSettings

Class for defining the complete properties of a single panel on the vehicle's exterior

FullPanelledBodySettings

Class for providing the complete settings for a panelled body exterior

class BodyPanelGeometrySettings#

Base class for defining the geometrical properties of a single panel on the vehicle’s exterior

class BodyPanelSettings#

Class for defining the complete properties of a single panel on the vehicle’s exterior

class FullPanelledBodySettings#

Class for providing the complete settings for a panelled body exterior