123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // 动力学方程积分部分
- // 输入: H: 高度变量
- // V: 速度变量
- // 输出: Rou:大气密度
- // Ma: 马赫数
- // 方法:无
- // 编写:李兆亭
- // 时间:2020 / 11 / 12
- #include <iostream>
- #include <armadillo>
- #include <time.h>
- #include <stdio.h>
- #include <stdlib.h>
- #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;
- }
|