机械振动基础教科书里面的例题,一个悬臂梁,一端固定,一端自由,自由端受一轴向力后释放,求3/5L处随时间变化的位移。
示意图和公式都在附件里面,杆的物性参数有长度为1米,密度用dens表示,t=0时刻单位长度的位移量si=0.0001,书上有现成的公式,我算了一下周期是T=0.41ms,我简单编了一个程序,计算一个周期3/5L处的位移变化,求出来图形与实际不对,不知错在那下面是我的程序
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
void main()
{
int m,n,p,b=1;
double a=0,u,t,dens=8027,E=193e9,dt=1e-7,si=0.0001;
double c=sqrt(E/dens);
FILE * fid=fopen("displacement.txt","w" ;
for(n=1;n<=4100;n++)
{
t=n*dt;
for(m=1;m<=10;m++)
{
for(p=1;p<=m;p++)
{
b=b*(-1);
}
a=a+b*sin(0.3*(2*m-1)*PI)*cos((2*m-1)*c*PI*t/2)/((2*m-1)*(2*m-1));
}
u=8*si*a/(PI*PI);
fprintf(fid,"%2.5e\n",u);
}
fclose(fid);
printf("finish\n" ;
}
前面10xe-7秒的位移量在下面
6.56E-05
1.31E-04
1.97E-04
2.62E-04
3.28E-04
3.93E-04
4.59E-04
5.25E-04
5.90E-04
6.56E-04
理论上0时刻位移量应该是6E-05,上面十个数据每个的间隔是e-7秒,很短,位移量应该是缓慢减小的,程序出来的数据是位移量增加的,不知哪里出来问题,求大神指点
![一端固定一端自由的弹性杆纵向振动]()
1.jpg
![一端固定一端自由的弹性杆纵向振动-1]()
2.jpg |