]> git.mxchange.org Git - flightgear.git/blob - src/FDM/YASim/PistonEngine.hpp
Constant-speed props were seeking to engine speed, not prop speed.
[flightgear.git] / src / FDM / YASim / PistonEngine.hpp
1 #ifndef _PISTONENGINE_HPP
2 #define _PISTONENGINE_HPP
3
4 #include "Engine.hpp"
5
6 namespace yasim {
7
8 class PistonEngine : public Engine {
9 public:
10     virtual PistonEngine* isPistonEngine() { return this; }
11
12     // Initializes an engine from known "takeoff" parameters.
13     PistonEngine(float power, float spd);
14     void setTurboParams(float mul, float maxMP);
15     void setDisplacement(float d);
16     void setCompression(float c);
17
18     bool isCranking();
19     float getMP();
20     float getEGT();
21     float getMaxPower(); // max sea-level power
22
23     virtual void calc(float pressure, float temp, float speed);
24     virtual float getTorque();
25     virtual float getFuelFlow();
26
27 private:
28     // Static configuration:
29     float _power0;   // reference power setting
30     float _omega0;   //   "       engine speed
31     float _rho0;     //   "       manifold air density
32     float _f0;       // "ideal" fuel flow at P0/omega0
33     float _mixCoeff; // fuel flow per omega at full mixture
34     float _turbo;    // (or super-)charger pressure multiplier
35     float _maxMP;    // wastegate setting
36     float _displacement; // piston stroke volume
37     float _compression;  // compression ratio (>1)
38
39     // Runtime state/output:
40     float _mp;
41     float _torque;
42     float _fuelFlow;
43     float _egt;
44 };
45
46 }; // namespace yasim
47 #endif // _PISTONENGINE_HPP