Beispiel #1
0
        /// <summary>
        /// 3.18
        /// </summary>
        /// <param name="wing"></param>
        /// <returns></returns>
        public double Get_hi_nos(WingOrient wing)
        {
            double l_1    = wing.X + wing.Wing.X_b + 0.5 * wing.Wing.B_b;
            double l_shtr = l_1 / Body.D;

            return(0.6 + 0.4 * (1 - Math.Exp(-0.5 * l_shtr)));
        }
Beispiel #2
0
        /// <summary>
        /// формула 5.39
        /// </summary>
        /// <param name="wing"></param>
        /// <param name="mach"></param>
        /// <param name="mode">0 - alpha 1- delta</param>
        /// <returns></returns>
        public double Get_X_Fa_or_delta(WingOrient wing, double mach, int mode = 0)
        {
            var x_ak         = wing.X + wing.Wing.X_ak;
            var b_ak         = wing.Wing.B_ak;
            var x_graf       = AeroGraphs.M2min1(mach) * wing.Wing.Lmb_k;
            var y_graf       = wing.Wing.Etta_k;
            var z_graf       = wing.Wing.Lmb_k * wing.Wing.GetTgHiM(0.5);
            var x_Fizkr_shtr = AeroGr.GetV("5_8", x_graf, y_graf, z_graf);

            var x_Fizkr = x_ak + b_ak * x_Fizkr_shtr;

            var d_shtr = wing.Wing.D / wing.Wing.L;
            var f_1    = AeroGr.GetV("5_11", d_shtr);

            f_1 *= 0.5 * wing.Wing.L_k;

            var x_Fdelta = x_Fizkr - f_1 * wing.Wing.GetTgHiM(0.5);

            var x_b       = wing.X + wing.Wing.X_b;
            var b_b       = wing.Wing.B_b;
            var x_Fb_shtr = x_Fizkr_shtr + 0.02 * wing.Wing.Lmb_k * wing.Wing.GetTgHiM(0.5);
            var f_Lhv     = Get_F_Lhv(wing, mach);
            var f_1Lhv    = Get_F_1Lhv(wing, mach);

            var x_Fif = x_b + b_b * x_Fb_shtr * f_Lhv * f_1Lhv;

            var k = mode == 0 ?
                    Get_kaa(wing, mach, Aero_v, Aero_a) :
                    Get_kd0(wing, mach, Aero_v, Aero_a);
            var K = mode == 0 ?
                    Get_Kaa(wing, mach, Aero_v, Aero_a) :
                    Get_kd0(wing, mach, Aero_v, Aero_a);

            return((x_Fizkr + (k - 1) * x_Fdelta + (K - k) * x_Fif) / K);
        }
Beispiel #3
0
        public double Get_kd0_star(WingOrient wing)
        {
            double kaa_star = Get_kaa_star(wing);
            double Kaa_star = Get_Kaa_star(wing);

            return(kaa_star * kaa_star / Kaa_star);
        }
Beispiel #4
0
        public double Get_kd0(WingOrient wing, double mach, double v, double a_m)
        {
            double kd0star = Get_kd0_star(wing);
            double hipc    = Get_hi_pc_shtr(wing, mach, v, a_m);
            double him     = Get_hi_M(mach);

            return(kd0star * hipc * him);
        }
Beispiel #5
0
        public double Get_kaa(WingOrient wing, double mach, double v, double a_m)
        {
            double kaastar = Get_kaa_star(wing);
            double hipc    = Get_hi_pc(wing, mach, v, a_m);
            double him     = Get_hi_M(mach);
            double hinos   = Get_hi_nos(wing);

            return(kaastar * hipc * him * hinos);
        }
Beispiel #6
0
        public double Get_X_Fdelta(WingOrient wing, double mach)
        {
            var x_Fizkr = Get_X_Fizkr(wing, mach);
            var d_shtr  = wing.Wing.D / wing.Wing.L;
            var f_1     = AeroGr.GetV("5_11", d_shtr);

            f_1 *= 0.5 * wing.Wing.L_k;
            return(x_Fizkr - f_1 * wing.Wing.GetTgHiM(0.5));
        }
