Esempio n. 1
0
        public double CalculateIAS()
        {
            //stag pressure at pitot tube face / ambient pressure
            double pressureRatio = FARAeroUtil.RayleighPitotTubeStagPressure(_vessel.mach);

            double velocity = pressureRatio - 1;

            velocity *= FARAtmosphere.GetPressure(_vessel) * 2;
            velocity /= 1.225;
            velocity  = Math.Sqrt(velocity);

            return(velocity);
        }
        private void StabDerivCalcButtonAction()
        {
            CelestialBody body = _bodySettingDropdown.ActiveSelection;

            FARAeroUtil.UpdateCurrentActiveBody(body);
            altitude = Regex.Replace(altitude, @"[^-?[0-9]*(\.[0-9]*)?]", "");
            double altitudeDouble = Convert.ToDouble(altitude) * 1000;

            machNumber = Regex.Replace(machNumber, @"[^-?[0-9]*(\.[0-9]*)?]", "");
            double machDouble           = FARMathUtil.Clamp(Convert.ToSingle(machNumber), 0.001, float.PositiveInfinity);
            int    flapsettingInt       = _flapSettingDropdown.ActiveSelection;
            bool   spoilersDeployedBool = spoilersDeployed;

            if (FARAtmosphere.GetPressure(body, new Vector3d(0, 0, altitudeDouble), Planetarium.GetUniversalTime()) > 0)
            {
                stabDerivOutput =
                    simManager.StabDerivCalculator.CalculateStabilityDerivs(body,
                                                                            altitudeDouble,
                                                                            machDouble,
                                                                            flapsettingInt,
                                                                            spoilersDeployedBool,
                                                                            0,
                                                                            0,
                                                                            0);
                simManager.vehicleData = stabDerivOutput;
                SetAngleVectors(stabDerivOutput.stableAoA);
            }
            else
            {
                PopupDialog.SpawnPopupDialog(new Vector2(0, 0),
                                             new Vector2(0, 0),
                                             "FARStabDerivError",
                                             Localizer.Format("FAREditorStabDerivError"),
                                             Localizer.Format("FAREditorStabDerivErrorExp"),
                                             Localizer.Format("FARGUIOKButton"),
                                             true,
                                             HighLogic.UISkin);
            }
        }