北航课程设计-飞机飞行性能计算-程序

#include
#include
float Xm;
void main()
{
//********航迹倾角gama和上升率Vv的计算*******//
FILE *fp;
//发动机可用推力Ta的计算
float T[23][9]=
{{3840,3490,2880,2300,1680,1320,1160,903,720},
{3820,3470,2860,2290,1670,1300,1150,893,700},
{3800,3460,2850,2280,1660,1300,1140,874,680},
{3800,3460,2860,2300,1670,1300,1140,874,680},
{3810,3470,2870,2320,1680,1310,1150,884,690},
{3820,3490,2890,2340,1690,1320,1160,894,700},
{3840,3520,2920,2380,1700,1340,1180,906,700},
{3880,3560,2970,2430,1740,1360,1200,926,720},
{3930,3620,3020,2480,1780,1390,1220,941,740},
{3990,3670,3090,2540,1820,1430,1260,981,780},
{4040,3730,3150,2600,1870,1460,1290,1016,820},
{4110,3800,3220,2660,1920,1500,1330,1056,860},
{4190,3880,3300,2730,1980,1560,1370,1087,900},
{4270,3960,3370,2800,2040,1610,1420,1129,930},
{4350,4040,3450,2880,2110,1660,1470,1170,960},
{4440,4140,3520,2960,2180,1720,1520,1211,1000},
{4530,4240,3620,3040,2250,1780,1590,1277,1050},
{4620,4340,3720,3120,2320,1850,1650,1324,1090},
{4720,4450,3800,3220,2400,1920,1710,1371,1130},
{4820,4560,3900,3300,2480,1990,1770,1423,1180},
{4920,4660,4000,3400,2560,2060,1840,1484,1230},
{5020,4770,4100,3500,2650,2140,1920,1551,1280},
{5140,4880,4200,3600,2740,2220,1990,1613,1340}};
float Ti[23][7]=
{{0.097,0.097,0.097,0.097,0.097,0.097,-0.02},
{0.080,0.08,0.08,0.08,0.08,0.08,-0.02},
{0.063,0.063,0.063,0.063,0.063,0.063,-0.02},
{0.048,0.048,0.048,0.048,0.063,0.063,-0.02},
{0.030,0.030,0.030,0.030,0.030,0.030,-0.02},
{0.015,0.015,0.015,0.015,0.015,0.015,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02},
{0,0,0,0,0,0,-0.02}};
float Tj[23]=
{-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.045,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05};
//11km以下
float Ta[23][9];
int i,j;
for (j=0;j<=6;j++)
{ for(i=0;i<=22;i++)
{Ta[i][j]=T[i][j]*(1+Ti[i][j])*(1+Tj[i]);
//printf("Ta[%d][%d]=%f\n",i,j,Ta[i][j]);
}
//printf("\n");
}

//11km以上
float md[9]={1.22500,1.11164,0.909121,0.736115,0.525167,0.412706,0.363918,0.287262,0.245355};//大气密度
for(j=7;j<=8;j++)
{ for(i=0;i<=22;i++)
{Ta[i][j]=Ta[i][6]*md[j]/md[6];
//printf("Ta[%d][%d]=%f\n",i,j,Ta[i][j]);
}
//printf("\n");
}

//平飞需用推力TR的计算
float Ma[23]=
{0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1,1.05,1.10,1.15,1.2,1.25,1.3};//Ma
float g=9.8;
int H[9]={0,1000,3000,5000,8000,10000,11000,12500,13500};//高度
int S=23;
float a[9]=
{340.294,336.434,328.578,320.529,308.063,301.636,299.463,295.069,295.069};//音速
float CD0[23][9]=
{{0.0165,0.0166,0.0168,0.0170

,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0165,0.0166,0.0168,0.0170,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0165,0.0166,0.0168,0.0170,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0165,0.0166,0.0168,0.0170,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0165,0.0166,0.0168,0.0170,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0165,0.0166,0.0168,0.0170,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0165,0.0166,0.0168,0.0170,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0165,0.0166,0.0168,0.0170,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0165,0.0166,0.0168,0.0170,0.0173,0.0175,0.0177,0.0180,0.0182},
{0.0166,0.0167,0.0169,0.0171,0.0174,0.0176,0.0178,0.0181,0.0183},
{0.0167,0.0168,0.0170,0.0172,0.0175,0.0177,0.0179,0.0182,0.0184},
{0.0168,0.0169,0.0171,0.0173,0.0176,0.0178,0.0180,0.0183,0.0185},
{0.0170,0.0171,0.0173,0.0175,0.0178,0.0180,0.0182,0.0185,0.0187},
{0.0175,0.0176,0.0178,0.0180,0.0183,0.0185,0.0187,0.0190,0.0192},
{0.0184,0.0185,0.0187,0.0189,0.0192,0.0194,0.0196,0.0199,0.0201},
{0.0240,0.0241,0.0243,0.0245,0.0248,0.0250,0.0252,0.0255,0.0258},
{0.0285,0.0286,0.0288,0.0290,0.0293,0.0295,0.0297,0.0300,0.0302},
{0.0365,0.0366,0.0368,0.0370,0.0373,0.0375,0.0377,0.0380,0.0382},
{0.0370,0.0371,0.0373,0.0375,0.0378,0.0380,0.0382,0.0385,0.0387},
{0.0365,0.0366,0.0368,0.0370,0.0373,0.0375,0.0377,0.0380,0.0382},
{0.0350,0.0351,0.0353,0.0355,0.0358,0.0360,0.0362,0.0365,0.0367},
{0.0345,0.0346,0.0348,0.0350,0.0353,0.0355,0.0357,0.0360,0.0362},
{0.0340,0.0341,0.0343,0.0345,0.0348,0.0350,0.0352,0.0355,0.0357}};//零升阻力系数
float A[23]=
{0.211,0.211,0.211,0.211,0.211,0.211,0.211,0.211,0.211,0.211,0.211,0.211,0.212,0.213,0.216,0.219,0.222,0.227,0.232,0.238,0.245,0.253,0.262};//升致阻力因子
float mav[9]=
{6670,6667,6656,6646,6632,6623,6618,6607,6596};//平均质量
float TR[23][9],dT[23][9];
for(j=0;j<=8;j++)
{ for(i=0;i<=22;i++)
{TR[i][j]=md[j]*Ma[i]*Ma[i]*a[j]*a[j]*S*CD0[i][j]/2+2*A[i]*mav[j]*mav[j]*g*g/(md[j]*Ma[i]*Ma[i]*a[j]*a[j]*S);
//printf("TR[%d][%d]=%f\n",i,j,TR[i][j]);
}
//printf("\n");
}

//剩余推力dT的计算
for(j=0;j<=8;j++)
{for(i=0;i<=22;i++)
{ dT[i][j]=Ta[i][j]*g-TR[i][j];
//printf("dT[%d][%d]=%f\n",i,j,dT[i][j]);
}
//printf("\n");
}

//航迹倾角gama和上升率Vv的计算
float gama[23][9],Wav[9],Vv[23][9];
for(j=0;j<=8;j++)
{for(i=0;i<=22;i++)
{Wav[j]=mav[j]*g;
gama[i][j]=asin(dT[i][j]/Wav[j]>(-1)?dT[i][j]/Wav[j]:(-1));
Vv[i][j]=dT[i][j]*Ma[i]*a[j]/Wav[j];
//printf("gama[%d][%d]=%f Vv[%d][%d]=%f\n",i,j,gama[i][j],i,j,Vv[i][j]);
}
//printf("\n");
}
fp=fopen("E:\\大四上\\课程设计\\航迹倾角gama和上升率Vv.txt","w");//打开文件,写数据
for(j=0;j<=8;j++)
{for(i=0;i<=22;i++)
{fprintf(fp,"%d %f %f %f\n",H[j],Ma[i],gama[i][j],Vv[i][j]);}
}
fclose(fp);


//********最大航迹倾角gamamax及对应速度Vgama和最快上升率Vvmax及对应速度Vqc*******//
float gamamax[9],dTmax[9],y1[9],y2[9],y3[9],x1[9],x2[9],x3[9],Vgama[9],Mgama[9],Mqc[9];
float V

vmax[9],dTV[23][9],dTVmax[9],Vqc[9];
float extrem(float X1,float Y1,float X2,float Y2,float X3,float Y3);
for(j=0;j<=8;j++)
{y2[j]=dT[0][j];
for(i=1;i<=22;i++)
{if(y2[j]{y2[j]=dT[i][j];y1[j]=dT[i-1][j];y3[j]=dT[i+1][j];
x1[j]=Ma[i-1];x2[j]=Ma[i];x3[j]=Ma[i+1];
}}
dTmax[j]=extrem(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j]);
gamamax[j]=asin(dTmax[j]/Wav[j]);
Mgama[j]=Xm;
Vgama[j]=Mgama[j]*a[j];
//printf("gamamax[%d]=%f Vgama[%d]=%f Mgama[%d]=%f\n",j,gamamax[j],j,Vgama[j],j,Mgama[j]);
}
for(j=0;j<=8;j++)
{for(i=1;i<=22;i++)
{dTV[i][j]=dT[i][j]*Ma[i]*a[j];}
}
for(j=0;j<=8;j++)
{y2[j]=dTV[0][j];
for(i=1;i<=22;i++)
{if(y2[j]{y2[j]=dTV[i][j];y1[j]=dTV[i-1][j];y3[j]=dTV[i+1][j];
x1[j]=Ma[i-1];x2[j]=Ma[i];x3[j]=Ma[i+1];
}}
dTVmax[j]=extrem(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j]);
Vvmax[j]=dTVmax[j]/Wav[j];
Mqc[j]=Xm;
Vqc[j]=Mqc[j]*a[j];
//printf("Vvmax[%d]=%f Vqc[%d]=%f Mqc[%d]=%f\n",j,Vvmax[j],j,Vqc[j],j,Mqc[j]);
}
fp=fopen("E:\\大四上\\课程设计\\最大航迹倾角gamamax及对应速度Vgama和最快上升率Vvmax及对应速度Vqc.txt","w");//打开文件,写数据
for(j=0;j<=8;j++)
{fprintf(fp,"%f %f %f %f %f %f\n",gamamax[j],Vgama[j],Mgama[j],Vvmax[j],Vqc[j],Mqc[j]);}
fclose(fp);

//********最小平飞速度Vmin和最大平飞速度Vmax的计算********//
float chazhi(float X1,float Y1,float X2,float Y2,float X3,float Y3,float X);
float cl[23][9],dcl[23][9];
float Vmax[9],Vmin1[9],Vmin2[9],Mamin1[9],Mamin2[9],Vmin[9],Mamin[9],Mamax[9];
float CL_[23]={1.25,1.25,1.25,1.25,1.23,1.20,1.18,1.16,1.14,1.12,1.10,1.08,1.06,1.04,1.02,1.00,0.98,0.96,0.85,0.80,0.73,0.68,0.63};
float CL[23];
float e=1.0;
for(i=0;i<23;i++)

{CL[i]=e*CL_[i];}

for (j=0;j<9;j++)
{for(i=0;i<=20;i++)
{if(dT[i][j]<0&&dT[i+1][j]>0)
{x1[j]=dT[i][j];y1[j]=Ma[i];
x2[j]=dT[i+1][j];y2[j]=Ma[i+1];
x3[j]=dT[i+2][j];y3[j]=Ma[i+2];
Vmin2[j]=chazhi(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j],0)*a[j];}
}
if(dT[21][j]<0&&dT[22][j]>0)
{x1[j]=dT[20][j];y1[j]=Ma[20];
x2[j]=dT[21][j];y2[j]=Ma[21];
x3[j]=dT[22][j];y3[j]=Ma[22];
Vmin2[j]=chazhi(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j],0)*a[j];}
}
for (j=0;j<9;j++)
{for(i=0;i<23;i++)
{cl[i][j]=2*Wav[j]/(md[j]*a[j]*a[j]*S*Ma[i]*Ma[i]);
dcl[i][j]=cl[i][j]-CL[i];
//printf("dcl[%d][%d]=%f\n",i,j,dcl[i][j]);
}
//printf("\n");
}
for (j=0;j<9;j++)
{for(i=0;i<21;i++)
{if(dcl[i][j]*dcl[i+1][j]<0)
{x1[j]=dcl[i][j];y1[j]=Ma[i];
x2[j]=dcl[i+1][j];y2[j]=Ma[i+1];
x3[j]=dcl[i+2][j];y3[j]=Ma[i+2];}
}
if(dcl[21][j]*dcl[22][j]<0)
{x1[j]=dcl[20][j];y1[j]=Ma[20];
x2[j]=dcl[21][j];y2[j]=Ma[21];
x3[j]=dcl[22][j];y3[j]=Ma[22];}
Vmin1[j]=chazhi(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j],0)*a[j];
y2[j]=dcl[0][j];
for(i=0;i<23;i++)
{if(y2[j]<=dcl[i][j]) {y2[j]=dcl[i][j];}}
{if(y2[j]<0) Vmin1[j]=0.2*a[j];}
Vmin[j]=Vmin1[j]>Vmin2[j]? Vmin1[j]:Vmin2[j];
Mamin[j]=Vmin[j]/a[j];
Mamin1[j]=Vmin1[j]/a[j]

