]> git.mxchange.org Git - flightgear.git/commitdiff
Changed starting fuel flow. Fixed aborted start behavior.
authorehofman <ehofman>
Thu, 15 Oct 2009 16:17:45 +0000 (16:17 +0000)
committerTim Moore <timoore@redhat.com>
Fri, 16 Oct 2009 09:23:07 +0000 (11:23 +0200)
src/FDM/JSBSim/models/propulsion/FGTurbine.cpp

index 20e5264195e77aa0937f20485b038beebae9316e..f17c05ee789f7f97ed61221aa16bbd224a3bbc8c 100644 (file)
@@ -113,6 +113,7 @@ double FGTurbine::Calculate(void)
   double thrust;
 
   TAT = (Auxiliary->GetTotalTemperature() - 491.69) * 0.5555556;
+  double qbar = Auxiliary->Getqbar();
   dt = State->Getdt() * Propulsion->GetRate();
   ThrottlePos = FCS->GetThrottlePos(EngineNumber);
   if (ThrottlePos > 1.0) {
@@ -141,7 +142,12 @@ double FGTurbine::Calculate(void)
   if (!Running && Cutoff && Starter) {
      if (phase == tpOff) phase = tpSpinUp;
      }
-  if (!Running && !Cutoff && (N2 > 15.0)) phase = tpStart;
+
+  // start
+  if ((Starter == true) || (qbar > 30.0)) {
+    if (!Running && !Cutoff && (N2 > 15.0)) phase = tpStart;
+  }
+
   if (Cutoff && (phase != tpSpinUp)) phase = tpOff;
   if (dt == 0) phase = tpTrim;
   if (Starved) phase = tpOff;
@@ -272,6 +278,7 @@ double FGTurbine::SpinUp(void)
   OilTemp_degK = Seek(&OilTemp_degK, TAT + 273.0, 0.2, 0.2);
   EPR = 1.0;
   NozzlePosition = 1.0;
+  if (Starter == false) phase = tpOff;
   return 0.0;
 }
 
@@ -279,15 +286,17 @@ double FGTurbine::SpinUp(void)
 
 double FGTurbine::Start(void)
 {
+  double qbar = Auxiliary->Getqbar();
   if ((N2 > 15.0) && !Starved) {       // minimum 15% N2 needed for start
     Cranking = true;                   // provided for sound effects signal
     if (N2 < IdleN2) {
       N2 = Seek(&N2, IdleN2, 2.0, N2/2.0);
       N1 = Seek(&N1, IdleN1, 1.4, N1/2.0);
       EGT_degC = Seek(&EGT_degC, TAT + 363.1, 21.3, 7.3);
-      FuelFlow_pph = Seek(&FuelFlow_pph, IdleFF, 103.7, 103.7);
+      FuelFlow_pph = IdleFF * N2 / IdleN2;
       OilPressure_psi = N2 * 0.62;
       ConsumeFuel();
+      if ((Starter == false) && (qbar < 30.0)) phase = tpOff; // aborted start
       }
     else {
       phase = tpRun;