资源简介
采用C语言编写,程序注释丰富,外弹道经典的解三自由度弹道方程。
代码片段和文件信息
//function:滑翔弹道计算
2012.12.07
#include
#include
#include
#define RAD 57.3
#define PI 3.1415926
double Y[8] dy[6];
/*******
Y[0]: t
Y[1]: V
Y[2]: cita
Y[3]: X
Y[4]: Y
Y[5]: m
*******/
double MaALPHACXCYLSTHETADETAZK1K2L1L2CxFy2Fx2;
double t_stept;
double CX0CX2CYACYZMZDTADTAZazXFYF;
void initial()
{
double Velymcita0; double d=0.133;
m=44.5 ;
Vel=400; //初始速度m/s
y=15000; //初始高度m
cita0=0.0; //射角(度)
ALPHA=0.0; //攻角(度)
L=1.49; //特征长度
S=PI*d*d/4.0; //特征面积
K1=35;
K2=50;
Y[0]=0.0; Y[1]=Vel; Y[2]=cita0/RAD; Y[3]=0.0; Y[4]=y; Y[5]=m;
}
double GetSONIC(double y) //计算当地声速
{
double TySONIC;
Ty=288.34-5.86*y/1000.0;
SONIC=20.46*sqrt(Ty);
return SONIC;
}
double GetAirDensity(double y) //计算空气密度
{
double RHOn=1.225RHO;
RHO=RHOn*pow(1.0-2.0323*y/1000004.830);
return RHO;
}
double Get_g(double y) //计算重力加速度
{
double R=6371000g;
double g0=9.806;
g=g0*(1.0-2.0*y/R);
return g;
}
double int11(double YY[2][5]double x) //线性插值
{
int i;
double r;
for(i=0;i<4;i++)
{
if(x<=YY[0][i+1]){
break;
}
}
r=YY[1][i]+(YY[1][i+1]-YY[1][i])*(x-YY[0][i])/(YY[0][i+1]-YY[0][i]);
return r;
}
void interp() //插值函数
{
double ACX[2][5]={0.60.80.91.01.10.14920.157540.171400.288320.34312};
double ACX2[2][5]={0.60.80.91.01.10.001860.001900.001920.002000.00209};
double ACY[2][5]={0.60.80.91.01.10.069770.069480.069330.071140.07427};
double ACYZ[2][5]={0.60.80.91.01.10.033110.032440.031770.036690.03711};
double MZZ[2][5]={0.60.80.91.01.1-0.1323-0.1323-0.1322-0.1531-0.1525};
double AZB[2][5]={0.60.80.91.01.1-1.16-1.16-1.20-1.25-1.17};
CX0=int11(ACXMa); //Cx0
CX2=int11(ACX2Ma); //Cx_alp^2
CYA=int11(ACYMa); //Cy_alp
CYZ=int11(ACYZMa); //Cy_dtaz
MZDTA=int11(MZZMa); //mz_dtaz
az=int11(AZBMa); //(ALPHA/dtaz)
DTAZ=ALPHA/az; //dtaz
// CX=CX0+CX2*(ALPHA*RAD)*(ALPHA*RAD);
// CY=CYA*(ALPHA*RAD)+CYZ*(DTAZ*RAD);
DETAZ=DTAZ;
return;
}
void dery(double *dydouble *Y) //右端子函数
{
void interp();
double qa[4]gRHOSONIC;
RHO=GetAirDensity(Y[4]);
SONIC=GetSONIC(Y[4]);
g=Get_g(Y[4]);
q=RHO*Y[1]*Y[1]/2.0;
Ma=Y[1]/SONIC;
if(Ma>1.1)Ma=1.1;
if(Ma<0.6)Ma=0.6;
if(Y[0]<1) ALPHA=0.0;
else ALPHA=35/RAD;
interp();
double temp=Y[2];
a[0]=sin(Y[2]);
a[1]=cos(Y[2]);
a[2]=sin(ALPHA);
a[3]=cos(ALPHA);
XF=CX*q*S;
YF=CY*q*S;
dy[0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4587 2014-03-06 18:47 滑翔段弹道程序\Cpp1.cpp
文件 3377 2013-01-20 16:12 滑翔段弹道程序\Cpp1.dsp
文件 516 2013-01-20 16:13 滑翔段弹道程序\Cpp1.dsw
文件 50176 2014-03-06 18:47 滑翔段弹道程序\Cpp1.ncb
文件 48640 2014-03-06 18:47 滑翔段弹道程序\Cpp1.opt
文件 736 2013-08-07 14:16 滑翔段弹道程序\Cpp1.plg
文件 262216 2013-08-07 14:16 滑翔段弹道程序\Debug\Cpp1.exe
文件 307344 2013-08-07 14:16 滑翔段弹道程序\Debug\Cpp1.ilk
文件 25599 2013-08-07 14:16 滑翔段弹道程序\Debug\Cpp1.obj
文件 282276 2013-08-07 14:12 滑翔段弹道程序\Debug\Cpp1.pch
文件 590848 2013-08-07 14:16 滑翔段弹道程序\Debug\Cpp1.pdb
文件 58368 2013-08-07 14:16 滑翔段弹道程序\Debug\vc60.idb
文件 61440 2013-08-07 14:16 滑翔段弹道程序\Debug\vc60.pdb
文件 2747064 2013-08-07 14:17 滑翔段弹道程序\result.txt
文件 27636408 2013-01-17 21:28 滑翔段弹道程序\数据(t,v,θ,X,Y).txt
文件 644675 2013-01-17 14:17 滑翔段弹道程序\滑翔段程序.opj
文件 1184 2013-01-17 14:52 滑翔段弹道程序\自己编写的导弹程序.txt
目录 0 2014-03-06 18:49 滑翔段弹道程序\Debug
目录 0 2014-03-06 18:50 滑翔段弹道程序
----------- --------- ---------- ----- ----
32725454 19
相关资源
- MFC代码大全经典+技巧
- c++ builder OPC通讯 源代码
- 最全的 LTE 链路级仿真
- APAP图像拼接开源代码
- 温度检测控制系统:51单片机与adc08
- 遥感图像融合程序 C++
- C-Minus编译器 编译原理实验
- Effective STL 中文版非扫描版
- TMS320C6xx系列DSP编程工具与指南
- 利用VS2010实现发送邮件SMTP
- KinectV2 实现鼠标控制VS2013 C++版
- 五子棋小游戏选择棋盘、棋子;双方
- c++模拟磁盘调度算法FCFS;SSTF;SCAN;
- C语言 键盘记录
- 无向图的邻接矩阵压缩存储.cpp
- 数据结构—图书馆管理系统C++编写
- VTK三维球体测量
- C++卫星定位程序--通过卫星星历确定卫
- 课程设计 分段存储管理的分配与回收
- 从键盘上输入一串字符包括字母、数
- C语言:powell鲍威尔法;
- 点云数据滤波------数学形态学
- 二叉树遍历
- UR机械臂与PC通讯程序socket2018_03_16
- DTW算法 C++实现
- 唯一可译码判决准则 1使用的编程:
- 基于单片机的LED彩灯控制器设计
- 中国大学MOOC-翁恺-C语言程序设计习题
- IAR中文版教程 IAR教程
- 白平衡算法,包含灰色世界法,完美
评论
共有 条评论