fds.models.station_keeping package

Submodules

fds.models.station_keeping.requests module

class fds.models.station_keeping.requests.EphemeridesRequest(timestep: float, types: list[str | EphemeridesType], mean: bool, osculating: bool)

Bases: StationKeepingOutputRequest

class EphemeridesType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: EnumFromInput

CARTESIAN = 'CARTESIAN'
KEPLERIAN = 'KEPLERIAN'
POWER_SYSTEM = 'POWER_SYSTEM'
property timestep: float
to_microservice_format()
property types: list[EphemeridesType]
class fds.models.station_keeping.requests.SpacecraftStatesRequest(mean: bool, osculating: bool)

Bases: StationKeepingOutputRequest

to_microservice_format()
class fds.models.station_keeping.requests.StationKeepingOutputRequest(mean: bool, osculating: bool)

Bases: object

property mean: bool
property osculating: bool
class fds.models.station_keeping.requests.ThrustEphemeridesRequest(mean: bool, osculating: bool)

Bases: StationKeepingOutputRequest

to_microservice_format()

fds.models.station_keeping.result module

class fds.models.station_keeping.result.ResultStationKeeping(report: Report, raw_ephemerides: list[list[float]], field_indexes: list[dict[str, int | str]], start_date: datetime, raw_spacecraft_states: dict | None = None)

Bases: object

class Report(number_of_burns: int, thrust_duration: float, total_consumption: float, total_delta_v: float, thruster_mean_duty_cycle: float, total_warmup_duty_cycle: float, mean_burn_duration_estimation: float, simulation_duration: float, number_of_orbital_periods: int, total_impulse: float, final_duty_cycle: float, maneuver_model: str, final_orbit: fds.models.orbits.Orbit | None)

Bases: object

classmethod create_from_api_results(results: NumericalLeoStationKeepingResponseResults)
final_duty_cycle: float
final_orbit: Orbit | None
maneuver_model: str
mean_burn_duration_estimation: float
number_of_burns: int
number_of_orbital_periods: int
simulation_duration: float
thrust_duration: float
thruster_mean_duty_cycle: float
total_consumption: float
total_delta_v: float
total_impulse: float
total_warmup_duty_cycle: float
property ephemerides_field_indexes: dict[str, int]
export_cartesian_ephemerides_data() list[dict] | None
export_keplerian_ephemerides_data() list[dict] | None
export_power_system_ephemerides_data() list[dict] | None
export_raw_ephemerides_data() list[dict]
export_state_error_ephemerides_data() list[dict] | None
classmethod from_microservice_response(response: NumericalLeoStationKeepingResponse, start_date: datetime | str)
generate_maneuver_roadmap(quaternion_step: float = 0.0) RoadmapFromActions

Generate a roadmap with the maneuvers performed during the station keeping. The roadmap will contain the quaternions and the firing dates.

Parameters:

quaternion_step (float) – The minimum time step between two quaternions (in seconds). Default is 0.0.

property raw_ephemerides: list[list[float]]
property raw_spacecraft_states: dict
property report: Report
property start_date: datetime
fds.models.station_keeping.result.get_ephemerides_data(raw_ephemerides: list[list[float]], field_indexes: dict[str, int], start_date: datetime) list[dict]
fds.models.station_keeping.result.select_ephemerides_data_with_specific_prefix(all_ephemerides_data: list[dict], prefix_list: str | list[str], remove_prefix: bool = True, keys_to_update: dict[str, str] | None = None)

fds.models.station_keeping.strategy module

class fds.models.station_keeping.strategy.StationKeepingStrategy(thrust_arcs_position: str | ThrustArcPosition, thrust_arcs_number: str | ThrustArcNumber, number_of_thrust_orbits: int, number_of_rest_orbits: int, number_of_shift_orbits: int, stop_thrust_at_eclipse: bool, thrust_arc_initialisation_kind: str | ThrustArcInitialisationKind, orbital_duty_cycle: float = None, thrust_arc_duration: float = None, custom_thrust_arc_position: CustomArcPosition = None, thrust_arc_mean_longitude_argument: float = None, dynamic_duty_cycle: bool = False)

Bases: Strategy

property dynamic_duty_cycle: bool
to_microservice_format() CustomManeuveringStrategy

fds.models.station_keeping.tolerance module

class fds.models.station_keeping.tolerance.AlongTrackTolerance(value: float)

Bases: Tolerance

to_microservice_format() AlongTrackTolerance
class fds.models.station_keeping.tolerance.SemiMajorAxisTolerance(value: float)

Bases: Tolerance

to_microservice_format() SmaTolerance
class fds.models.station_keeping.tolerance.Tolerance(value: float)

Bases: ABC

abstract to_microservice_format()
property value

fds.models.station_keeping.use_case module

class fds.models.station_keeping.use_case.LeoStationKeeping(initial_orbit: KeplerianOrbit, propagation_context: PropagationContext, spacecraft: SpacecraftSphere | SpacecraftBox, maximum_duration: int, tolerance: Tolerance, output_requests: list[StationKeepingOutputRequest], simulate_attitude_and_power_system: bool = False, strategy: StationKeepingStrategy = None, drag_lift_ratio: float = 0.0, srp_absorption_coefficient: float = 1.0, average_available_on_board_power: float = 0.0, nametag: str = None)

Bases: object

ResultType

alias of ResultStationKeeping

property average_available_on_board_power: float
property drag_lift_ratio: float
classmethod from_initial_orbital_state(initial_orbital_state: OrbitalState, maximum_duration: int, tolerance: Tolerance, output_requests: list[StationKeepingOutputRequest], simulate_attitude_and_power_system: bool = False, strategy: StationKeepingStrategy = None, drag_lift_ratio: float = 0.0, srp_absorption_coefficient: float = 1.0, average_available_on_board_power: float = 0.0, nametag: str = None)
Parameters:
  • initial_orbital_state (OrbitalState) – The orbital state of the spacecraft.

  • maximum_duration (int) – The maximum duration of the maneuver.

  • tolerance (Tolerance) – The tolerance object (SMA or ALONG_TRACK).

  • output_requests (list[StationKeepingOutputRequest]) – The list of output requests.

  • simulate_attitude_and_power_system (bool) – If True, the attitude and power system are simulated, and the average_available_on_board_power is only used to compute the duty cycle of the thruster. Defaults to False.

  • strategy (StationKeepingStrategy) – The strategy object. If None, the default strategy is used.

  • drag_lift_ratio (float) – The drag lift ratio. Defaults to 0.0.

  • srp_absorption_coefficient (float) – The SRP absorption coefficient. Defaults to 1.0.

  • average_available_on_board_power (float) – Unit: W. Average power available on board. If the attitude and power system are simulated, this value is used only to compute the duty cycle of the thruster. Defaults to 0.0.

  • nametag (str) – The name of the use case. Defaults to None.

property initial_orbit: KeplerianOrbit
property maximum_duration: int
property microservice_configuration: Configuration
property nametag: str
property output_requests: list[StationKeepingOutputRequest]
property propagation_context: PropagationContext
property request: NumericalLeoStationKeepingRequest
property response: NumericalLeoStationKeepingResponse
property result: ResultStationKeeping
run() LeoStationKeeping
property simulate_attitude_and_power_system: bool
property spacecraft: SpacecraftSphere | SpacecraftBox
property srp_absorption_coefficient: float
property start_date
property strategy: StationKeepingStrategy
property tolerance: Tolerance

Module contents