// 动力学方程积分部分 // 输入: H: 高度变量 // V: 速度变量 // 输出: Rou:大气密度 // Ma: 马赫数 // 方法:无 // 编写:李兆亭 // 时间:2020 / 11 / 12 #include #include #include #include #include #include "GPM.h" using namespace std; using namespace arma; int alpha2LD(vec alpha_rad, vec Rou, vec Ma, vec V, auxdata1 auxdata, vec* L, vec* D) { vec Alpha = alpha_rad / datum::pi * 180; // 1.升力系数 double Cl_P1 = -0.0561020506677546; double Cl_P2 = -0.00443388562734796; double Cl_P3 = 0.0500035404141617; double Cl_P4 = -0.000828657314629258; double Cl_P5 = 0.000319997795846394; double Cl_P6 = 0.000369999999999996; vec Cl = Cl_P1 + Cl_P2*Ma + Cl_P3*Alpha + Cl_P4*Ma % Alpha + Cl_P5*Ma % Ma + Cl_P6*Alpha % Alpha; // 2.阻力系数 double Cd_P1 = 0.127207748994593; double Cd_P2 = -0.0154181895105519; double Cd_P3 = 0.00486212424849702; double Cd_P4 = -0.000297194388777555; double Cd_P5 = 0.000571576214733542; double Cd_P6 = 0.000669999999999999; vec Cd = Cd_P1 + Cd_P2*Ma + Cd_P3*Alpha + Cd_P4*Ma % Alpha + Cd_P5*Ma % Ma + Cd_P6*Alpha % Alpha; double Sref = auxdata.Sref; double M0 = auxdata.M0; *D = 0.5*Rou % V % V % Cd*Sref / M0; *L = 0.5*Rou % V % V % Cl*Sref / M0; return 1; }