收藏 分销(赏)

课程设计报告(火箭运载能力分析).doc

上传人:仙人****88 文档编号:9411982 上传时间:2025-03-25 格式:DOC 页数:10 大小:235KB
下载 相关 举报
课程设计报告(火箭运载能力分析).doc_第1页
第1页 / 共10页
课程设计报告(火箭运载能力分析).doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述
课程设计报告 一.题目 运载火箭运载性能分析 1. 总体参数 表 1 两种改进型的总体参数 状态 名称 一子级加长 1m(改进型 1) 二子级加长 1m(改进型 2) 第一级 第二级 第一级 第二级 有效载荷质量(kg) 3100 3100 起飞质量(kg) 200509 40713 200543 50995 关机点质量(kg) 51013 6943 61034 7344 有效推进剂质量比 0.7456 0.8295 0.69566 0.8560 发动机比冲(s) 289 296.13 289 296.13 推重比 1.417 1.417 有效推进剂质量(kg) 149496 33770 139509 43651 结构质量(kg) 10300 3843 10039 4244 发动机推力(N) 2786093 565711 2786565 708580 发动机秒流量(kg/s) 983.119 194.933 983.285 244.014 发动机工作时间(s) 152.063 173.239 141.881 178.887 参考面积 S = d 2 =8.81413m 2 ,其中 d = 3.35m ; 4 阻力系数 Cd= 0.2 2. 俯仰角的设计 z 改进型 1 程序角设计方案为:一子级从 90 度线性变化到 14 度,二子级从 14 度线性变 化到 2 度。 z 改进型 1 程序角设计方案为:一子级从 90 度线性变化到 18 度,二子级从 18 度线性变 化到 4 度。 二.所用到的计算公式 m dv = dt  d p − 0.5ρv2c  − mg sin θ dx = v cosθ dt dy = v sin θ dt 三.编程思想及框图 由于编程的目的是解决求解微分方程的解,所以可以采用计算方法里面的龙格库 塔求解法,或者欧拉求解法,我选用的是龙格库塔求解法,我的设计思想是这样的 主函数是解方程,另外建立火箭的模型,大气密度用函数计算,整合到 mian 函数中 进行解算,对比两种改进型的高度,速度及距离随时间的变化规律,作出判断。 大气密度模 块  龙格库塔积 分模块  火箭模型分 改进型一号 和改进型二 号及第一和 第二级 四.程序代码 //头文件 rocket3.h //完成两种改进型火箭的弹道特性计算,作者:胡攀 最后修改:2008-12-23 19:30 #include "stdio.h" #include "math.h" #ifndef ROCKET_H #define ROCKET_H double ru(double h); void kuta (int n, double t, double midu, double h, double* y, void Fct( double t, double midu, double* y, double* f));//龙格库塔积分函数 void Fct1(double t, double midu, double* y, double* f); //改进型一号的第一级火箭模型 void Fct2(double t, double midu, double* y, double* f); //改进型一号的第二级火箭模型 void Fct3(double t, double midu, double* y, double* f); //改进型二号的第一级火箭模型 void Fct4(double t, double midu, double* y, double* f); //改进型二号的第二级火箭模型 double ru(double h); //大气密度函数 #endif //主函数 #include<stdio.h> #include<math.h> #include"rocket3.h" void main() { //主函数中各变量定义 n 是模型状态量数 ,h 是步长,t 是时间,midu 为大气密度 int n,j; double h,t,tf,midu; double *y; FILE *fp; printf("请输入积分步长 'h'.\n"); scanf("%lf",&h); printf("开始计算改进型一号的运载特性\n"); n=3; y=new double[n]; fp=fopen("a.text","w"); y[0]=0; y[1]=0; y[2]=0; tf=152.063; t=0; for(j=0;1;j++) //改进型一号第一级火箭发动机 { midu=ru(y[2]); kuta(n, t,midu, h, y, Fct1); t=h*j; fprintf(fp,"%lf %lf %lf %lf\n",t,y[0],y[1],y[2]); //写进文件 a.text if(t>=tf) break; } printf(" 第一级火箭分离时,火箭速度 %lf m/s ,射程 %lf m,高度 %lf m\n",y[0],y[1],y[2]); tf=173.239; t=0; for(j=0;1;j++) //改进型一号第二级火箭发动机 { midu=ru(y[2]); kuta(n, t,midu, h, y, Fct2); t=h*j; if(t>=tf) break; fprintf(fp,"%lf %lf %lf %lf\n",t+152.063,y[0],y[1],y[2]); //写进文件 a.text } printf(" 第二级火箭分离时,火箭速度 %lf m/s ,射程 %lf m,高度 %lf m\n",y[0],y[1],y[2]); printf("开始计算改进型二号的运载特性\n"); fp=fopen("b.text","w"); y[0]=0; y[1]=0; y[2]=0; tf=141.881; t=0; for(j=0;1;j++) //改进型二号第一级火箭发动机 { midu=ru(y[2]); kuta(n, t,midu, h, y, Fct3); t=h*j; if(t>=tf) break; fprintf(fp,"%lf %lf %lf %lf\n",t,y[0],y[1],y[2]); //写进文件 b.text } printf(" 第一级火箭分离时,火箭速度 %lf m/s ,射程 %lf m,高度 %lf m\n",y[0],y[1],y[2]); tf=178.887; t=0; for(j=0;1;j++) //改进型二号第二级火箭发动机 { midu=ru(y[2]); kuta(n, t,midu, h, y, Fct4); t=h*j; if(t>=tf) break; fprintf(fp,"%lf %lf %lf %lf\n",t+141.881,y[0],y[1],y[2]); //写进文件 b.text } printf(" 第二级火箭分离时,火箭速度 %lf m/s ,射程 %lf m,高度 %lf m\n",y[0],y[1],y[2]); //火箭各级的函数模型 #include"rocket3.h" void Fct1( double t, double midu, double* y, double* f) { double m,p,Cd,d,s,g,g0,R,st,mf,tf; Cd=0.2;//改进型一号 第一级火箭发动机 R=6378135; Cd=0.2; d=3.35; s=d*d/4; tf=152.063; g0=9.8; mf=983.119; p=2786093; st=3.1415926/2-t*(76*3.1415926/180)/tf; m=200509-t*mf; g=g0*(R/(R+y[2]))*(R/(R+y[2])); f[0]=(p-0.5*midu*y[0]*y[0]*Cd*s-m*g*sin(st))/m; f[1]=y[0]*cos(st); f[2]=y[0]*sin(st); } void Fct2( double t, double midu, double* y, double* f) { double m,p,Cd,d,s,g,g0,R,st,mf,tf; Cd=0.2; //改进型一号 第二级火箭发动机 R=6378135; Cd=0.2; d=3.35; s=d*d/4; tf=173.239; g0=9.8; mf=194.933; p=565711; st=14*3.1415926/180-t*(12*3.1415926/180)/tf; m=40713-t*mf; g=g0*(R/(R+y[2]))*(R/(R+y[2])); f[0]=(p-0.5*midu*y[0]*y[0]*Cd*s-m*g*sin(st))/m; f[1]=y[0]*cos(st); f[2]=y[0]*sin(st); } void Fct3( double t, double midu, double* y, double* f) { double m,p,Cd,d,s,g,g0,R,st,mf,tf; Cd=0.2; //改进型二号 第一级火箭发动机 R=6378135; Cd=0.2; d=3.35; s=d*d/4; tf=141.881; g0=9.8; mf=983.285; p=2786565; st=3.1415926/2-t*(72*3.1415926/180)/tf; m=200543-t*mf; g=g0*(R/(R+y[2]))*(R/(R+y[2])); f[0]=(p-0.5*midu*y[0]*y[0]*Cd*s-m*g*sin(st))/m; f[1]=y[0]*cos(st); f[2]=y[0]*sin(st); } void Fct4( double t, double midu, double* y, double* f) { double m,p,Cd,d,s,g,g0,R,st,mf,tf; Cd=0.2; //改进型二号 第二级火箭发动机 R=6378135; Cd=0.2; d=3.35; s=d*d/4; tf=178.887; g0=9.8; mf=244.014; p=708580; st=18*3.1415926/180.0-t*(14*3.1415926/180)/tf; m=50995-t*mf; g=g0*(R/(R+y[2]))*(R/(R+y[2])); f[0]=(p-0.5*midu*y[0]*y[0]*Cd*s-m*g*sin(st))/m; f[1]=y[0]*cos(st); f[2]=y[0]*sin(st); } } #include"rocket3.h" double ru(double h) { double T,T0=288.15,ru,ru0=1.2495; if (h>=0&&h<=11000) { T=(288.15-0.0065*h); ru=ru0*pow((T/T0),4.25588); } else if(h>=11000&&h<=20000) { T=216.65; ru=0.36392/pow(2.718281828459,(h-11000)/6341.62); } else if(h>=20000&&h<=32000) { T=(228.65+0.001*(h-20000)); ru=0.088035*pow(216.6/T,35.1632); } else if(h>=32000&&h<=47000) { T=228.65+0.0028*(h-32000); ru=0.013225*pow(228.65/T,13.2011); } else if(h>=47000&&h<=51000) { T=270.65; ru=0.00142754/pow(2.718281828459,((h-47000)/7922.27)); } else if(h>=51000&&h<=71000) { T=270.65-0.0028*(h-51000); ru=0.0008616*pow(T/270.65,11.2011); } else if(h>=71000&&h<=86000) { T=214.65-0.002*(h-71000); ru=0.000064211*pow(T/214.65,16.0818); } else if(h>=86000) ru=0; return(ru); } #include "rocket3.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// //n 为状态数,t 为时间,h 为步长,y 为状态指针 void kuta (int n, double t, double midu, double h, double* y, void Fct( double t, double midu, double* y, double* f)) { int i; double *f; double k1,k2,k3,k4,k; f=new double[n]; (*Fct)( t, midu, y, f); for(i=0;i<n;i++) { k=y[i]; k1=f[i]; y[i]=y[i]+k1*h/2; (*Fct)( t, midu, y, f); k2=f[i]; y[i]=y[i]+k2*h/2; (*Fct)( t, midu, y, f); k3=f[i]; y[i]=y[i]+k3*h; (*Fct)( t, midu, y, f); k4=f[i]; y[i]=k+(k1+2*k2+2*k3+k4)*h/6; } } 五.结果 图片对比 从上面的图片对比中,我们可以很明白看出,改进型一的发动机工作完毕后速度大,而改进型 二的高度大,各有所长。 六课程设计编程体会 从这次的课程设计中,我还是学到了不少东西,比如努力的方向,要在航 天方面有所作为,需要学好的东西还有很多。编程的技巧还有很多,还有 C 语言中 的很多不常用的功能需要补充进知识体系。 针对的课程设计的这次作业,我感觉还是准备不够,虽然说程序自己编出来了, 但还是感觉不够令人满意,需要提高的地方还有很多!我也在努力完善。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服