]> git.mxchange.org Git - flightgear.git/commitdiff
Sync. with JSBSim cvs
authorehofman <ehofman>
Tue, 26 Aug 2008 08:02:31 +0000 (08:02 +0000)
committerehofman <ehofman>
Tue, 26 Aug 2008 08:02:31 +0000 (08:02 +0000)
src/FDM/JSBSim/models/flight_control/FGGain.cpp
src/FDM/JSBSim/models/propulsion/FGPiston.cpp

index d7eb22fc177ad308ca34433deed2584c246ee2cf..df0a0bf264c9c24acb67b9d3a88fc1f0aca8af1c 100644 (file)
@@ -105,7 +105,7 @@ FGGain::FGGain(FGFCS* fcs, Element* element) : FGFCSComponent(fcs, element)
     zero_centered = element->FindElement("zero_centered");
     //ToDo if zero centered, then mins must be <0 and max's must be >0
     if (zero_centered) {
-      sZeroCentered = zero_centered->FindElementValue("zero_centered");
+      sZeroCentered = element->FindElementValue("zero_centered");
       if (sZeroCentered == string("0") || sZeroCentered == string("false")) {
         ZeroCentered = false;
       }
index a68f0a9b0c2342e89852af9f77385b25e724f3e5..809cfadcef8c6e5f67236c96a95098bec781274a 100644 (file)
@@ -80,7 +80,7 @@ FGPiston::FGPiston(FGFDMExec* exec, Element* el, int engine_number)
   MaxHP = 200;
   MinManifoldPressure_inHg = 6.5;
   MaxManifoldPressure_inHg = 28.5;
-  BSFC = 0.45;
+  BSFC = -1;
 
   // These are internal program variables
 
@@ -234,6 +234,12 @@ Manifold_Pressure_Lookup = new
     if (el->FindElement("ratedaltitude3"))
       RatedAltitude[2] = el->FindElementValueAsNumberConvertTo("ratedaltitude3", "FT");
   }
+
+  // Create a BSFC to match the engine if not provided
+  // The 0.8 in the equation below is volumetric efficiency
+  if (BSFC < 0) {
+      BSFC = ( Displacement * MaxRPM * 0.8 ) / (9411 * MaxHP);
+  }
   char property_name[80];
   snprintf(property_name, 80, "propulsion/engine[%d]/power_hp", EngineNumber);
   PropertyManager->Tie(property_name, &HP);