;
Mamin2[j]=Vmin2[j]/a[j];
//printf("Vmin1[%d]=%f Vmin2[%d]=%f\n",j,Vmin1[j],j,Vmin2[j]);
//printf("Vmin[%d]=%f Mamin[%d]=%f\n",j,Vmin[j],j,Mamin[j]);
}

for (j=0;j<9;j++)
{for(i=22;i>=2;i--)
{if(dT[i][j]<0&&dT[i-1][j]>0)
{x1[j]=dT[i][j];y1[j]=Ma[i];
x2[j]=dT[i-1][j];y2[j]=Ma[i-1];
x3[j]=dT[i-2][j];y3[j]=Ma[i-2];
Vmax[j]=chazhi(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j],0)*a[j];}
}
if(dT[1][j]<0&&dT[0][j]>0)
{x1[j]=dT[0][j];y1[j]=Ma[0];
x2[j]=dT[1][j];y2[j]=Ma[1];
x3[j]=dT[2][j];y3[j]=Ma[2];
Vmax[j]=chazhi(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j],0)*a[j];
}
Mamax[j]=Vmax[j]/a[j];
//printf("Vmax[%d]=%f\n",j,Vmax[j]);
}

fp=fopen("E:\\大四上\\课程设计\\最小平飞速度和最大平飞速度.txt","w");//打开文件,写数据
for(j=0;j<=8;j++)
{
fprintf(fp,"%f %f %f %f %f %f\n",Mamin1[j],Mamin2[j],Vmin[j],Mamin[j],Vmax[j],Mamax[j]);
}
fclose(fp);