Beispiel #7
0
        public double Get_Kd0(WingOrient wing, double mach, double v, double a_m)
        {
            double Kd0star = Get_Kd0_star(wing);
            double kd0star = Get_kd0_star(wing);
            double hipc    = Get_hi_pc_shtr(wing, mach, v, a_m);
            double him     = Get_hi_M(mach);
            double FLhv    = Get_F_Lhv(wing, mach);

            return((kd0star + (Kd0star - kd0star) * FLhv) * hipc * him);
        }
Beispiel #8
0
        /// <summary>
        /// ФОРМУЛА 3.16
        /// </summary>
        /// <param name="wing">ЧЕ ЗА КРЫЛО</param>
        /// <param name="mach">мах</param>
        /// <param name="v">кинематич коэфф. вязкости воздуха</param>
        /// <param name="a_m">скорость звука</param>
        /// <returns></returns>
        public double Get_hi_pc(WingOrient wing, double mach, double v, double a_m)
        {
            double d_shtr = wing.Wing.D / wing.Wing.L;
            double l_1    = wing.X + wing.Wing.X_b + 0.5 * wing.Wing.B_b;
            //ф. 3.17
            double delta_star_shtr = 0.093 * l_1 * (1 + 0.4 * mach + 0.147 * mach * mach - 0.006 * mach * mach * mach) / (Math.Pow(mach * a_m * l_1 / (v), 0.2) * Body.D);

            //ф. 3.16
            return((1 - (2 * d_shtr * d_shtr * delta_star_shtr) / (1 - d_shtr * d_shtr)) * (1 - (d_shtr * (wing.Wing.Etta_k - 1) * delta_star_shtr) / ((1 - d_shtr) * (wing.Wing.Etta_k + 1))));
        }
Beispiel #9
0
        public double Get_X_Fif(WingOrient wing, double mach)
        {
            var x_b       = wing.X + wing.Wing.X_b;
            var b_b       = wing.Wing.B_b;
            var x_Fizkr   = Get_X_Fizkr(wing, mach);
            var x_Fb_shtr = x_Fizkr + 0.02 * wing.Wing.Lmb_k * wing.Wing.GetTgHiM(0.5);
            var f_Lhv     = Get_F_Lhv(wing, mach);
            var f_1Lhv    = Get_F_1Lhv(wing, mach);

            return(x_b + b_b * x_Fb_shtr * f_Lhv * f_1Lhv);
        }
Beispiel #10
0
        public double Get_X_Fizkr(WingOrient wing, double mach)
        {
            var x_ak         = wing.X + wing.Wing.X_ak;
            var b_ak         = wing.Wing.B_ak;
            var x_graf       = AeroGraphs.M2min1(mach) * wing.Wing.Lmb_k;
            var y_graf       = wing.Wing.Etta_k;
            var z_graf       = wing.Wing.Lmb_k * wing.Wing.GetTgHiM(0.5);
            var x_Fizkr_shtr = AeroGr.GetV("5_8", x_graf, y_graf, z_graf);

            return(x_ak + b_ak * x_Fizkr_shtr);
        }
Beispiel #11
0
        public double Get_Kaa(WingOrient wing, double mach, double v, double a_m)
        {
            double Kaastar = Get_Kaa_star(wing);
            double kaastar = Get_kaa_star(wing);
            double hipc    = Get_hi_pc(wing, mach, v, a_m);
            double him     = Get_hi_M(mach);
            double hinos   = Get_hi_nos(wing);
            double FLhv    = Get_F_Lhv(wing, mach);

            return((kaastar + (Kaastar - kaastar) * FLhv) * hipc * him * hinos);
        }
Beispiel #12
0
        /// <summary>
        /// 3.57
        /// </summary>
        /// <param name="wing"></param>
        /// <param name="mach"></param>
        /// <param name="v"></param>
        /// <param name="a_m"></param>
        /// <returns></returns>
        public double Get_hi_pc_shtr(WingOrient wing, double mach, double v, double a_m)
        {
            double d_shtr = wing.Wing.D / wing.Wing.L;
            double l_1    = wing.X + wing.Wing.X_b + 0.5 * wing.Wing.B_b;
            //ф. 3.17
            double delta_star_shtr = 0.093 * l_1 * (1 + 0.4 * mach + 0.147 * mach * mach - 0.006 * mach * mach * mach) / (Math.Pow(mach * a_m * l_1 / (v), 0.2) * wing.Wing.D);

            var ex1 = (1.0 - d_shtr * (1 + delta_star_shtr)) / (1.0 - d_shtr);
            var ex2 = 1.0 - ((wing.Wing.Etta_k - 1) * d_shtr * (1 + delta_star_shtr)) / (wing.Wing.Etta_k + 1 - 2 * d_shtr);
            var ex3 = 1.0 - ((wing.Wing.Etta_k - 1) * d_shtr) / (wing.Wing.Etta_k + 1 - 2 * d_shtr);

            //ф. 3.57
            return(ex1 * ex2 / ex3);
        }
