Exemple #1
0
        public void StartStop()
        {
            model.InitStopped();
            model.throttle = 0.0;
            model.phase    = Engine.Phase.START;

            for (double t = 0.0; t < 30.0; t += 0.1)
            {
                model.Update(0.1);
                Console.WriteLine("Phase " + model.phase + " RPM " + model.RPM.ToStr() + " accelerationRPM " + model.accelerationRPM.ToStr() + " Qeng " + model.Qeng.ToStr());
            }

            Assert.AreEqual(Engine.Phase.RUN, model.phase);
            Assert.IsTrue(model.RPM > 0.9 * model.accelerationRPM);
            Assert.IsTrue(model.RPM > 0.9 * model.designRPM * model.idleRatio);

            model.phase = Engine.Phase.CUTOFF;
            for (double t = 0.0; t < 30.0; t += 0.1)
            {
                model.Update(0.1);
                Console.WriteLine("Phase " + model.phase + " RPM " + model.RPM.ToStr() + " accelerationRPM " + model.accelerationRPM.ToStr() + " Qeng " + model.Qeng.ToStr());
            }

            Assert.IsTrue(model.RPM < model.accelerationRPM);
        }
Exemple #2
0
 public override void InitEngine(bool running)
 {
     UseEngineModel         = true;
     GearBox.MainRotorRatio = Engine.designRPM / MainRotor.designRPM;
     GearBox.TailRotorRatio = Engine.designRPM / TailRotor.designRPM;
     if (running)
     {
         MainRotor.RotSpeed = MainRotor.designOmega;
         TailRotor.RotSpeed = TailRotor.designOmega;
         Engine.Init(600);
     }
     else
     {
         Engine.InitStopped();
     }
 }
Exemple #3
0
 public override void InitEngine(bool running)
 {
     UseEngineModel         = true;
     GearBox.MainRotorRatio = Engine.designRPM / Rotors[0].designRPM;
     if (running)
     {
         foreach (var rotor in Rotors)
         {
             rotor.RotSpeed = rotor.designOmega;
         }
         Engine.Init(600);
     }
     else
     {
         Engine.InitStopped();
     }
 }