用MATLAB仿真机械振动

摘要:在学习力学机械振动时,在教材中有关于一些机械振动的图像,但并不全面。为了使学习本部分内容更加清晰、形象、易理解。本文利用MATLAB强大的作图功能做出了阻尼振动及受迫振动图像,同时也验证了理论及结论

关键字:阻尼振动 受迫振动 MATLAB

引言:

振动在我们的生活中无处不在,小到组成物质的原子,大至星球也都在振动。本文研究力学机械振动,同时有许多文章研究振动。例如:利用MATLAB中的Simulink软件包对机械振动仿真[4],利用MATLAB的M文件来研究受迫振动实验[5].。本文研究的是利用MATLAB研究阻尼振动(验证阻尼振动中的弱阻尼、过阻尼、临界阻尼的振动的位移-时间的关系)和受迫振动(受迫振动的振幅与频率和哪些因素有关),受迫振动的振幅与外力频率的关系[2]。本文验证振幅与质量及刚度的关系,用MATLABL做出其关系图-让我们很清楚的看到质量越大-刚度系数越小时振幅越小。

第一部分 阻尼振动

假如物体振动时不受任何阻力影响,物体就会永无休止的振动下去;但事实上任何实际的自由振动总不会永无休止的进行下去,总会有各种阻力的存在,使得振动能量将逐渐变为热能耗散了。

其中我们仅考虑一种简单的情况,在速度比较小时其阻力仅与速度有关;

[1];根据牛顿第二定律,质点在受到阻力位作用下的运动微分方程为;

[1]通过数学知识解其运动微分方程;

当阻尼系数r=0时:即自由振动,其振动方程的解;

[1] 其中,由初始条件而定的常数。

(2)当时:即弱阻尼,其运动微分方程的解;

[1] 其中,由初始条件而定的常数

(3)当时:即过阻尼,其运动微分方程的解;

[1] 其中,由初始条件而定的常

(4)当时:即临界阻尼状态,其运动微分方程的解;

[1] 其中,由初始条件而定的常数

机械振动的MATLAB模拟仿真

对其理论知识的理解,做振动的MATLAB模拟仿真,其程序如下;(说明:程序中的m,k,r均为可变参数,分别代表质量,刚度系数,阻尼系数)

clc

while(1)

ip=input('若继续请按ENTER,0 退出程序。');

if ip==0;

break;

end

m=input('质量m='); k=input('刚度系数k=');

r=input('阻尼系数r='); wo=k/m; b=r/(2*m);

if b==0; w1=sqrt(wo-b^2);

x=0:0.001:10*pi;

y=cos(w1*x); %初相为0,幅值为1;

plot(x,y)

xlabel('时间变量x');

ylabel('幅度y');

title('自由振动')

elseif sqrt(wo)>b;

w1=sqrt(wo-b^2);

x=0:0.001:10*pi;

y=cos(w1*x).*exp(-b*x); %初相为0,幅值为1;plot(x,y)

xlabel('时间变量x'); ylabel('幅度y');

title('弱阻尼状态')

elseif sqrt(wo)==b;

x=0:0.01:5*pi;

y=(1+2*x).*exp(-b*x); %初相为0,幅值为A1=1,A2=2; plot(x,y) xlabel('时间变量x');

ylabel('幅度y');

title('临界阻尼')

else

w2=sqrt(b^2-wo);

x=0:0.01:5*pi;

y=5*exp(-(b+w2)*x)+4*exp((w2-b)*x); %初相为0,幅值为A1=5,A2=4; plot(x,y)

xlabel('时间变量x');

ylabel('幅度y');

title('过阻尼')

end

end

变参数m,k,r来改变, 而得到不同的位移-时间图像,并观察图像的变化。可观察位移-时间图像随时间衰减的更快些。这也就是我们现实生活中的电流表指针,在读完一次读数回到零点时就是受到电磁阻尼,为避免指针尽快回到零点又避免往复摆动:

第二部分 受迫振动 共振

摩擦阻尼总是客观存在的,只是减小而不能完全消除它。通常是对系统作用一周期性的外力。是物体在周期性外力的持续作用下使物体做受迫振动。这种周期性外力称为驱动力。 为简单起见,假设驱动力有如下的形式

[2]

式中为驱动力的幅值,为驱动力的角频率。物体在弹性力、阻力和驱动力的作用下,其运动方程为

[2]

令,则上式可写为

更多推荐