Beispiel #13
0
        public double Get_F_Lhv(WingOrient wing, double mach)
        {
            if (mach < 1.0)
            {
                return(1.0);
            }
            double d_shtr    = Body.D / wing.Wing.L;
            double b_b_shtr  = wing.Wing.B_b / (0.5 * Math.PI * Body.D * Math.Sqrt(mach * mach - 1));
            double l_hv      = Body.L - wing.X - wing.Wing.X_b - wing.Wing.B_b;
            double l_hv_shtr = l_hv / (0.5 * Math.PI * Body.D * Math.Sqrt(mach * mach - 1));
            double c         = (4 + 1 / wing.Wing.Etta_k) * (1 + 8 * d_shtr * d_shtr);
            double lapl1     = AeroGr.GetV("gauss", (b_b_shtr + l_hv_shtr) * Math.Sqrt(2 * c));
            double lapl2     = AeroGr.GetV("gauss", l_hv_shtr * Math.Sqrt(2 * c));

            return(1.0 - (Math.Sqrt(Math.PI) * (lapl1 - lapl2)) / (2 * b_b_shtr * Math.Sqrt(c)));
        }
Beispiel #14
0
        /// <summary>
        /// формула 5.49
        /// </summary>
        /// <param name="wing"></param>
        /// <param name="mach"></param>
        /// <returns></returns>
        public double Get_F_1Lhv(WingOrient wing, double mach)
        {
            if (mach < 1.0)
            {
                return(1.0);
            }
            double d_shtr    = Body.D / wing.Wing.L;
            double b_b_shtr  = wing.Wing.B_b / (0.5 * Math.PI * Body.D * Math.Sqrt(mach * mach - 1));
            double l_hv      = Body.L - wing.X - wing.Wing.X_b - wing.Wing.B_b;
            double l_hv_shtr = l_hv / (0.5 * Math.PI * Body.D * Math.Sqrt(mach * mach - 1));
            double c         = (4 + 1 / wing.Wing.Etta_k) * (1 + 8 * d_shtr * d_shtr);

            var    expr1 = (Math.Exp(-c * l_hv_shtr * l_hv_shtr) - Math.Exp(-c * (b_b_shtr + l_hv_shtr) * (b_b_shtr + l_hv_shtr))) / (c * b_b_shtr * b_b_shtr);
            double lapl1 = AeroGr.GetV("gauss", l_hv_shtr * Math.Sqrt(2 * c));
            var    expr2 = Math.Sqrt(Math.PI) * lapl1 / (b_b_shtr * Math.Sqrt(c));

            return(1.0 - expr1 + expr2);
        }
Beispiel #15
0
        public double Get_Kaa_star(WingOrient wing)
        {
            double d_shtr = Body.D / wing.Wing.L;

            return(1.0 + 3 * d_shtr - d_shtr * (1 - d_shtr) / wing.Wing.Etta_k);
        }
Beispiel #16
0
 public double Get_Kd0_star(WingOrient wing)
 {
     return(Get_kaa_star(wing));
 }
Beispiel #17
0
        public double Get_kaa_star(WingOrient wing)
        {
            double d_shtr = Body.D / wing.Wing.L;

            return((1 + 0.41 * d_shtr) * (1 + 0.41 * d_shtr) * (1 + 3 * d_shtr - d_shtr * (1 - d_shtr) / wing.Wing.Etta_k) / ((1 + d_shtr) * (1 + d_shtr)));
        }
Beispiel #18
0
 public double Get_hi_pc(WingOrient wing, double mach)
 {
     return(Get_hi_pc(wing, mach, 1.51E-5, 340.3));
 }
Beispiel #19
0
        public double Get_n(WingOrient wing, double mach)
        {
            var k_sh = AeroGr.GetV("k_shel", mach);

            return(k_sh * Math.Cos(wing.Hi_rulei * AeroGraphs.PIdiv180));
        }