/// <summary> /// erstellt eine Kopie einer vorhandenen Motor-Steuerung /// </summary> /// <param name="motor">ursprünglicher Motor</param> public EngineSimulator(EngineSimulator motor) { gas = motor.gas; gasMuss = motor.gasMuss; latenzMotor = new Latenz(motor.latenzMotor); latenzSteuerung = new Latenz(motor.latenzSteuerung); upmIst = motor.upmIst; upmMax = motor.upmMax; upmSoll = motor.upmSoll; }
static double RpmLast(double throttle, int count, EngineSimulator engine) { throttle *= 0.01; var temp = new EngineSimulator(engine); for (int i = 0; i < count; i++) { temp.Rechne(throttle); } return(temp.upmIst); }
double NextCalc(double currentRpm, double targetRpm) { var temp = new EngineSimulator(engine); for (int i = 0; i < 120; i++) { temp.Rechne(currentRpm < targetRpm ? 1.0 : 0.0); } double nextIstDrehzahl = temp.upmIst; return(nextIstDrehzahl < targetRpm ? 100 : 0); }