예제 #1
0
        public void DoEngineFit()
        {
            SolverJet jetEngine = engineSolver as SolverJet;

            jetEngine.FitEngine(dryThrust * 1000d, drySFC, wetThrust * 1000d, idleNPR, defaultTPR: defaultTPR);

            Area             = (float)jetEngine.GetAref();
            FHV              = (float)jetEngine.GetFHV();
            TAB              = (float)jetEngine.GetTAB();
            minThrottle      = (float)jetEngine.GetMinThrottle();
            turbineAreaRatio = (float)jetEngine.GetTurbineAreaRatio();

            PushAreaToInlet();
        }
예제 #2
0
        public override void CreateEngine()
        {
            //           bool DREactive = AssemblyLoader.loadedAssemblies.Any(
            //               a => a.assembly.GetName().Name.Equals("DeadlyReentry.dll", StringComparison.InvariantCultureIgnoreCase));
            //         heatProduction = (float)part.maxTemp * 0.1f;
            engineSolver = solverJet = new SolverJet();
            solverJet.InitializeOverallEngineData(
                Area,
                BPR,
                CPR,
                FPR,
                Mdes,
                Tdes,
                eta_c,
                eta_t,
                eta_n,
                FHV,
                TIT,
                TAB,
                minThrottle,
                turbineAreaRatio,
                exhaustMixer,
                adjustableNozzle,
                unifiedThrottle
                );
            useAtmCurve   = atmChangeFlow = useVelCurve = useAtmCurveIsp = useVelCurveIsp = false;
            maxEngineTemp = maxT3;
            if (autoignitionTemp < 0f || float.IsInfinity(autoignitionTemp))
            {
                autoignitionTemp = 500f; // Autoignition of Kerosene is 493.15K
            }
            PushAreaToInlet();

            // set heat production
            heatProduction = Mathf.Min(10f, (1f - eta_c) * (1f - eta_t) * (1f - eta_n) * (10000f + TAB * 10f) / (1f + BPR * 0.5f));
        }