数学建模案例-大学物理-阻尼振动
- 格式:pdf
- 大小:457.98 KB
- 文档页数:5
数学模型案例-阻尼振动的数学模型
问题背景与描述:
简谐振动是一种无阻尼振动,而实际上,任何振动物体都要受到阻力的作用,这种振动叫阻尼振动。
阻尼振动有摩擦阻尼和辐射阻尼两种。
根据实验证实,当物体以不太大的速率在粘性介质中运动时,介质对物体的阻力与物体的运动速率成正比,方向与运动方向相反。
数学模型
阻力与速率的关系:
-------阻尼系数,它与物体的形状、大小及介质有关。
对弹簧振子,在弹性力及阻力的作用下,物体的运动方程为
(此处自行思考:得到该模型的基本原理是什么?)
令 ,
无阻尼时振子的固有角频率,
为阻尼因子,
代入上式后可得等价形式:
数学模型的解 在阻尼作用较小时,即,此微分方程的解为
)cos(00ϕωβ+=-t e A x t
其中 此时阻尼振动的周期为
当
时,这种阻尼振动称为欠阻尼; 当时,称为过阻尼; 当时,称为临界阻尼。
*****进一步的学习资料*******:
解上述二阶微分方程,Matlab只要用一个函数ode23就能解决问题。
那我们现在就开始学吧!ode23函数可以用来解微分方程组,但只能是一阶的。
所以对于二阶的微分方程,我们可以将其分解成两个一阶的方程来解。
而且使用此函数,必须提前编写一个ode文件(ode文件)。
ode文件是一种函数M文件,即:在m-file编辑器中,文件必须以function开头,后面跟的函数名必须与将来保存的M文件名一致。
函数文件第一句的具体形式为:function y=name(x)
其中为y输出变量名,x为变量,name为函数名,保存时文件名必须是name.m。
当函数有一个以上的输出函数时,输出参数包含在方括号里,变参包含在圆括号里,即函数文件的第一行的具体形式为:
function [out1,out2,…]=name(in1,in2,…)
例:计算数组元素的平均值
解:functiony=average(x)
y=sum(x)/length(x)
解微分方程的函数ode23调用格式为:
ode23('FUN',TSPAN,YO)
其中,
FUN为字符串,表示微分方程的ode文件名,
TSPAN=[TO,TFINAL]表示积分区间,
YO为初始条件。
此函数表示在初始条件下Y0从T0到TFINAL对微分方程y'=F(t,y)进行积分。
函数在图形窗口返回具体的数值解,则可以采用以下的格式:
[T,Y]=ode23('FUN',TSPAN,Y0)
这样在T向量返回积分点,Y返回对应积分点的积分函数值。
例:编写m-file描述物体作阻尼振动的振动曲线,分欠阻尼、过阻尼和临界阻尼三种情况。
解:首先将阻尼振动的微分方程
分解为一阶微分方程:令
则原方程化为
打开m-file编辑器,
在其中编写ode文件为
functionf=zuni(t,x,flag,beita,wo);
f=[x(2);
-2*beita.*x(2)-wo.^2*x(1)];
保存文件名为zuni.m
另外打开一个新m-file,在其中编写程序代码:
beita=input('欠阻尼系数p=');
wo=input('固有频率wo(p<wo)=');
[t,x]=ode23('zuni',[0:0.001:5*pi],[6,8],[],beita,wo);%调用ode23,[6,8]为初始条件,
%即x=6,x'=8,[]说明以后是输入参数,beita,wo是参数名
subplot(3,1,1),plot(t,x(:,1),'r'),title('欠阻尼')%取x(1),绘制t-x(1)位移曲线,红色
beita=input('过阻尼系数p=');
wo=input('固有频率wo(p>wo)=');
[t,x]=ode23('zuni',[0:0.001:5*pi],[6,8],[],beita,wo);
subplot(3,1,2),plot(t,x(:,1),'b'),title('过阻尼')%取x(1),绘制t-x(1)位移曲线,兰色
beita=input('临界阻尼系数p=');
wo=input('固有频率wo(p=wo)=');
[t,x]=ode23('zuni',[0:0.001:5*pi],[6,8],[],beita,wo);
subplot(3,1,3),plot(t,x(:,1),'g'),title('临界阻尼')%取x(1),绘制t-x(1)位移曲线,绿色然后保存(如保存其名为zunizhend.m),
再按F5运行。
移至Matlab主窗口,输入数据,
按Enter键即得振动曲线。