]> git.mxchange.org Git - flightgear.git/blob - src/FDM/YASim/Propeller.hpp
Initial revision of Andy Ross's YASim code. This is (Y)et (A)nother Flight
[flightgear.git] / src / FDM / YASim / Propeller.hpp
1 #ifndef _PROPELLER_HPP
2 #define _PROPELLER_HPP
3
4 namespace yasim {
5
6 // A generic propeller model.  See the TeX documentation for
7 // implementation details, this is too hairy to explain in code
8 // comments.
9 class Propeller
10 {
11 public:
12     // Initializes a propeller with the specified "cruise" numbers
13     // for airspeed, RPM, power and air density, and two "takeoff"
14     // numbers for RPM and power (with air speed and density being
15     // zero and sea level).  RPM values are in radians per second, of
16     // course.
17     Propeller(float radius, float v, float omega, float rho, float power,
18               float omega0, float power0);
19
20     void calc(float density, float v, float omega,
21               float* thrustOut, float* torqueOut);
22
23 private:
24     float _r;           // characteristic radius
25     float _J0;          // zero-thrust advance ratio
26     float _lambdaS;     // "propeller stall" normalized advance ratio
27     float _F0;          // thrust coefficient
28     float _etaC;        // Peak efficiency
29     float _lambdaPeak;  // constant, ~0.759835;
30     float _beta;        // constant, ~1.48058;
31     float _takeoffCoef; // correction to get the zero-speed torque right
32 };
33
34 }; // namespace yasim
35 #endif // _PROPELLER_HPP