//********理论升限和实用升限的计算********//
float H1,H2;
H1=chazhi(Vvmax[6],H[6],Vvmax[7],H[7],Vvmax[8],H[8],0);
H2=chazhi(Vvmax[6],H[6],Vvmax[7],H[7],Vvmax[8],H[8],5);
//printf("H1=%f H2=%f\n",H1,H2);
fp=fopen("E:\\大四上\\课程设计\\理论升限H1和实用升限H2.txt","w");//打开文件,写数据
fprintf(fp,"H1=%f H2=%f",H1,H2);
fclose(fp);


//********最短上升时间sumtime的计算********//
float time[1320],VvmaxH;
for(i=0;i<1320;i++)
{ if(i*10<=3000) {time[i]=10/chazhi(0,Vvmax[0],1000,Vvmax[1],3000,Vvmax[2],i*10);}
else if(i*10<=8000) {time[i]=10/chazhi(3000,Vvmax[2],5000,Vvmax[3],8000,Vvmax[4],i*10);}
else if(i*10<=11000) {time[i]=10/chazhi(8000,Vvmax[4],10000,Vvmax[5],11000,Vvmax[6],i*10);}
else if(i*10{if((i+1)*10>H2)
{VvmaxH=chazhi(11000,Vvmax[6],12500,Vvmax[7],13500,Vvmax[8],H2);
time[i]=(H2-i*10)/VvmaxH;}
else
time[i]=10/chazhi(11000,Vvmax[6],12500,Vvmax[7],13500,Vvmax[8],i*10);}
else if(i*10>H2) {time[i]=0;}//实用升限H2=13028m
//printf("time[%d]=%f\n",i,time[i]);
}
float sum;
sum=time[0];
for(i=1;i<1320;i++)
{sum=time[i]+sum;}
//printf("time=%f\n",sum);
fp=fopen("E:\\大四上\\课程设计\\最小上升时间.txt","w");//打开文件,写数据
fprintf(fp,"sumtime=%f",sum);
fclose(fp);

//********航程和航时的计算********//
float T11[13][4]=
{610,780,858,980,
603,778,866,978,
600,787,886,998,
603,799,907,1026,
611,816,932,1038,
622,835,978,1076,
633,860,1030,1110,
649,898,1078,1167,
671,940,1116,1280,
690,985,1158,1450,
710,1020,1204,1530,
722,1054,1242,1574,
728,1096,1318,1690};
float Cf11[13][4]=
{0.905,0.916,0.936,0.980,
0.952,0.950,0.968,1.022,
0.988,0.980,1.000,1.042,
1.024,1.006,1.024,1.066,
1.052,1.035,1.048,1.075,
1.078,1.060,1.077,1.103,
1.092,1.084,1.103,1.120,
1.112,1.106,1.128,1.146,
1.135,1.132,1.149,1.180,
1.157,1.155,1.172,1.225,
1.189,1.176,1.193,

1.240,
1.226,1.198,1.211,1.253,
1.262,1.229,1.240,1.288};
float Ma1[13]=
{0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5};
float Ti11=-0.02;
float Tj11[13]={-0.073,-0.073,-0.073,-0.075,-0.081,-0.091,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11};
float CD011[13]={0.0177,0.0177,0.0177,0.0177,0.0179,0.0182,0.0196,0.0297,0.0382,0.0362,0.0352,0.0356,0.0339};
float A_M[13]={0.211,0.211,0.211,0.211,0.211,0.212,0.216,0.222,0.232,0.245,0.262,0.282,0.304};
float Rcr[13][21],Cd[13][21],Cl[13][21],Ta11[13][21];
float T11_[13][21],Cf11_[13][21];
float Cf[13][4];

for(j=0;j<4;j++)
{for(i=0;i<13;i++)
{Cf[i][j]=1.0*Cf11[i][j];}
}

//航程的计算
for(i=0;i<13;i++)
{for(j=0;j<21;j++)
{if(j<10) {T11_[i][j]=chazhi(80,T11[i][0],85,T11[i][1],90,T11[i][2],j+80);}
else
T11_[i][j]=chazhi(85,T11[i][1],90,T11[i][2],100,T11[i][3],j+80);
//printf("T11_[%d][%d]=%f\n",i,j,T11_[i][j]);
}
//printf("\n");
}

for(i=0;i<13;i++)
{for(j=0;j<21;j++)
{if(j<10) {Cf11_[i][j]=chazhi(80,Cf[i][0],85,Cf[i][1],90,Cf[i][2],j+80);}
else
Cf11_[i][j]=chazhi(85,Cf[i][1],90,Cf[i][2],100,Cf[i][3],j+80);
//printf("Cf11_[%d][%d]=%f\n",i,j,Cf11_[i][j]);
}
//printf("\n");
}

for(j=0;j<21;j++)
{for(i=0;i<=12;i++)
{Ta11[i][j]=T11_[i][j]*g*(1+Ti11)*(1+Tj11[i]);
Cd[i][j]=2.0*Ta11[i][j]/(md[6]*Ma1[i]*Ma1[i]*a[6]*a[6]*S);
if(Cd[i][j]if(Cd[i][j]>=CD011[i]) {Cl[i][j]=sqrt((Cd[i][j]-CD011[i])/A_M[i]);}
Rcr[i][j]=3.6*(Cl[i][j]*Ma1[i]*a[6]*log(6600.0/4670.0))/(Cd[i][j]*Cf11_[i][j]);
//printf("Rcr[%d][%d]%f\n",i,j,Rcr[i][j]);
}
//printf("\n");
}
float Rcrmaxmax,nRmax1,M1[21],MRmax1,Rcrmax[21];
int k;
float N[21]={0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,1};
for(j=0;j<21;j++)
{y2[j]=Rcr[0][j];
for(i=0;i<=12;i++)
{if(y2[j]<=Rcr[i][j]) {y2[j]=Rcr[i][j];k=i;}}
{if(k==12||Rcr[k+1][j]==0)
{y1[j]=Rcr[k][j];y2[j]=Rcr[k-1][j];y3[j]=Rcr[k-2][j];
x1[j]=Ma1[k];x2[j]=Ma1[k-1];x3[j]=Ma1[k-2];
Rcrmax[j]=extrem(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j]);}
else
{y1[j]=Rcr[k-1][j];y2[j]=Rcr[k][j];y3[j]=Rcr[k+1][j];
x1[j]=Ma1[k-1];x2[j]=Ma1[k];x3[j]=Ma1[k+1];
Rcrmax[j]=extrem(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j]);}
M1[j]=Xm;}
printf("Rcrmax[%d]=%f \n",j,Rcrmax[j]);
}
y2[0]=Rcrmax[0];
for(j=1;j<21;j++)
{if(y2[0]{y1[0]=Rcrmax[j-1];y2[0]=Rcrmax[j];y3[0]=Rcrmax[j+1];
x1[0]=N[j-1];x2[0]=N[j];x3[0]=N[j+1];
Rcrmaxmax=extrem(x1[0],y1[0],x2[0],y2[0],x3[0],y3[0]);}
}
nRmax1=Xm;
MRmax1=chazhi(0.85,M1[1],0.9,M1[2],1,M1[3],nRmax1);
//printf("Rcrmaxmax=%f nRmax1=%f MRmax1=%f \n",Rcrmaxmax,nRmax1,MRmax1);
fp=fopen("E:\\大四上\\课程设计\\航程与相应的转速和马赫数.txt","w");//打开文件,写数据
fprintf(fp,"Rcrmaxmax=%f nRmax1=%f MRmax1=%f ",Rcrmaxmax,nRmax1,MRmax1);
fclose(fp);



//航时的计算
float tcr[13][21],tcrmax[21],tcrmaxmax,nRmax2,MRmax2;
for(j=0;j<21;j++)
{for(i=0;i<=12;i++) tcr[i][j]=(Cl[i][j]*log(6600.0/4670.0))/(Cd[i][j]*Cf11_[i

][j]);}
for(j=0;j<21;j++)
{y2[j]=tcr[0][j];
for(i=0;i<=12;i++)
{if(y2[j]<=tcr[i][j]) {y2[j]=tcr[i][j];k=i;}
}
if(k==0)
{y1[j]=tcr[k][j];y2[j]=tcr[k+1][j];y3[j]=tcr[k+2][j];
x1[j]=Ma1[k];x2[j]=Ma1[k+1];x3[j]=Ma1[k+2];
tcrmax[j]=extrem(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j]);}
else if(k==12)
{y1[j]=tcr[k][j];y2[j]=tcr[k-1][j];y3[j]=tcr[k-2][j];
x1[j]=Ma1[k];x2[j]=Ma1[k-1];x3[j]=Ma1[k-2];
tcrmax[j]=extrem(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j]);}
else
{y1[j]=tcr[k-1][j];y2[j]=tcr[k][j];y3[j]=tcr[k+1][j];
x1[j]=Ma1[k-1];x2[j]=Ma1[k];x3[j]=Ma1[k+1];
tcrmax[j]=extrem(x1[j],y1[j],x2[j],y2[j],x3[j],y3[j]);}
M1[j]=Xm;
//printf("tcrmax[%d]=%f ",j,tcrmax[j]);
}
y2[0]=tcrmax[0];
for(j=0;j<21;j++)
{if(y2[0]<=tcrmax[j]) {y2[j]=tcrmax[j];k=j;}}
{if(k==20||k==0) {tcrmaxmax=tcrmax[k];nRmax2=N[k];}
else
{y1[0]=tcrmax[k-1];y2[0]=tcrmax[k];y3[0]=tcrmax[k+1];
x1[0]=N[k-1];x2[0]=N[k];x3[0]=N[k+1];
tcrmaxmax=extrem(x1[0],y1[0],x2[0],y2[0],x3[0],y3[0]);
nRmax2=Xm;}
}
MRmax2=chazhi(0.8,M1[0],0.85,M1[1],0.9,M1[2],nRmax2);//取nRmax2=0.8附近的三点插值
//printf("tcrmaxmax=%f nRmax2=%f MRmax2=%f \n",tcrmaxmax,nRmax2,MRmax2);
fp=fopen("E:\\大四上\\课程设计\\航时与相应的转速和马赫数.txt","w");//打开文件,写数据
fprintf(fp,"tcrmaxmax=%f nRmax2=%f MRmax2=%f ",tcrmaxmax,nRmax2,MRmax2);
fclose(fp);







