当前位置:
文档之家› 固体火箭发动机药柱设计大作业
固体火箭发动机药柱设计大作业
//面积单元 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;
固体药柱设计大作业
组员 1:学 号 组员 2:学 号 组员 3:学 号 组员 4:学 号 组员 5:学 号
12151175 12151171 12151165 12151185 12151158
姓 名 姓 名 姓 名 姓 名 姓 名
陈志远 段 毓 李诗凝 宋鹏翔 谢冰莹
2015 年 12 月 9 日
变量 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);
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;
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;
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");
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 种药柱中的一种进行计算 //烧去肉厚 //寄存器 //星角系数
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)