![]() |
VR-Forces 5.0.1 Developer's Guide
|
Implements the Breguet range equation V(L/D) Range = ---—*ln(Wi/Wf) g*SFC V = Velocity L/D = Lift/Drag ratio (aerodynamic efficiency) SFC = Specific fuel consumption (engine efficiency) Wi = initial weight Wf = final weight.
Subclasses implement various interpolation schemes.

Public Member Functions | |
| DtAircraftFuelConsumptionModel () | |
| virtual | ~DtAircraftFuelConsumptionModel () |
| virtual bool | isValid () const |
| virtual bool | addDataPoints (const DtRwAircraftEngineEfficiencyDataPointList &datapoints, double startMass, double endMass, std::ostream *errorStream=0)=0 |
| virtual double | calculateEfficiency (double range, double speed, double startMass, double endMass) const |
| virtual double | calculateRange (double speed, double altitude, double startMass, double endMass) const |
| virtual double | interpolateEfficiency (double speed, double altitude) const =0 |
| virtual double | fuelConsumed (double range, double speed, double altitude, double mass) const |
| virtual bool | shouldConsumeFuel () const |
| virtual void | setShouldConsumeFuel (bool shouldConsume) |
Static Public Member Functions | |
| static DtAircraftFuelConsumptionModel * | Create (const DtRwAircraftEngineEfficiencyDataPointList &datapoints) |
Protected Attributes | |
| bool | myShouldConsumeFuel |
| DtAircraftFuelConsumptionModel::DtAircraftFuelConsumptionModel | ( | ) |
|
virtual |
Virtual destructor.
|
static |
Factory function.
|
virtual |
Allows system to be configured but still warn user that something may be wrong.
Reimplemented in DtBilinearInterpolationAircraftFuelConsumptionModel, and DtConstantAircraftFuelConsumptionModel.
|
pure virtual |
Configure the model with a set of data points. Each data point has a range, altitude, and speed. Combined with the startMass and endMass, can be used to determine an engine efficiency.
| startMass | Starting mass of aircraft. |
| endMass | Ending mass of aircraft. For example if the aircraft starts out with a full fuel tank and uses all of it's fuel (the usual case for range specifications) then startMass would be the mass of the aircraft plus the mass of the full fuel tank and endMass would be the mass of the aircraft. This doesn't have to be the case though, if you knew the range when using half the fuel then you could use that. |
Implemented in DtBilinearInterpolationAircraftFuelConsumptionModel, DtConstantAircraftFuelConsumptionModel, and DtNoFuelUsageAircraftFuelConsumptionModel.
|
virtual |
Calculates an engine efficiency. This is a function of Breguet equation and generally should not be override by subclasses.
|
virtual |
Calculates the range at specific conditions.
Reimplemented in DtNoFuelUsageAircraftFuelConsumptionModel.
|
pure virtual |
Interpolate an engine efficiency at a given speed and altitude.
Implemented in DtBilinearInterpolationAircraftFuelConsumptionModel, DtConstantAircraftFuelConsumptionModel, and DtNoFuelUsageAircraftFuelConsumptionModel.
|
virtual |
Calculate the fuel consumed over a given range.
| mass | The mass of the aircraft (airframe + fuel) at the start of the movement. Does not take into account the amount of fuel the aircraft has, i.e. it may use more fuel than the aircraft has. It's up to the user to actually deal with decrementing the fuel. |
Reimplemented in DtNoFuelUsageAircraftFuelConsumptionModel.
|
virtual |
Returns true if the model should currently consume fuel.
Reimplemented in DtNoFuelUsageAircraftFuelConsumptionModel.
|
virtual |
Enables or disables fuel consumption.
|
protected |