faa.tg.aircraft.adm.engine
Class Engine

java.lang.Object
  extended by faa.tg.aircraft.adm.engine.Engine
All Implemented Interfaces:
Immutable, java.io.Serializable
Direct Known Subclasses:
JetEngine, PistonEngine, TurboPropEngine

public abstract class Engine
extends java.lang.Object
implements java.io.Serializable, Immutable

 Engine represents the abstract object for engine types.
 The Engine determines the actual thrust and fuel flow of the aircraft used
 to meet the desired commands determined by the Control Logic. In order to
 calculate the thrust and fuel flow, the current atmospheric conditions
 will be considered.

 See section 11 of the Detailed Design Document for a discussion
 of design issues.
 
See the source: Engine.java

Version:
$Id: Engine.java,v 3.6 2008/04/25 15:10:29 lykensj Exp $
Author:
Tim Kimmet
See Also:
JetEngine, Thrust, FuelFlowRate, Serialized Form

Field Summary
static java.lang.String CVS_VERSION_ID
          The CVS Version ID.
(package private) static long serialVersionUID
           
 
Constructor Summary
Engine()
           
 
Method Summary
abstract  FuelFlowRate calcFuelFlowRate(Thrust thrust, Altitude alt, TrueAirspeed trueAirspeed)
          Calculates and returns the fuel flow (burn) rate of the engine at the given altitude and speed.
abstract  Thrust getClimbThrust(Altitude altitude, TrueAirspeed trueAirspeed)
          Returns the climb (maximum achievable) thrust of the engine for the specified altitude and speed.
abstract  Thrust getDescentThrust(Altitude altitude, TrueAirspeed trueAirspeed)
          Calculates and returns the descent thrust of the engine.
abstract  TrueAirspeed getMaxSpeedForLandingGear()
           
 Thrust getMaxThrustChange(Altitude alt, TrueAirspeed tas, Time timeStep)
          Returns the amount that the thrust can change in a timeStep.
abstract  java.lang.String getName()
          Returns the name of the engine.
abstract  IndicatedAirspeed getRotationSpeedIncrement()
          This is the amount of speed beyond the rotation speed that the aircraft has to achieve before it's allowed to lift off.
abstract  Thrust getTakeoffThrust(Altitude alt, TrueAirspeed tas)
          Method to return the takeoff thrust of the engine.
abstract  Thrust getTouchdownThrust(Altitude alt, TrueAirspeed tas)
          Return the touchdown thrust of the engine.
protected abstract  double spoolingTime()
           
 Thrust temperThrustChange(Thrust currentThrust, Thrust desiredThrust, Altitude alt, TrueAirspeed tas, Time timeStep)
          Tempers a proposed thrust to make sure that it doesn't change too much in a time step due to the restrictions of an engine.
 Thrust temperThrustLimit(Thrust desiredThrust, Altitude alt, TrueAirspeed tas)
          Tempers a proposed thrust to make sure that it doesn't go higher than MaxThrust and lower than Idle Thrust.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

CVS_VERSION_ID

public static final java.lang.String CVS_VERSION_ID
The CVS Version ID.

See Also:
Constant Field Values
Constructor Detail

Engine

public Engine()
Method Detail

temperThrustChange

public Thrust temperThrustChange(Thrust currentThrust,
                                 Thrust desiredThrust,
                                 Altitude alt,
                                 TrueAirspeed tas,
                                 Time timeStep)
Tempers a proposed thrust to make sure that it doesn't change too much in a time step due to the restrictions of an engine.

Parameters:
currentThrust - The old thrust value for the engine.
desiredThrust - The new thrust value suggested.
alt - The altitude of the aircraft.
tas - The true airspeed of the aircraft.
timeStep - The time step used.
Returns:
Internal thrust value to use (within the maximum thrust change).

temperThrustLimit

public Thrust temperThrustLimit(Thrust desiredThrust,
                                Altitude alt,
                                TrueAirspeed tas)
Tempers a proposed thrust to make sure that it doesn't go higher than MaxThrust and lower than Idle Thrust. This method is not called by all the controllers, and some Controllers (Touchdown, TakeOff) actually command Thrusts outside of the boundary. This is for standard flight.

Parameters:
desiredThrust - The proposed thrust.
alt - The altitude of the aircraft.
tas - The true airspeed of the aicraft.

getClimbThrust

public abstract Thrust getClimbThrust(Altitude altitude,
                                      TrueAirspeed trueAirspeed)
Returns the climb (maximum achievable) thrust of the engine for the specified altitude and speed.

Parameters:
altitude - Altitude of the aircraft.
trueAirspeed - The true airspeed of the aircraft.

getDescentThrust

public abstract Thrust getDescentThrust(Altitude altitude,
                                        TrueAirspeed trueAirspeed)
Calculates and returns the descent thrust of the engine.

Parameters:
altitude - Altitude of the aircraft.
trueAirspeed - The true airspeed of the aircraft.
Returns:
Thrust object containing the idle thrust value at the given altitude and speed.

getMaxThrustChange

public Thrust getMaxThrustChange(Altitude alt,
                                 TrueAirspeed tas,
                                 Time timeStep)
Returns the amount that the thrust can change in a timeStep.


getTouchdownThrust

public abstract Thrust getTouchdownThrust(Altitude alt,
                                          TrueAirspeed tas)
Return the touchdown thrust of the engine. This allows the thrust to be set be zero after touchdown, or to a negative thrust if reverse thrusters are available.

Parameters:
alt - The altitude of the runway.
tas - The true airspeed of the aircraft.

getTakeoffThrust

public abstract Thrust getTakeoffThrust(Altitude alt,
                                        TrueAirspeed tas)
Method to return the takeoff thrust of the engine. This allows the thrust to be set higher than the thrust typically used in a climb.

Parameters:
alt - The altitude of the runway
tas - The true airspeed of the aircraft
Returns:
Thrust used during takeoff.

calcFuelFlowRate

public abstract FuelFlowRate calcFuelFlowRate(Thrust thrust,
                                              Altitude alt,
                                              TrueAirspeed trueAirspeed)
Calculates and returns the fuel flow (burn) rate of the engine at the given altitude and speed.

Parameters:
thrust - The thrust of the engine.
alt - The altitude of the aircraft.
trueAirspeed - The true airspeed of the aircraft.

getRotationSpeedIncrement

public abstract IndicatedAirspeed getRotationSpeedIncrement()
This is the amount of speed beyond the rotation speed that the aircraft has to achieve before it's allowed to lift off. This varies per engine.


getMaxSpeedForLandingGear

public abstract TrueAirspeed getMaxSpeedForLandingGear()

spoolingTime

protected abstract double spoolingTime()

getName

public abstract java.lang.String getName()
Returns the name of the engine.