Пример #1
0
    def compute_flight_points(self, flight_point: FlightPoint):

        if flight_point.thrust_is_regulated or flight_point.thrust_rate is None:
            flight_point.thrust_rate = flight_point.thrust / self.max_thrust
        else:
            flight_point.thrust = self.max_thrust * flight_point.thrust_rate

        flight_point.sfc = self.max_sfc * (1.0 + flight_point.thrust_rate) / 2.0
Пример #2
0
    def compute_flight_points(self, flight_points: Union[FlightPoint,
                                                         pd.DataFrame]):

        if isinstance(flight_points, FlightPoint):
            flight_points_per_engine = FlightPoint(flight_points)
        else:
            flight_points_per_engine = flight_points.copy()

        if flight_points.thrust is not None:
            flight_points_per_engine.thrust = flight_points.thrust / self.engine_count

        self.engine.compute_flight_points(flight_points_per_engine)
        flight_points.sfc = flight_points_per_engine.sfc
        flight_points.thrust = flight_points_per_engine.thrust * self.engine_count
        flight_points.thrust_rate = flight_points_per_engine.thrust_rate
Пример #3
0
 def _compute_propulsion(self, flight_point: FlightPoint):
     flight_point.thrust = flight_point.drag
     flight_point.thrust_is_regulated = True
     self.propulsion.compute_flight_points(flight_point)