//********离地速度Vlo和接地速度Vtd的计算********//

float Vlo,Vtd;

Vlo=sqrt(2*6670*9.8/(md[0]*S*0.56*e));
Vtd=0.95*sqrt(2*4500*9.8/(md[0]*S*0.52*e));

//printf("Vlo=%f Vtd=%f\n",Vld,Vjd);
fp=fopen("E:\\大四上\\课程设计\\离地速度和接地速度.txt","w");//打开文件,写数据
{
fprintf(fp,"Vlo=%f Vtd=%f\n",Vlo,Vtd);
}
fclose(fp);

//********安全高度处速度VH1和VH2的计算********//
float VH1,VH2;
VH1=1.3*Vlo;
VH2=1.2*Vtd;
//printf("VH1=%f VH2=%f\n",VH1,VH2);
fp=fopen("E:\\大四上\\课程设计\\安全高度处速度.txt","w");//打开文件,写数据

{
fprintf(fp,"VH1=%f VH2=%f\n",VH1,VH2);
}
fclose(fp);

//********起飞地面滑跑段的距离d1和时间t1的计算********//

float Ta0,Taav,CDlo,cd1,cd2,cd3,cl1,cl2,cl3,f,d1,t1;
Ta0=chazhi(0.2,Ta[0][0],0.3,Ta[2][0],0.4,Ta[4][0],0)*g;
Taav=0.9*Ta0;

