X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FYASim%2FPistonEngine.hpp;h=40d6bac52e5dcbbca5cf98e7d012b74548eb5b8a;hb=6afe252440140c1e1fadcfe9aea2c1e31e1607f2;hp=2df500d9936b86f15f6f7f59a2c1f31689864710;hpb=e14aa3627fb633b9384ad6620a1f74043433dd38;p=flightgear.git diff --git a/src/FDM/YASim/PistonEngine.hpp b/src/FDM/YASim/PistonEngine.hpp index 2df500d99..40d6bac52 100644 --- a/src/FDM/YASim/PistonEngine.hpp +++ b/src/FDM/YASim/PistonEngine.hpp @@ -14,13 +14,20 @@ public: void setTurboParams(float mul, float maxMP); void setDisplacement(float d); void setCompression(float c); + void setWastegate(float norm) { _wastegate = norm; } + void setSupercharger(bool hasSuper) { _hasSuper = hasSuper; } + void setTurboLag(float lag) { _turboLag = lag; } bool isCranking(); float getMP(); float getEGT(); float getMaxPower(); // max sea-level power + float getBoost() { return _boostPressure; } + float getOilTemp() { return _oilTemp; } virtual void calc(float pressure, float temp, float speed); + virtual void stabilize(); + virtual void integrate(float dt); virtual float getTorque(); virtual float getFuelFlow(); @@ -32,7 +39,12 @@ private: float _f0; // "ideal" fuel flow at P0/omega0 float _mixCoeff; // fuel flow per omega at full mixture float _turbo; // (or super-)charger pressure multiplier - float _maxMP; // wastegate setting + bool _hasSuper; // true indicates gear-driven (not turbo) + float _turboLag; // turbo lag time in seconds + float _charge; // current {turbo|super}charge multiplier + float _chargeTarget; // eventual charge value + float _maxMP; // static maximum pressure + float _wastegate; // wastegate setting, [0:1] float _displacement; // piston stroke volume float _compression; // compression ratio (>1) @@ -41,6 +53,10 @@ private: float _torque; float _fuelFlow; float _egt; + float _boostPressure; + float _oilTemp; + float _oilTempTarget; + float _dOilTempdt; }; }; // namespace yasim