/// <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); }
public double Z_v_shtr(double mach) { var p1 = Lmb_k * AeroGraphs.M2min1(mach); var p2 = Lmb_k * GetTgHiM(0.5); var p3 = Etta_k; return(AeroGr.GetV("3_16", p1, p2, p3)); }
public double GetCy1a(double mach) { if (AeroGr == null) { return(0.0); } return(Lmb_k * AeroGr.GetV("3_5", Lmb_k * AeroGraphs.M2min1(mach), Lmb_k * Math.Pow(C_shtr, 1.0 / 3.0), Lmb_k * GetTgHiM(0.5))); }
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)); }
/// <summary> /// Cx трения /// </summary> /// <param name="mach">мах</param> /// <param name="x_t">относитальная точка перехода лам погр.слоя в турбул</param> /// <param name="v">кинематическая вязкость среды</param> /// <param name="a_m">местная скорость звука</param> /// <returns></returns> public double Cx_tr(double mach, double x_t, double v, double a_m) { var vel = mach * a_m; var re = vel * L / v; var _2CfM0 = AeroGr.GetV("4_2", re, x_t); var etta = AeroGr.GetV("4_3", mach, x_t); return(0.5 * _2CfM0 * etta * S_fuse / S_mid); }
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); }
public double Cx_tr(double mach, double x_t, double v, double a_m) { var vel = mach * a_m; var re = vel * B_a / v; var _2CfM0 = AeroGr.GetV("4_2", re, x_t); var etta = AeroGr.GetV("4_3", mach, x_t); var _2Cf = _2CfM0 * etta; var etta_c = AeroGr.GetV("4_28", C_shtr, x_t); return(_2Cf * etta_c); }
public double Get_kt_II_shtr(double mach, double alpha) { double b_a_I = W_I.Wing.B_ak; double x1 = W_I.X + W_I.Wing.X_ak + b_a_I; double x2 = W_II.X + W_II.Wing.X_ak + 0.5 * W_II.Wing.B_ak; double x = x2 - x1; double x_shtr = x / b_a_I; double k_t_star = AeroGr.GetV("3_22", mach, x_shtr); double s_I = W_I.Wing.S_k; double s_II = W_II.Wing.S_k; return((k_t_star + s_II / s_I) / (1 + s_II / s_I)); }
public double Cx_v(double mach) { if (mach <= 1.0) { return(0.0); } double lmM21 = Lmb_k * AeroGraphs.M2min1(mach); double lmbC3 = Lmb_k * Math.Pow(C_shtr, 1.0 / 3.0); double lmbTgHi = Lmb_k * GetTgHiM(Profile.B_c_shtr); double cx_romb = AeroGr.GetV("4_30", lmM21, lmbC3, lmbTgHi, Etta_k) * Lmb_k * C_shtr * C_shtr; double fi = AeroGr.GetV("4_32", AeroGraphs.M2min1(mach) - GetTgHiM(Profile.B_c_shtr)); return(cx_romb * (1 + fi * (Profile.K - 1))); }
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))); }
public double Cx_korm(double mach) { if (D1 == D || L_korm == 0) { return(0); } double etta = D1 / D; return(AeroGr.GetV("4_24", mach, Lmb_korm, etta)); //double S_dno_shtr = D1 * D1 / (D * D); //double expr = D1 < D ? // Math.Sqrt(1 - S_dno_shtr) : // Math.Sqrt(S_dno_shtr * (S_dno_shtr - 1)); //double sinBetta = Math.Sin(Math.Atan(Math.Abs((D1 - D) * 0.5) / L_korm)); //double sinBettaSqr = sinBetta* sinBetta; //return expr * (2.09 * sinBettaSqr + 0.19 * sinBettaSqr / Math.Sqrt(AeroGraphs.M2min1(mach))); }
/// <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); }
public double Get_m_z_omg_z_wing(double x_ct, int mode) { double machm1 = mode == 2 ? AeroGraphs.M2min1(M_II) : AeroGraphs.M2min1(M_I); double tg05 = mode == 2 ? W_II.Wing.GetTgHiM(0.5) : W_I.Wing.GetTgHiM(0.5); double lmbk = mode == 2 ? W_II.Wing.Lmb_k : W_I.Wing.Lmb_k; double etta = mode == 2 ? W_II.Wing.Etta_k : W_I.Wing.Etta_k; double x_ak = mode == 2 ? W_II.Wing.X_ak + W_II.X : W_I.Wing.X_ak + W_I.X; double b_ak = mode == 2 ? W_II.Wing.B_ak : W_I.Wing.B_ak; var expr1 = AeroGr.GetV("5_15", lmbk * machm1, lmbk * tg05, etta); var b1 = AeroGr.GetV("5_16", lmbk * machm1, lmbk * tg05, etta); var x_t_shtr = (x_ct - x_ak) / b_ak; //5.74 var mzCya_izkr = expr1 - b1 * (0.5 - x_t_shtr) - AeroGraphs._180divPI * (0.5 - x_t_shtr) * (0.5 - x_t_shtr); var cyaIzkr = mode == 2 ? Cy1a_II : Cy1a_I; var Kaa = mode == 2 ? Kaa_II : Kaa_I; double delta_mz = 0.0; if (mode == 2) { //5.82 var expr11 = (x_ct - (W_I.Wing.X_ak + W_I.X + 0.5 * W_I.Wing.B_ak)) / W_II.Wing.B_ak; var expr12 = (x_ct - X_Fa_II) / W_II.Wing.B_ak; delta_mz = -AeroGraphs._180divPI * Cy1a_II * Kaa_II * Eps_sr_a * expr11 * expr12; } return(mzCya_izkr * cyaIzkr * Kaa + delta_mz); }
public double Get_A(double mach) { var cy1a = GetCy1a(mach); double A; if (mach <= 1.1) { A = AeroGr.GetV("3_35_M1", cy1a); } else if (mach >= 2.0) { A = AeroGr.GetV("3_35_M2", cy1a, 1.0 / Etta_k); } else { var A1 = AeroGr.GetV("3_35_M1", cy1a); var A2 = AeroGr.GetV("3_35_M2", cy1a, 1.0 / Etta_k); A = A1 + (mach - 1.1) * (A2 - A1) / (2.0 - 1.1); } return(A); }
public double Get_eps_sr_alpha() { var z_v_shtr = W_I.Wing.Z_v_shtr(M_I); var d_I = W_I.Wing.D; var l_I = W_I.Wing.L; var z_v = 0.5 * (d_I + z_v_shtr * (l_I - d_I)); var x_v = W_I.Wing.GetX(z_v) + W_I.Wing.GetB(z_v) - W_I.Wing.X_b - W_I.Wing.B_b * W_I.X_povor_otn; var x_II = W_II.Wing.X_ak + W_II.Wing.B_ak * 0.5 - W_I.Wing.X_b + W_I.Wing.B_b * W_I.X_povor_otn + x_v * Math.Cos(W_I.Delta * AeroGraphs.PIdiv180); var y_II = 0.0; var y_v = Math.Abs(x_II * SinAlpha - x_v * Math.Sin(W_I.Delta * AeroGraphs.PIdiv180) + y_II); var _1_div_etta = 1 / W_II.Wing.Etta_k; var _2zv_div_lII = 2.0 * z_v / W_II.Wing.L; var _2yv_div_lII = 2.0 * y_v / W_II.Wing.L; var d_II_shtr = W_II.Wing.D / W_II.Wing.L; var i = AeroGr.GetV("3_17", _2zv_div_lII, _2yv_div_lII, d_II_shtr, _1_div_etta); var ksi = 1.0; return(AeroGraphs._180divPI * i * W_I.Wing.L_k * W_I.Wing.GetCy1a(M_I) * kaa_I * ksi / (2 * Math.PI * z_v_shtr * W_II.Wing.L_k * W_I.Wing.Lmb_k * Kaa_II)); }
public double Get_kt_I_shtr(double mach, double alpha) { double lmbda_nos; if (Body.Nose is RocketNos_ConePlusCyl) { lmbda_nos = Body.Lmb_nos; } else { double cx_nos = Body.Cx_nose(mach); InterpXY lmb_ot_Cx = new InterpXY(); foreach (var item in (AeroGr.Graphs["4_11"] as Interp2D)._data) { double lmb = item.Key; double cx_tmp = item.Value.GetV(mach); lmb_ot_Cx.Add(cx_tmp, lmb); } lmbda_nos = lmb_ot_Cx.GetV(cx_nos); } return(AeroGr.GetV("3_21", lmbda_nos, mach)); }
/// <summary> /// 3.13 /// </summary> /// <param name="mach"></param> /// <returns></returns> public double Get_hi_M(double mach) { return(AeroGr.GetV("3_13", mach)); }
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)); }