cl1=0.54*e;cl2=0.59*e;cl3=0.64*e;cd1=0.12;cd2=0.14;cd3=0.16;//CDlo靠近0.56的三点插值
CDlo=chazhi(cl1,cd1,cl2,cd2,cl3,cd3,0.56*e);
f=(0.03+CDlo/(0.56*e))/2;

d1=Vlo*Vlo/(2*g*(Taav/(6670*g)-f));
t1=2*d1/Vlo;
//printf("d1=%f t1=%f\n",d1,t1);
fp=fopen("E:\\大四上\\课程设计\\起飞地面滑跑段的距离d1和时间t1.txt","w");//打开文件,写数据//

{
fprintf(fp,"d1=%f t1=%f\n",d1,t1);
}
fclose(fp);

//********起飞空中段的距离d2和时间t2的计算********//

float Mlo,Mtd,Talo,TaH,Dlo,CLH,CDH,DH,Vav1,dTav,d2,t2;
Mlo=Vlo/a[0];Mtd=Vtd/a[0];
Talo=chazhi(Ma[0],Ta[0][0],Ma

[1],Ta[1][0],Ma[2],Ta[2][0],Mlo)*g;
TaH=chazhi(Ma[0],Ta[0][0],Ma[1],Ta[1][0],Ma[2],Ta[2][0],Mtd)*g;
Dlo=CDlo*md[0]*Vlo*Vlo*S/2;
CLH=2*6670*g/(md[0]*S*VH1*VH1);
//printf("%f\n",CLH); //CLH=0.331367

