1
0
Fork 0
flightgear/src/FDM/YASim/Propeller.hpp
david 86c3a3b5c4 Allow YASim flight models to override the hard-coded fine and coarse
propeller pitch stops for constant speed propellers.  The default
values are the same as the previous hard-coded values.  The new
attributes, "fine-stop" and "coarse-stop", are documented in the base
package, Docs/README.yasim.
2006-02-26 16:46:51 +00:00

52 lines
1.7 KiB
C++

#ifndef _PROPELLER_HPP
#define _PROPELLER_HPP
namespace yasim {
// A generic propeller model. See the TeX documentation for
// implementation details, this is too hairy to explain in code
// comments.
class Propeller
{
public:
// Initializes a propeller with the specified "cruise" numbers
// for airspeed, RPM, power and air density, and two "takeoff"
// numbers for RPM and power (with air speed and density being
// zero and sea level). RPM values are in radians per second, of
// course.
Propeller(float radius, float v, float omega, float rho, float power);
void setStops (float fine_stop, float coarse_stop);
void setTakeoff(float omega0, float power0);
void modPitch(float mod);
void setPropPitch(float proppitch);
void setPropFeather(int state);
void setManualPitch();
void calc(float density, float v, float omega,
float* thrustOut, float* torqueOut);
private:
float _r; // characteristic radius
float _j0; // zero-thrust advance ratio
float _baseJ0; // ... uncorrected for prop advance
float _f0; // thrust coefficient
float _etaC; // Peak efficiency
float _lambdaPeak; // constant, ~0.759835;
float _beta; // constant, ~1.48058;
float _tc0; // thrust "coefficient" at takeoff
float _fine_stop; // ratio for minimum pitch (high RPM)
float _coarse_stop; // ratio for maximum pitch (low RPM)
bool _matchTakeoff; // Does _tc0 mean anything?
bool _manual; // manual pitch mode
float _proppitch; // prop pitch control setting (0 ~ 1.0)
float _propfeather; // prop feather control setting (0 = norm, 1 = feather)
};
}; // namespace yasim
#endif // _PROPELLER_HPP