固体火箭发动机药柱设计大作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

变量 pi sita e1 sita_1
含义
变量 D R EE r1
含义 药柱外径 药柱半径
3.14159
星边夹角(等面)
药柱肉厚
0.6 星角系数
r ' 星根角处半径
星边夹角(减面)
cup1,cup2
用作数据传递的寄存器
mode
模式选择
3、具体计算程序 [本程序为 c 语言程序] #include <stdio.h> #include <stdlib.h> #include <math.h> void fun1(float* sc,float*fc,float yc,float yc1,float yc2,float R1,float r1,float sita1); void fun2(float* sc,float*fc,float yc,float yc1,float yc2,float R2,float r2,float sita2); void fun3(float* sc,float*fc,float yc,float yc1,float yc2,float b3,float h3); void fun4(float* sc,float*fc,float yc,float yc1,float yc2,float b4,float h4); void fun5(float* sc,float*fc,float yc,float yc1,float yc2,float R5,float r5,float H); void fun6(float* sc,float*fc,float yc,float yc1,float yc2,float R6,float r6,float aerfa);
printf("e=%-8.1fSc=%-13fFc=%-13fS=%-13fAp=%-13f\n",e,sc[i],fc[i],2*n*sc[i],pi* R*R-2*n*fc[i]); i++;
} goto exit;
NoStarRoot: if (mode==3); else if(mode==4) sita=sita_1; else {printf("错误, 请重新输入:\n");
1) 已知数据及已知函数初始化,将 7 种不同面积单元的燃烧线长度和待燃 面积与燃烧肉厚的函数定义好。 2) 等待输入识别码 mode,若 mode=1,则为等面有星根,mode=2 为减面有 星根,mode=3 为等面无星根,mode=4 为减面无星根。Mode 不同,之 后的型面分区和计算将跳转至不同的程序段; 3) 对型面进行分割; 4) 按照课本的算法,建立 RM[3][7]和 RL[3][7]两个二维数组,同时根据初 始参数算出“计算辅助几何参数” ,存入 RM 和 RL 数组; 5) 使用 for 循环使燃烧肉厚 e 不断增加,每增加一个步长,则依次调用 1) 中定义的七个运算函数进行计算,将求得的燃烧线长度和待燃面积累加 在 sc[e]和 fc[e]中,每次七个函数的运算结果叠加完后,输出在此 e 时的 燃烧线长度 sc[e]和待燃面积 fc[e]; 6) 用制图软件将输出的数据绘制成两条曲线,结束。 2、程序中主要变量含义
yc2[1][6]=Rm-r;
i=0; for (e=0;e<Rm-r;e=e+0.1) { fun1(&cup1,&cup2,e,yc1[1][1],yc2[1][1],RM[1][1],RL[1][1],ANG[1][1]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun1(&cup1,&cup2,e,yc1[2][1],yc2[2][1],RM[2][1],RL[2][1],ANG[2][1]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun1(&cup1,&cup2,e,yc1[3][1],yc2[3][1],RM[3][1],RL[3][1],ANG[3][1]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun2(&cup1,&cup2,e,yc1[1][2],yc2[1][2],RM[1][2],RL[1][2],ANG[1][2]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun3(&cup1,&cup2,e,yc1[1][3],yc2[1][3],RM[1][3],RL[1][3]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun4(&cup1,&cup2,e,yc1[1][4],yc2[1][4],RM[1][4],RL[1][4]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun5(&cup1,&cup2,e,yc1[1][5],yc2[1][5],RM[1][5],RL[1][5],ANG[1][5]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun6(&cup1,&cup2,e,yc1[1][6],yc2[1][6],RM[1][6],RL[1][6],ANG[1][6]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2;
//面积单元 A(1,1) RM[1][1]=R; RL[1][1]=R-e1; ANG[1][1]=(1-EE)*pi/n; yc1[1][1]=0; yc2[1][1]=e1; //面积单元 A(2,1) RM[2][1]=e1+r; RL[2][1]=r; ANG[2][1]=asin(R/Rm*sin(EE*pi/n)); yc1[2][1]=0; yc2[2][1]=e1; //面积单元 A(3,1) RM[3][1]=B;
RM[1][6]=R; RL[1][6]=e1+r; ANG[1][6]=EE*pi/n; yc1[1][6]=e1; yc2[1][6]=Rm-r;
i=0; for (e=0;e<Rm-r;e=e+0.1) { fun1(&cup1,&cup2,e,yc1[1][1],yc2[1][1],RM[1][1],RL[1][1],ANG[1][1]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun1(&cup1,&cup2,e,yc1[2][1],yc2[2][1],RM[2][1],RL[2][1],ANG[2][1]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun1(&cup1,&cup2,e,yc1[3][1],yc2[3][1],RM[3][1],RL[3][1],ANG[3][1]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun4(&cup1,&cup2,e,yc1[1][4],yc2[1][4],RM[1][4],RL[1][4]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun5(&cup1,&cup2,e,yc1[1][5],yc2[1][5],RM[1][5],RL[1][5],ANG[1][5]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2; fun6(&cup1,&cup2,e,yc1[1][6],yc2[1][6],RM[1][6],RL[1][6],ANG[1][6]); sc[i]=sc[i]+cup1; fc[i]=fc[i]+cup2;
RL[3][1]=r; ANG[3][1]=acos(H/Rm)-sita/2.0; yc1[3][1]=0; yc2[3][1]=B-r; //面积单元 A(1,2) RM[1][2]=r_1; RL[1][2]=0; ANG[1][2]=(pi-sita)/2.0; yc1[1][2]=0; yc2[1][2]=r_1; //面积单元 A(1,3) RM[1][3]=(B-r-r_1)/tan(sita/2.0); RL[1][3]=r_1; yc1[1][3]=0; yc2[1][3]=r_1; //面积单元 A(1,4) RM[1][4]=(B-r-r_1)/tan(sita/2.0); RL[1][4]=B-r-r_1; yc1[1][4]=r_1; yc2[1][4]=B-r; //面积单元 A(1,5) RM[1][5]=Rm; RL[1][5]=B; ANG[1][5]=H; yc1[1][5]=B-r; yc2[1][5]=Rm-r; //面积单元 A(1,6) RM[1][6]=R; RL[1][6]=e1+r; ANG[1][6]=EE*pi/n; yc1[1][6]=e1;
//参数数组定义 float RM[3][7];
float RL[3][7]; float ANG[3][7]; float yc1[3][7]; float yc2[3][7];
float Rm,H,B; Rm=sqrt(R*R+l*l-2*R*l*cos(EE*pi/n)); H=l*sin(EE*pi/n); B=H/cos(sita/2.0);
printf("Solid
Rocket
Motor
Big
Assignment
__
created
by
Czy.\n======================================================== =====\n 输入你想要计算的药柱类型:\n 输入 1:等面有星根 有星根\n 输入 3:等面无星根 begin: scanf("%d",&mode); if (mode==1); else if (mode==2) sita=sita_1; else goto NoStarRoot; 输入 4:减面无星根\n"); 输入 2:减面
goto begin;} //面积单元 A(1,1) RM[1][1]=R; RL[1][1]=R-e1; ANG[1][1]=(1-EE)*pi/n; yc1[1][1]=0; yc2[1][1]=e1; //面积单元 A(2,1) RM[2][1]=e1+r; RL[2][1]=r; ANG[2][1]=asin(R/Rm*sin(EE*pi/n)); yc1[2][1]=0; yc2[2][1]=e1; //面积单元 A(3,1) RM[3][1]=B; RL[3][1]=r; ANG[3][1]=acos(H/Rm)-sita/2.0; yc1[3][1]=0; yc2[3][1]=B-r; //面积单元 A(1,4) RM[1][4]=(B-r)/tan(sita/2.0); RL[1][4]=B-r; yc1[1][4]=0; yc2[1][4]=B-r; //面积单元 A(1,5) RM[1][5]=Rm; RL[1][5]=B; ANG[1][5]=H; yc1[1][5]=B-r; yc2[1][5]=Rm-r; //面积单元 A(1,6)
固体药柱设计大作业
组员 1:学 号 组员 2:学 号 组员 3:学 号 组员 4:学 号 组员 5:学 号
12151175 12151171 12151165 12151185 12151158
Fra Baidu bibliotek
姓 名 姓 名 姓 名 姓 名 姓 名
陈志远 段 毓 李诗凝 宋鹏翔 谢冰莹
2015 年 12 月 9 日
一、主要几何参数 药柱外径: 药柱肉厚: 特征尺寸: 星角数: D= 170 e1= 45 l= 36 mm mm mm
n= 6 mm
星槽圆弧半径:r= 4 星边夹角: 星角系数:
θ= 67.06 (等面) 、 60 (减面) ε= 0.6 (无) 、 3 mm(有)
星根角处半径: r = 0 二、计算程序 1、程序流程
int main() { float pi=3.14159; //药柱基本几何尺寸 float D=170; float R=85; float e1=45; float l=36; float n=6;float r=4;float r_1=3; float sita=67.06*pi/180; float sita_1=60*pi/180; float EE=0.6 ; int i; float e; float cup1,cup2; float sc[600]={0}; float fc[600]={0}; int mode; //燃烧线长度累加器、剩余燃烧面积累加器 //模式选择,选择 4 种药柱中的一种进行计算 //烧去肉厚 //寄存器 //星角系数
相关文档
最新文档