cl1=0.23*e;cl2=0.38*e;cl3=0.47*e;cd1=0.06;cd2=0.08;cd3=0.10;

CDH=chazhi(cl1,cd1,cl2,cd2,cl3,cd3,CLH);
DH=CDH*md[0]*VH1*VH1*S/2;
Vav1=(Vlo+VH1)/2;
dTav=((Talo-Dlo)+(TaH-DH))/2;
d2=6670*g*((VH1*VH1-Vlo*Vlo)/(2*g)+25)/dTav;
t2=d2/Vav1;
//printf("d2=%f t2=%f\n",d2,t2);
fp=fopen("E:\\大四上\\课程设计\\起飞空中段的距离d2和时间t2.txt","w");//打开文件,写数据//

{
fprintf(fp,"d2=%f t2=%f\n",d2,t2);
}
fclose(fp);

//********着陆空中段的距离d3和时间t3的计算********//
float Vav2,Kav,Ktd,KH,d3,t3;
Vav2=(Vtd+VH2)/2;

Ktd=0.52*e/0.14;
CLH=0.7*0.52*e; //CLH=0.364
cl1=0.19*e;cl2=0.28*e;cl3=0.37*e;cd1=0.06;cd2=0.08;cd3=0.10;

CDH=chazhi(cl1,cd1,cl2,cd2,cl3,cd3,CLH);
KH=CLH/CDH;
Kav=(Ktd+KH)/2;
d3=Kav*((VH2*VH2-Vtd*Vtd)/(2*g)+25);
t3=d3/Vav2;
//printf("d3=%f t3=%f\n",d3,t3);
fp=fopen("E:\\大四上\\课程设计\\着陆空中段的距离d3和时间t3.txt","w");//打开文件,写数据//

