航空发动机强度振动上机作业题3Word格式.docx
- 文档编号:16415685
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:19
- 大小:293.14KB
航空发动机强度振动上机作业题3Word格式.docx
《航空发动机强度振动上机作业题3Word格式.docx》由会员分享,可在线阅读,更多相关《航空发动机强度振动上机作业题3Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
编程计算
程序使用c语言编写,源代码如下:
#include<
stdio.h>
math.h>
stdlib.h>
intmain(void)
{
floatrou=2850;
floatE=71540000000;
floatX[11]={0.0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10};
floatA[11]={0.00017,0.000146,0.000126,0.000109,0.000096,0.000086,0.000077,0.000073,0.00007,0.000068,0.000068};
floatI[11]={0.000000000279,0.000000000212,0.000000000157,0.000000000108,0.000000000084,0.000000000061,0.000000000045,0.000000000037,0.000000000032,0.000000000030,0.000000000030};
floatAb[10];
floatIb[10];
inti=0;
while(i<
=9)
{
Ab[i]=((A[i+1]+A[i])/2);
i=i+1;
}
i=0;
Ib[i]=((I[i+1]+I[i])/2);
floatY0js[10]={0,0.1,0.2,0.4,0.5,0.6,0.7,0.8,0.9,1};
floatY0sj[10]={0,0,0,0,0,0,0,0,0,0};
floatY0xxx[10]={0,0,0,0,0,0,0,0,0,0};
floatone[10]={0,0,0,0,0,0,0,0,0,0};
floattwo[10]={0,0,0,0,0,0,0,0,0,0};
floatthree[10]={0,0,0,0,0,0,0,0,0,0};
floatfour[10]={0,0,0,0,0,0,0,0,0,0};
floatwucha=10;
floatxz=2.58;
inta=0;
intb=0;
intc=0;
intd=0;
inte=0;
intf=0;
intg=0;
inth=0;
intj=0;
intk=0;
intp=0;
intq=0;
while(wucha>
=0.000001)//给定拟合精确度
q=0;
while(9>
=q)
one[q]=0;
two[q]=0;
three[q]=0;
four[q]=0;
q=q+1;
}//这步是给数组清零,千万不能忘!
a=0;
b=9;
while(9>
=a)
b=a;
=b+1)
one[a]=one[a]+(Ab[b+1]*Y0js[b+1]*0.01);
b=b+1;
}
a=a+1;
}//第一重循环
c=0;
d=0;
=c)
d=c;
=d+1)
two[c]=two[c]+(one[d+1]*0.01);
d=d+1;
c=c+1;
}//第二重循环
e=0;
f=0;
=e)
f=0;
while(e>
=f)
three[e]=three[e]+two[f]*0.01*(1/Ib[f]);
f=f+1;
e=e+1;
}//第三重循环
g=0;
h=0;
=g)
h=0;
while(g>
=h)
four[g]=four[g]+three[h]*0.01;
h=h+1;
g=g+1;
}//第四重循环
k=0;
=k)
Y0sj[k]=four[k]/four[9];
Y0xxx[k]=four[k];
k=k+1;
}//求出实际y0,以便和假设yo对比迭代
wucha=0;
j=0;
while(j<
wucha=wucha+fabs(Y0js[j]-Y0sj[j]);
j=j+1;
}//假设的y0与求出y0之间的误差
p=0;
=p)
Y0js[p]=Y0sj[p];
p=p+1;
}//令实际值等于假设值,再次迭代运算
floatomega=0;
omega=5000*sqrt((1/four[9]));
printf("
一阶固有静频为:
%.5fHZ\n"
omega/(2*3.1415926));
floatY2js[10]={0,-0.1,-0.3,-0.5,-0.4,-0.2,-0.1,0.5,0.8,1};
floatY2[10]={0,0,0,0,0,0,0,0,0,0};
floatxiuzhen=4;
floatY2sj[10]={0,0,0,0,0,0,0,0,0,0};
floatb11=0;
floatC21=0;
floata21=0;
a21=10;
while(fabs(a21)>
=0.00000001)//给定拟合精确度
b11=0;
C21=0;
a21=0;
b11=b11+2850*Ab[i]*Y0xxx[i]*Y0xxx[i]*0.01;
i++;
C21=C21+2850*Ab[i]*Y0xxx[i]*Y2js[i]*0.01;
a21=C21/b11;
Y2[i]=Y2js[i]-a21*Y0xxx[i];
Y2js[p]=Y2[p];
i=0;
while(i<
Y2sj[i]=Y2[i]/Y2[9];
}//归一化
q=0;
b=0;
=b+2)
one[a]=one[a]+(Ab[b+2]*Y2sj[b+2]*0.01);
}//第四重循环
omega=sqrt((E/rou)*(1/four[9]));
omega=omega*xz;
二阶固有静频为:
floatY3js[10]={0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1};
floatY3[10]={0,0,0,0,0,0,0,0,0,0};
floatY3sj[10]={0,0,0,0,0,0,0,0,0,0};
b11=0;
floatb12=0;
floatb21=0;
floatb22=0;
floatC31=0;
floatC32=0;
floata31=0;
floata32=0;
a32=10;
floatshoulian=10;
while(shoulian>
=0.0001)//给定拟合精确度
while(i<
Y3js[i]=Y3[i];
b12=0;
b21=0;
b22=0;
C31=0;
C32=0;
a31=0;
a32=0;
b12=b12+2850*Ab[i]*Y0xxx[i]*Y2[i]*0.01;
b21=b21+2850*Ab[i]*Y0xxx[i]*Y2[i]*0.01;
b22=b22+2850*Ab[i]*Y2[b]*Y2[i]*0.01;
C31=C31+2850*Ab[i]*Y0xxx[i]*Y3js[i]*0.01;
C32=C32+2850*Ab[i]*Y2[i]*Y3js[i]*0.01;
a31=C31/b11;
a32=C32/b22;
Y3[i]=Y3js[i]-a31*Y0xxx[i]-a32*Y2[i];
shoulian=fabs(Y3js[0]-Y3[0]);
}
one[a]=one[a]+(Ab[b+2]*Y3[b+2]*0.01);
omega=omega*xiuzhen;
三阶固有静频为:
(2*omega)/(2*3.1415926));
system("
pause"
);
程序运行结果如下:
四:
总结与感悟
这个程序,我个人认为是四个程序里面难度最大的一个。
从开始构思程序,到全部编写完毕,前前后后用了一个多月的时间。
这一个月,我几乎将所有的课余精力都投入到了这个程序中。
经历了无数次的错误,返工,最终得出了合理的解答。
在此我要特别感谢蒋向华老师。
蒋老师不厌其烦的给我讲解,帮助我分析出很多问题。
在我看来,这个程序的难点主要在于对那个振型逼近法的理解和算法实现。
我在这个程序之中采取了数组而不是多重循环。
之所以使用数组,因为数组更加简单直观,便于理解,防止多重循环逻辑结构复杂的问题。
我是将每一重循环看作一个函数,把该函数所有的输出值(既循环上下限变化后的所有求和值)存入一个数组中,然后上一重循环再调用这个数组里面的值,依此类推。
通过这个程序,我学到的不仅仅是这个程序本身所包含的知识,还有在各种问题面前冷静思考,分析问题,解决问题的能力,灵活运用自己掌握的知识的能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航空发动机 强度 振动 上机 作业题