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); }
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(); } }
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(); } }