{
fprintf(fp,"d3=%f t3=%f\n",d3,t3);
}
fclose(fp);

//********着陆地面滑跑段的距离d4和时间t4的计算********//

float d4,t4;
d4=Vtd*Vtd/(g*(0.3+1/Ktd));
t4=2*Vtd/(g*(0.3+1/Ktd));
//printf("d4=%f t4=%f\n",d4,t4);
fp=fopen("E:\\大四上\\课程设计\\着陆空中段的距离d4和时间t4.txt","w");//打开文件,写数据//

{
fprintf(fp,"d4=%f t4=%f\n",d4,t4);
}
fclose(fp);



}

/*************************用抛物线求极值子函数**********************************/
float extrem(float X1,float Y1,float X2,float Y2,float X3,float Y3)
{float B,C,Ymax;
B=(Y2-Y1)/(X2-X1);
C=((Y3-Y1)/(X3-X1)-(Y2-Y1)/(X2-X1))/(X3-X2);
Xm=(X1+X2)/2-B/(2*C);
Ymax=Y1+B*(Xm-X1)+C*(Xm-X1)*(Xm-X2);
return(Ymax);
}

/*************************用抛物线插值子函数**********************************/
float chazhi(float X1,float Y1,float X2,float Y2,float X3,float Y3,float X)
{float B,C,Y;
B=(Y2-Y1)/(X2-X1);
C=((Y3-Y1)/(X3-X1)-(Y2-Y1)/(X2-X1))/(X3-X2);
Y=Y1+B*(X-X1)+C*(X-X1)*(X-X2);
return(Y);
}

相关文档
最新文档