《梁弯曲分析,自由振动分析的C程序.doc》由会员分享,可在线阅读,更多相关《梁弯曲分析,自由振动分析的C程序.doc(4页珍藏版)》请在三一办公上搜索。
1、1、梁弯曲分析,自由振动分析的C程序程序:#include #include float zgxj(float b,float h)/*轴惯性矩计算子程序*/float I;I=b*h*h*h/12;return(I);void main() /*主函数*/*/ int i,j;float a44;float L,b,h,jz,l; /*设置轴的长度、周截面的高度h、宽带b、轴惯性矩、梁单元长度*/int N;/*设置节点数量N*/float E; /*刚度系数模量*/printf(请输入刚度系数:);scanf(%f,&E);printf(n);printf(请输入杆的长度:);scanf(
2、%f,&L);printf(n);printf(请输入杆的宽带和高度(数据之间用空格隔开):);scanf(%f %f,&b,&h);printf(n);printf(请需要输入划分的节点数量(建议不要太大20):);scanf(%d,&N);printf(n);jz=zgxj(b,h);/*计算轴惯性矩的值*/l=L/(N+1);/*求梁单元长度*/a00=12*E*jz/(l*l*l); /*计算刚度矩阵*/a01=6*E*jz/(l*l);a02=(-12)*E*jz/(l*l*l);a03=6*E*jz/(l*l);a10=6*E*jz/(l*l);a11=4*E*jz/l;a12=(
3、-6)*E*jz/(l*l);a13=2*E*jz/l;a20=(-12)*E*jz/(l*l*l);a21=(-6)*E*jz/(l*l);a22=12*E*jz/(l*l*l);a23=(-6)*E*jz/(l*l);a30=6*E*jz/(l*l);a31=2*E*jz/(l*l);a32=(-6)*E*jz/(l*l);a33=4*E*jz/l;printf(梁单元刚度矩阵K:n);for(i=0;i=3;i+) /*输出刚度矩阵*/for(j=0;j=3;j+)printf( %.1f ,aij);printf(n);#include#includefloat zgxj(float
4、b,float h)/*轴惯性矩计算子程序*/float I;I=b*h*h*h/12;return(I);(2)求振动频率的程序float zizhen(float E,float I,float m,float L,int i) /*模特分析子程序,用于输出前各阶自振频率*/float f;float a4=3.516,22.03,61.7,120.9;f=ai*sqrt(E*I/m)/L/L);/*计算前四阶自振频率*/return(f);/*返回单前频率*/void main()/*主函数*/float L,b,h,iz; /*设置轴的长度、周截面的高度h、宽带b、轴惯性矩*/int
5、i,j;/*设置节点数量N*/float E,m;float a4=3.516,22.03,61.7,120.9,f4;/*定义影响系数和自振频率的字符*/printf(请输入刚度系数:);scanf(%f,&E);printf(n);printf(请输入杆的长度:);scanf(%f,&L);printf(n);printf(请输入杆的宽带和高度(数据之间用空格隔开):);scanf(%f %f,&b,&h);printf(n);printf(请输入线密度(单位:kg/立方米):);scanf(%f,&m);printf(n);iz=zgxj(b,h); for(i=0;i=3;i+) /*循环计算各阶频率*/ fi=zizhen(E,iz,m,L,i);j=i+1;printf(第 %d 阶的频率为 %f rad/s n,j,fi); 运算结果如图1.1所示图1.1