double FGPropeller::Calculate(double PowerAvailable)
{
double J, C_Thrust, omega;
- double Vel = fdmex->GetTranslation()->GetvAeroUVW(eU);
+ double Vel = fdmex->GetTranslation()->GetAeroUVW(eU);
double rho = fdmex->GetAtmosphere()->GetDensity();
double RPS = RPM/60.0;
double alpha, beta;
// Check for windmilling.
double radius = Diameter * 0.375; // 75% of radius
double windmill_cutoff = tan(Pitch * 1.745329E-2) * omega * radius;
- if (Vel > windmill_cutoff) {
- cout << "Windmilling: " << Vel << " > " << windmill_cutoff << endl;
+ if (Vel > windmill_cutoff)
Thrust = -Thrust;
- }
vFn(1) = Thrust;
ExcessTorque = PowerAvailable / omega;
RPM = (RPS + ((ExcessTorque / Ixx) / (2.0 * M_PI)) * deltaT) * 60.0;
+ // The friction from the engine should
+ // stop it somewhere; I chose an
+ // arbitrary point.
+ if (RPM < 5.0)
+ RPM = 0;
+
vMn = fdmex->GetRotation()->GetPQR()*vH + vTorque*Sense;
return Thrust; // return thrust in pounds
double cPReq, RPS = RPM / 60.0;
- double J = fdmex->GetTranslation()->GetvAeroUVW(eU) / (Diameter * RPS);
+ double J = fdmex->GetTranslation()->GetAeroUVW(eU) / (Diameter * RPS);
double rho = fdmex->GetAtmosphere()->GetDensity();
if (MaxPitch == MinPitch) { // Fixed pitch prop