• 课程设计论文 > 课程设计报告
  • 课程设计报告

    免费下载 下载该文档 文档格式:PDF   更新时间:2009-05-02   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:pdf
    文档作者:lzb
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    课程设计报告 02010502 班 胡攀(050356)
    一.题目
    运载火箭运载性能分析 1. 总体参数
    表 1 两种改进型的总体参数 状态 名称 有效载荷质量(kg) 起飞质量(kg) 关机点质量(kg) 有效推进剂质量比 发动机比冲(s) 推重比 有效推进剂质量(kg) 结构质量(kg) 发动机推力(N) 发动机秒流量(kg/s) 发动机工作时间(s) 参考面积 阻力系数 2. 俯仰角的设计 一子级加长 1m(改进型 1) 第一级 3100 200509 51013 0.7456 289 1.417 149496 10300 2786093 983.119 152.063 33770 3843 565711 194.933 173.239
    2
    二子级加长 1m(改进型 2) 第一级 3100 第二级
    第二级
    40713 6943 0.8295 296.13
    200543 50995 61034 7344
    0.69566 0.8560 289 1.417 139509 10039 2786565 983.285 141.881 43651 4244 708580 244.014 178.887 296.13
    S=d
    2
    4
    =8.81413m ,其中 d = 3.35m ;
    Cd= 0.2
    改进型 1 程序角设计方案为:一子级从 90 度线性变化到 14 度,二子级从 14 度线性变 化到 2 度. 改进型 1 程序角设计方案为:一子级从 90 度线性变化到 18 度,二子级从 18 度线性变 化到 4 度.
    二.所用到的计算公式
    m
    dv = p 0.5 ρ v 2 cd mg sin θ dt 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));//龙格库塔积分函数 t, double midu, double* y, double* f); void Fct1(double //改进型一号的第一级火箭模型 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 //大气密度函数 #endif //主函数
    ru(double
    h);
    #include #include #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&&h=20000&&h=32000&&h=47000&&h=51000&&h=71000&&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 y[i]=k+(k1+2*k2+2*k3+k4)*h/6; } } 五.结果 图片对比
    从上面的图片对比中,我们可以很明白看出,改进型一的发动机工作完毕后速度大,而改进型 二的高度大,各有所长. 六课程设计编程体会
    从这次的课程设计中,我还是学到了不少东西,比如努力的方向,要在航 天方面有所作为,需要学好的东西还有很多.编程的技巧还有很多,还有 C 语言中 的很多不常用的功能需要补充进知识体系. 针对的课程设计的这次作业,我感觉还是准备不够,虽然说程序自己编出来了, 但还是感觉不够令人满意,需要提高的地方还有很多!我也在努力完善.
  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • 单片机课程设计论文  vb课程设计论文  matlab课程设计论文  网页制作课程设计论文  精品课程网站设计论文  计量经济学课程论文  基础教育课程改革论文  校本课程论文  课程论文格式