基于matlab的阻尼振动
孟利平 (船院 2009011521)
摘要:
分析单自由度阻尼系统的阻尼系统对其固有振动模态的影响,用传统方法通过matlab实现其振动规律曲线,并改变其初始条件,实现一组曲线的脉冲过度函数,改变传统运算算法,使运算简便明了。
关键字: 阻尼振动,复数运算,简便
引言:
通过传统方法,用基本公式分析阻尼振动,并根据传统算法编程,用matlab实现其振动规律曲线,并绘制曲线。由于传统计算公式要考虑复数运算,其要避开复数运算,所以程序显得繁琐,改变其中算法公式,用matlab直接实现其算法,并绘制相应曲线。改变其初始条件,实现一组曲线的脉冲过度函数,并用matlab绘制其过渡曲线。
基本知识:
1
不论是弹簧振子还是单摆,由于外界的摩擦和介质阻力总是存在,,在振动过程中要不断克服外界阻力做功,消耗能量,振幅就会逐渐减小,经过一段时间,振动就会完全停下来。这种振幅越来越小的振动叫做阻尼振动。
振幅随时间减小的振动称为阻尼振动.因为振幅与振动的能量有关,阻尼振动也就是能量不断减少的振动.阻尼振动是非简谐运动.阻尼振动系统属于耗散系统。
阻尼振动 振动系统因受阻力而作振幅减小的运动。
一 . 阻尼振动的动力学方程
现象:振幅随时间减小
原因:阻尼
动力学分析:
假设:振动速度较小时,摩擦力正比于质点的速率。即:
假设:振动速度较小时,摩擦力正比于质点的速率。即:
阻尼力 FrCv 阻力系数 C
对物块应用牛顿第二定律:
2
kxCvma mdxdt22Cdxdtkx0 化解为二阶线性常系数齐次方程,即阻尼振动的动力学方程: dxdt222dxdt0x0 2其中: 固有角频率 0km 阻尼系数 C2m 解得: xAetcos(t) 其中: 振幅 Aet 角频率 022 T2π2π022 振幅Aet为随时间的推移,呈指数递减,越大,振动衰减越快;越小,振幅衰减越慢。随时间的推移,质点坐标单调地趋于零。质点运动是非周期的,甚至不是往复的。将质点移开平衡位置后释放,质点便慢慢回到平衡位置停下来,即过阻尼状态。 三种阻尼的比较 3
欠阻尼 022
过阻尼 022
临界阻尼 022
对以上传统公式算法,用matlab进行编程计算,实现其振动规律曲线,并通过曲线对阻尼振动规律进行分析。所绘图如下:
相应三维图如下:
4
算法改进: 上述算法公式较为繁琐,计算速度慢,编程复杂,是因为要避免复数运算。而matlab本身就具备复数运算功能,通过改变其中一些算法,重新编程,可以使求解变得简单,程序也直观简单。设原始微分方程为: mdxdt22Cdxdtkx0 先用roots函数求p1,p2,语句为: proots([a2,a1,1]) 然后不必管他们是否为复数, 把 xc1eptc2ept 12 对t求导,得 vdx/dtc1p1ep1tc2p2ep2t 带入初始条件可得: x0c1c2 v0c1p1c2p2 将这两个线行方程联立,得解: [c1c2][1p11p2] 5
这样,只要给出t数组,就求出了x。
根据以上改进,假如其它参数不变,求出=0.3一种情况下此系统的脉冲响应,用matlab编程实现其运动规律曲线,如下:
绘得三维图如下:
6
比较分析说明:
从上述两种方法中,可以明显感觉改进之后的方法程序简单明了,易于接受,而且运算简便,速度快捷。而传统的算法为了避免复数运算,而显得相对繁杂。但要注意的是,系统的实际运动中,x必是实数,但在复数运算中,由于计算的误差,难免会出现微小的虚部,使x变成复数。这会使绘图语句无法执行,因此要用real语句取出实部才能绘图。但这种方法核心语句只有中间的三句,语句简单多了。
绘脉冲过渡曲线:
改变初始条件,实现一组曲线的系统脉冲过度函数。因为脉冲函数的幅度无穷大,而持续时间却无限小,其面积为一个单位,所以脉冲激励的最后结果可形成一个单位的初速,由他产生脉冲过度函数波形。所的曲线如下:
7
结论:
通过两种方法的比较,前者是传统的经典算法,但为了避免复数运算,其公式显得繁琐复杂。可以明显感觉改进之后的算法更简单明了,其核心语句只有中间的三行就行,运算简便,速度快捷,而且易于让读者理解并接受。
参考文献:
【1】MATLAB及其在理工课程中的运用指南(第三版) 陈怀琛 西安电子科技大学出版社
【2】基于MATLAB的数学实验 胡守信,李柏年 科学出版社 【3】物理学(第五版).阻尼振动
8