《飞行器轨迹仿真大作业》由会员分享,可在线阅读,更多相关《飞行器轨迹仿真大作业(14页珍藏版)》请在金锄头文库上搜索。
1、.专业整理.飞行器轨迹仿真大作业文档副标题1. 积分方法1) 欧拉积分2) 二阶龙格库塔3) 四阶龙格库塔2. 计算例子实现自由落体运动的轨迹求解。,阻力系数,小球半径, ,重力加速度取常数,大气密度采用插值计算。求落地速度和落地时间,观察速度的变化规律。大气密度变化规律:高度/M 0.0 1000 3000 5000 7000 9000 11000 15000 20000密度/kg/m3 1.225 1.112 0.909 0.736 0.589 0.466 0.364 0.194 0.0883. 图形3.1 用Euler法画出的图图1 速度随时间的变化图图2 高度随时间的变化3.2 用Ru
2、nge-Kutta法画的图形图3 高度随时间变化图图4 速度随时间变化图4. 结果分析表一 不同积分法对应的落地时间和落地速度Euler落地时间RungeKutta落地时间Euler落地速度RungeKutta落地速度59.8659.85-345.984-345.949由迭代结果可知,小球的高度,速度变化规律是:开始加速度为负,并逐渐趋近于0,速度由100m/s逐渐减小到0,此时高度逐渐上升但上升的速度逐渐变慢,到达最高点后速度由正变负,绝对值不断变大,小球加速下降。图5 有无空气阻力时速度时间图像对比图6 有无空气阻力时高度时间对比从图中可以看出,随着时间的增加,有阻力时速度和高度和无阻力时
3、的速度和高度差值越来越大。:5. 代码代码1:Euler方法#include#include#include#includeusing namespace std;void Euler(double h,double* x,double* f,double D,double p);void Fct(double h,double* x,double* f,double D,double p);double Rho(double* x);int main()double t0=0;double tf=60;double h=0.01;double x2;double f2;double D;do
4、uble p;x0=10000;x1=100;double t;ofstream outFile(D:MatlabKevinprime.txt);for(t=t0;ttf;t=t+h)p=Rho(x);Euler(h,x,f,D,p);outFileh+t x0 x1 Dendl;if(x0=0) break; cout落地时间为h+tendl;cout落地速度为x1=0&x01000&x03000&x05000&x07000&x09000&x011000&x0=15000) p=0.364+(x0-11000)*(0.194-0.364)*0.00025; else p=0.194+(x0-
5、15000)*(0.088-0.194)*0.0002;return p;代码2:Runge-Kutta方法#include#include#include#includeusing namespace std;void RungeKutta(double t,double *x,double *k1,double *k2,double *k3,double *k4,double h,double p);void kct(double t,double *x,double *k1,double *k2,double *k3,double *k4,double h,double p);doubl
6、e Rho(double *x);int main()double t0=0;double tf=60;double h=0.01;double x2;double k12;double k22;double k32;double k42;double p=0; x0=10000; x1=100; double t;ofstream outFile(D:MatlabKevinprime2.txt);for(t=t0;ttf;t=t+h)RungeKutta(t,x,k1,k2,k3,k4,h,p);outFileh+t x0 x1endl; if(x0=0) break; cout落地时间为h+tendl;cout落地速度为x1=0&x01000&x03000&x05000&x07000&x09000&x011000&x0=15000) p=0.364+(x0-11000)*(0.194-0.364)/4000; else p=0.194+(x0-15000)*(0.088-0.194)/5000; return p; .学习帮手.