弹簧振子系统的简谐振动研究 matlab课程作业
Matlab实现振动弹簧的实时动画
![Matlab实现振动弹簧的实时动画](https://img.taocdn.com/s3/m/670d087365ce05087732133d.png)
M a t l a b实现振动弹簧的实时动画This manuscript was revised by the office on December 22, 2012M a t l a b实现振动弹簧的实时动画摘要:Matlab是当前应用最广泛的科学与工程计算软件之一,本次课设将Matlab引入到图形学动画设计.本次课设主要可分为两大步骤:一、应用Matlab对弹簧振子进行建模;二、应用Matlab实现弹簧振动的实时动画。
其中建模部分包括对天花板的建模、对连接直线的建模、对弹簧的建模、对振动小球的建模。
模拟弹簧振动的过程主要包括:①更新小球和弹簧的位置。
②更新水平线的位置和长度。
③实时地画出弹簧高度与时间的关系曲线。
关键字:Matlab,振动弹簧,建模,实时动画目录1绪论................................................................... . (1)1.1matlab基本功能介绍................................................................... . (1)1.2matlab的动画制作 (2)2振动弹簧的实时动画 (4)2.1程序功能分析................................................................... (4)2.2弹簧振子的matlab建模 (6)2.2.1天花板的建模................................................................... . (7)................................................................. (8)................................................................. (9)................................................................. .. (10)2.2.5利用set函数返回句柄值改变来当前坐标轴 (11)2.3弹簧振动的实时动画 (13) (13)2.3.2利用matlab实现弹簧的实时振动 (14)2.4调试结果................................................................... (19)3设计总结................................................................... . (23)参考文献................................................................... .. (24)致谢................................................................... (25)附录-弹簧阻尼振动程序................................................................... (26)2.1程序功能分析以下是利用matlab实现振动弹簧的事实动画的程序。
MATLAB大作业
![MATLAB大作业](https://img.taocdn.com/s3/m/df07d2dc3186bceb19e8bbc8.png)
MATLAB 作业赵伟伦 1100500121题目:弹簧模拟简介:本研究假设给定一个完全理想的弹簧(弹簧系数自定),用一条不会弯曲的直线表示,一端(初始时刻在上方或右方)固定一个想象中存在的人的手指上,另一端悬挂一个重力球(质量自定),用鼠标拖动手指端或者给球一个外力时,整个系统将按照一定的轨迹运动。
这个轨迹的计算和仿真就是本研究的主要目的。
方法:利用物理学规律,将重力球的每一个即使时刻的受力状态描述出来,获得运行轨迹的数学函数,由函数画出球与直线运行的轨道。
也可以找一个真的弹簧和小球,实际运动的小球,每隔固定时间(0.1s )测量小球的位置,通过几个离散数据描述出小球的轨迹,用差值或拟合的方法求出轨迹曲线,再让球沿轨迹运动,从而完成任务。
个人分析:首先我只先考虑小球是如何跟弹簧运动的,即只考虑弹簧挂重物一端的运动轨迹。
弹簧先考虑理想的弹簧,即无阻尼和无其他干扰条件下的弹簧;再考虑弹簧有阻尼情况下,弹簧一端运动的情况。
而对运动分析也从两个角度:离散弹簧运动端的运动轨迹,即用到物理学中的,速度、加速度与位移公式,通过递推的方法求出每一时刻小球运动的位置;考虑弹簧整个运动过程的轨迹,即通过分析弹簧运动端的受力情况,用牛顿第二定律,推出时间与小球位置的通解。
考虑离散情况:程序内容:1、%定义小球的初始位置,颜色,形状,大小与清除方式2、%画坐标轴3、%定义个分量的初始值:K 为弹簧弹性系数;m 为小球的质量;同时忽略弹簧质量;t 极小时间变量;v0初始速度T 为时间变量L 为平衡位置4、%读入鼠标点击点的坐标值5、%做循环循环分析:当鼠标点击一点后,设此点为弹簧运动端的被外力拉到此点,由于弹簧发生形变,形变记为l1,01l l l -=。
弹簧会给运动端一个回到平衡位置的力,此时的弹簧的拉力为:1*l k F =拉;此时为初始时刻,小球此时还没有用的时间运动,即初始速度=0;记录此时小球的位置l0;(l0为小球当前的位置,即为初始读入值)plot(l0,T);画出位移与时间关系set(h,'xdata',l0,'ydata',0);画出若小球现实与弹簧连接后,水平位置的变化分析小球受力情况:由于忽略阻力和其他外力,小球只受弹簧的拉力,此时小球顺时的加速度为:m F a 拉=;ml k a 1*=假设在极小时间内(t=0.01s )小球的为匀加速运动经过0.01秒后,小球的速度变为v1在这0.01秒内,小球的位移为s0.01后小球的位置变为l0=l0+s用v0=v1表示在下一个0.01s 内,小球的初始速度为前一个0.01s 运动结束是的速度。
用MATLAB模拟弹簧摆运动
![用MATLAB模拟弹簧摆运动](https://img.taocdn.com/s3/m/12dde3ed524de518964b7d12.png)
用MATLAB模拟弹簧摆运动引言:物体在一定位置附近所作的往复运动称为机械振动。
这种振动现象在自然界是广泛存在的。
例如,摆的运动,一切发声体的运动,机器开动时各部分的微小颤动等都是机械振动。
在不同的振动现象中,最基本最简单的振动是简谐振动。
一切复杂的振动都可以分解为若干个简谐振动,弹簧振子和小角度单摆就是简单的简谐振动。
计算机模拟可以直观表现物理系统的运动状态,对于理解抽象的物理公式和研究系统的运动带来很多方便,所以在科研中有广泛的应用。
这里我们借助于MATLAB,在研究物理系统的运动的同时,也用动画模拟他们的运动。
由于这些运动模拟式采用真实的从求解运动方程得到的数据。
所以利用matlab的数据拟合可以画出精确的图形。
题目:设质量为m的摆锤挂在劲度系数为k,原长为l的轻弹簧上,弹簧的另一端悬挂于固定点O,系统静止自然下垂时弹簧长度为mgl lk=+,系统可在过O点的竖直平面内自由摆动,试研究摆锤的运动。
原理:系统自由度为2。
以O 为极点,竖直向下的O x 轴为极轴,建立极坐标系,如图所示,r 为质点m 到O 点距离,为O x 轴与弹簧间的夹角,则系统的拉格朗日函数为由拉格朗日方程可求出系统的运动微分方程为上式未作小摆角近似,因此可用以研究弹簧摆的大摆角运动,但是难以求出解析解。
由数值计算结果所画出弹簧摆的大摆角运动轨迹,可发现它的运动情况很复杂,不作数值计算是无法想象的。
令1y r =,2dr y dt =,3y θ=,4d y dt θ=,则成为源程序:function thbglobal L m k gtheta0=pi/10; %初始角度,可由读者设不同的值 m=1;k=80;g=9.8; L0=1;L=L0+m*g/k; %L0为弹簧原来长度,L 为弹簧静止时长度 [t,u1]=ode45(@thbfun,[0:0.005:15],[L0 0 theta0 0]); [y1,x1]=pol2cart(u1(:,3),u1(:,1)); y1 = -y1;%将极坐标换为直角坐标figureymax=max(abs(y1));axis([-1.2 1.2 -1.2*ymax 0.2]);%设置坐标范围axis offtitle('弹簧摆','fontsize',14)hold on;R =0.055 ; %设置弹簧半径yy = -L0 : 0.01 : 0;xx = R*sin(yy./L0*30*pi);%用正弦曲线表示弹簧[a,r] = cart2pol(xx,yy); %用坐标变换来画初始位置的弹簧a = a + theta0;[xx,yy] = pol2cart(a,r);%弹簧的数据line([-1 1],[0 0],'color','r','linewidth',2)%画横杆,球与弹簧ball = line(xx(1),yy(1),'color','r','marker','.','markersize',70,'erasemode' ,'xor');ball2 = line(xx(1),yy(1),'color',[0.5 0.51 0.6],'linestyle','-','linewidth',1.3,'erasemode','none');spring = line(xx,yy,'color','r','linewidth',2,'erasemode', 'xor'); pause(0.5)for i = 1 : length(t) %画出每一步的弹簧位置yy = -u1(i,1) : 0.01 : 0;xx = R*sin(yy./u1(i,1)*30*pi);[a,r] = cart2pol(xx,yy);a = a + u1(i,3);[xx,yy] = pol2cart(a,r);set(ball,'XData',x1(i),'YData',y1(i));set(ball2,'XData',x1(i),'YData',y1(i));set(spring,'XData',xx,'YData',yy);drawnow;endfunction F = thbfun(t,u)global L m k gF = [u(2);u(1)*u(4)^2 + g*cos(u(3)) - k/m*(u(1) - L + m*g/k);u(4);-2*u(2)*u(4)/u(1) - g*sin(u(3))/u(1)];程序说明:程序中解微分方程的过程比较简单,主要的技巧是在做模拟动画上。
北京科技大学_研究生_振动理论及应用_大作业vip
![北京科技大学_研究生_振动理论及应用_大作业vip](https://img.taocdn.com/s3/m/12b9333fb90d6c85ec3ac6b2.png)
振动理论及应用大作业题目:基于MATLAB的三自由度弹簧质量系统的振动分析姓名:专业:学号:一、题目:已知图示的三自由度弹簧质量系统,试编写MATLAB 程序:(1)求固有频率、主振型及正则振型 (2)对初始条件的自由响应;(3)对外激励的稳态响应。
参数选取:(1)各个质量值(2)各段刚度值(3)初始条件(4)简谐激励。
二、求解过程和MATLAB 程序取k1=k2=k3=k4=k ,m1 = m2=m ,m3=2m ;初始条件为x11,21x ∙==,简谐激励为1sin(),22sin(2),33sin(3)F t F t F t ===。
1、求解固有频率、主振型及正则振型建立名为work.m 的m 文件,并输入以下命令:k=1;m=1;%定义刚度矩阵和质量矩阵k1=k;k2=k;k3=k;k4=k;m1=m;m2=m;m3=2*m;k11=k1+k2;k12=-k2;k13=0;k21=-k2;k22=k2+k3;k23=-k3;k31=0;k32=-k3;k33=k3;K=[k11,k12,k13;k21,k22,k23;k31,k32,k33];M=[m1,0,0;0,m2,0;0,0,m3];%求特征值和特征向量R=inv(M)*K;D1=eig(R);[p2,d]=sort(D1);[V,Dm]=eig(R);%固有频率for i=1:3p(i,1)=sqrt(p2(i,1));end%求主振型和正则振型for i=1:3for j=1:3A1(i,j)=V(i,d(j))/V(1,d(j));endendAp=A1;Mp=Ap'*M*Ap;Kp=Ap'*K*Ap;for i=1:3AN(:,i)=Ap(:,i)/sqrt(Mp(i,i));endMN=AN'*M*AN;KN=AN'*K*AN;pApAN运行得到固有频率p,主振型矩阵Ap,正则振型矩阵AN如下:p =0.35601.12811.7609Ap =1.0000 1.0000 1.00001.8733 0.7275 -1.10072.5092 -0.4708 0.2116AN =0.2418 0.7120 0.65920.4530 0.5180 -0.72560.6068 -0.3352 0.13952、求解对初始条件的自由响应(1)建立函数文件FunFree.m,并输入如下命令:function dy=FunFree(t,y)k=1;m=1;k1=k;k2=k;k3=k;k4=k;m1=m;m2=m;m3=2*m;k11=k1+k2;k12=-k2;k13=0;k21=-k2;k22=k2+k3;k23=-k3;k31=0;k32=-k3;k33=k3+k4;dy=zeros(6,1);dy(1)=y(4);dy(2)=y(5);dy(3)=y(6);dy(4)=-1/m1*(k11*y(1)+k12*y(2)+k13*y(3));dy(5)=-1/m2*(k21*y(1)+k22*y(2)+k23*y(3));dy(6)=-1/m3*(k31*y(1)+k32*y(2)+k33*y(3));(2)建立名为MainFree.m的m文件,并输入如下命令:t=[0,50];y0=[1;0;0;0;1;0];[T,X]=ode45(@FunFree,t,y0);figure;subplot(3,1,1);plot(T,X(:,1),'r-');subplot(3,1,2);plot(T,X(:,2),'b-');subplot(3,1,3);plot(T,X(:,3),'k-');运行得对初始条件的自由响应如下:3、求解对外激励的稳态响应建立函数文件Forced.m,并输入如下命令:k=1;m=1;w=1;k1=k;k2=k;k3=k;k4=k;m1=m;m2=m;m3=2*m;k11=k1+k2;k12=-k2;k13=0;k21=-k2;k22=k2+k3;k23=-k3;k31=0;k32=-k3;k33=k3+k4;K=[k11,k12,k13;k21,k22,k23;k31,k32,k33];M=[m1,0,0;0,m2,0;0,0,m3];R=inv(M)*K;D1=eig(R);[p2,d]=sort(D1);[V,Dm]=eig(R);for i=1:3p(i,1)=sqrt(p2(i,1));endfor i=1:3for j=1:3A1(i,j)=V(i,d(j))/V(1,d(j));endendAp=A1;Mp=Ap'*M*Ap;Kp=Ap'*K*Ap;for i=1:3AN(:,i)=Ap(:,i)/sqrt(Mp(i,i)); endMN=AN'*M*AN;KN=AN'*K*AN;F1=[1;0;0];F2=[0;2;0];F3=[0;0;3];QN1=AN'*F1*sin(w*t);QN2=AN'*F2*sin(2*w*t);QN3=AN'*F3*sin(3*w*t);b1=[1/(p2(1,1)-w^2),0,0;0,1/(p2(2,1)-w^2),0;0,0,1/(p2(3,1)-w^2)];b2=[1/(p2(1,1)-(2*w)^2),0,0;0,1/(p2(2,1)-(2*w)^2),0;0,0,1/(p2(3,1)-(2*w)^2)];b3=[1/(p2(1,1)-(3*w)^2),0,0;0,1/(p2(2,1)-(3*w)^2),0;0,0,1/(p2(3,1)-(3*w)^2)];XN1=b1*QN1;XN2=b2*QN2;XN3=b3*QN3;T=20;t=1:0.1:T;X=AN*XN1+AN*XN2+AN*XN3;figure;subplot(3,1,1);plot(t,X(1,:),'r');subplot(3,1,2);plot(t,X(2,:),'b');subplot(3,1,3);plot(t,X(3,:),'k');运行得对外激励的稳态响应如下:。
Matlab振动程序-代码作业
![Matlab振动程序-代码作业](https://img.taocdn.com/s3/m/2fb4886067ec102de3bd893b.png)
一、课题任务要求随着机械工业不断向自动化、高精度、智能化等方向的发展,在机械设备运行及生产过程中进行参量测试、分析与诊断等处理过程已成为必要环节,许多信号处理方法如时域统计分析、相关分析、相干分析、频谱分析等已经被广泛被应用与机械工程测试领域。
本文为机械测试信号的时域和频域分析,其中时域分析包括对信号最大值、最小值、中值、方差的分析,频域分析包括FFT分析、频谱分析、倒谱分析。
在进行上述分析之前先要对振动信号进行拟合。
机械振动分为确定性振动和随机振动,确定性振动又分为周期振动和非周期振动,周期振动又进一步分为简谐振动和复杂的周期振动。
所以可以根据上述的分类来拟合振动信号。
在设计信号的处理程序时,用MATLAB中的相关函数来对所拟合的振动信号进行时域分析和频域分析,并对绘出的频谱图进行说明。
二、技术路线对机械振动信号的时域和频域采集,根据所拟合的振动信号,选取所需要的时域性能指标和频域分析的性能指标对振动信号进行分析。
其中时域分析包括对信号最大值、最小值、中值、方差的分析,频域分析包括FFT分析、频谱分析、倒谱分析。
现构造一个振动信号(在该程序中以两个衰减振动分量和一个随机数rand 之和来拟合振动信号),再利用MATLAB 中的函数mean ()、min ()、max ()、std ()对离散序列中的平均值、最大值、最小值、标准差等时域性能进行分析,通过调用函数fft (y );psd (y );rcep (y )对该振动信号进行频域内的性能分析。
在设计过程中的理论知识有离散傅立叶变换(DFT )、功率谱的概念和意义以及倒谱的概念和意义。
①DFT 的定义和意义:DFT 的定义式为:DFT 的意义:DFT 的意义在于它表示信号中的各个频率的分量的振动幅值的大小,亦即该分量对于振动信号影响的大小。
通过DFT 的快速算法FFT 可以很方便的将振动信号的各个分量的幅值比重计算出来。
即可以把信号的主频分量提取出来。
MATLAB 单质点体系受简谐激励下的振动
![MATLAB 单质点体系受简谐激励下的振动](https://img.taocdn.com/s3/m/07b86019f18583d049645992.png)
for i=1:10 [Xr(i),Xz(i)]=max(y(2900+100*i:2900+100*(i+1))); Num(i)=2899+100*i+Xz(i); end for i=2:9 tt(i-1)=Num(i+1)-Num(i); end ttt=td*mean(tt)
1.单自由度体系自由振动
小阻尼的解
y( t ) e
t
( y0cosd t
y0 y0
y(t ) Ae t sin( d t )
d 1
A
2
2
d
sind t )
t
y0 y0 y0 d
最后项是以 为频率的 常幅振动,称稳态振 动,初始条件无关。
温州大学本科生课程――《工程中的数值计算》
2.单自由度体系受迫振动
其中
A
y0
2
y0 y0 d
2
d y0 tan y0 y0
由初始条件确定
温州大学本科生课程――《工程中的数值计算》
可以与考虑阻尼的情况加以对比,以便更好地 了解阻尼的作用。
温州大学本科生课程――《工程中的数值计算》
1.单自由度体系自由振动 y(t ) A0sin( t )
A0 y0 y0
2 2
arctan y 0
振动将以一个 连续地定常幅度振动。
2
d arctan y y 0 0
温州大学本科生课程――《工程中的数值计算》
2.单自由度体系受迫振动
适合用matlab解决的经典物理例题
![适合用matlab解决的经典物理例题](https://img.taocdn.com/s3/m/3615503a1611cc7931b765ce0508763231127417.png)
适合用Matlab解决的经典物理例题在物理学领域,经典物理例题一直是学习和研究的重要内容。
而Matlab作为一种强大的数学软件,非常适合解决各种物理问题。
本文将从力学、电磁学和热力学等多个方面,选取一些经典的物理例题,通过Matlab进行分析和求解,展示Matlab在解决物理问题时的强大用途。
1. 简谐振动问题简谐振动是物理学中一个重要的模型,涉及到弹簧振子、单摆等问题。
通过Matlab可以很方便地求解简谐振动的运动规律。
对于弹簧振子的运动方程,可以通过Matlab进行数值模拟,得到振动的周期、频率、位移等参数,从而更好地理解简谐振动的特性。
2. 电场问题在电磁学中,电场是一个重要的研究对象。
通过Matlab可以很容易地分析不同形状的电荷分布所产生的电场分布。
可以通过Matlab计算出点电荷、均匀带电细棒等情况下的电场分布,并绘制出电场线图,直观地展现电场的分布规律。
这样的分析对于理解电场的性质和相互作用具有重要意义。
3. 热传导问题热传导是热力学研究的一个重要方面,涉及到导热方程的求解和热量分布的分析。
通过Matlab可以对不同材料和形状的热传导问题进行数值模拟和求解。
可以通过Matlab计算出棒状材料中的温度分布随时间的演化,从而得到材料的热传导性能。
这样的分析对于工程实践中的热设计和材料选型具有重要指导意义。
4. 万有引力问题在力学中,万有引力是一个经典的例题,涉及到行星轨道、卫星运动等问题。
通过Matlab可以很方便地进行万有引力场下的物体运动模拟。
可以通过Matlab计算地球和月球的引力作用下的月球轨道,从而揭示天体运动的规律和特性。
这样的模拟对于探索宇宙中天体运动规律具有重要帮助。
总结回顾:通过以上例题的分析,我们不仅了解了Matlab在经典物理例题中的应用,也可以发现Matlab在解决物理问题时的便捷和高效。
当然,实际物理问题可能具有更多的复杂性和多样性,需要结合理论分析和实验数据进行综合研究。
MATLAB计算方法和技巧6_2阻尼振动
![MATLAB计算方法和技巧6_2阻尼振动](https://img.taocdn.com/s3/m/2321aca4960590c69ec37620.png)
弹簧振子的阻尼振动[问题]一弹簧振子的质量为m ,倔强系数为k 。
振子还受到与速度大小成正比、方向相反的阻力,比例系数为γ。
当振子从静止开始运动时,初位移为A 。
物体的运动规律是什么?不同的阻尼下的运动曲线和速度曲线有什么特点?[数学模型]根据牛顿运动定律,物体运动的微分方程为22d d d d x x m kx t t γ=--,(6.2.1)取k /m =ω02,γ/m =2β,ω0就是无阻尼时物体的固有角频率,β是阻尼因子。
物体的运动方程可表示为2202d d 20d d x x x t tβω++=。
(6.2.2)设微分方程的解为x =e rt ,代入上式可得特征方程r 2-2βr +ω02=0。
(6.2.3)特征方程的解为r β=-±,(6.2.4)设α=,α可以是实数和零以及虚数,则r 1=-β+α,r 2=-β–α,r 1和r 2可以是实数或复数。
微分方程的解为121212e e e (e e )r t r t t t t x C C C C βαα--=+=+,(6.2.5)其中C 1和C 2是由初始条件决定的常数。
物体的速度为12112212d e e e [()e ()e ]d r t r t t t t x v C r C r C C tβααβαβα--==+=-++--。
(6.2.6)当t =0时,x =A ,v =0,因此可得A =C 1+C 2,0=C 1(-β+α)+C 2(-β-α),(6.2.7)如果β≠ω0,即α≠0,解得两个常数分别为12C A αβα+=,22C A αβα-=。
因此物体的位移为e [()e ()e ]2t t t A x βαααβαβα--=++-。
(6.2.8)[讨论]①当β>ω0时,即α>0,上式就是过阻尼的情况。
②当β→ω0时,即α→0,不论用罗必塔法则还是用公式e αt →1+αt 和e -αt →1-αt ,都可得00(1)e t x A t ωω-=+。
MATLAB在分析物体振动方面的应用
![MATLAB在分析物体振动方面的应用](https://img.taocdn.com/s3/m/7dcc5303cc1755270722083c.png)
《MATLAB语言》课程论文MATLAB在分析物体振动方面的应用姓名:邢晓佳学号:12010245256专业:通信工程班级:2010级通信班指导老师:汤全武学院:物理电气信息学院完成日期:2011年12月10日MATLAB在分析物体振动方面的应用(邢晓佳 12010245256 2010级通信班)[摘要]运用MATLAB语言很容易的解决了物理中常见的物体振动方面的题目,通过用MATLAB 计算阻尼振动中的单摆,简谐运动,弹簧振子的问题,更加鲜明的显示出了MATLAB的强大功能,实验结果表明这一方法具有操作简单明了!运算速度快,计算误差可控制等优点。
形象直观的显示图形和结论,利于研究和学习。
[关键词MATLAB 计算振动李萨如图简谐运动一、问题的提出振动是物体的一种很普通的运动形式,所谓机械振动是物体在一定位置附近所作的周期性往返运动。
例如,在心脏的跳动、钟摆的摆动、活塞的往复运动、固体原子的振动等等。
物体振动这样一个看似简单但又包含着很多计算的运动中,在人为的计算是很难精确的实现,而通过MATLAB可以处理诸多科学中的许多问题,利用它来研究物理学中的机械振动,不仅特别还特别有效。
这种运动都是在某一数值附近作往复的周期性运动,而在我们所学过的知识中,我们仅仅能解决的只是一些非常理想的振动—无阻尼振动,在处理这些问题时,遇到的问题都是容易解决的,不需要很复杂的变换,以及涉及一些特殊角度问题,以及在绘制振动图形时也会存在着一定的复杂性和难度,这些问题在MATLAB中都可以很容易解决。
下面就来简单介绍一下MATLAB在物体振动方面的具体应用。
MATLAB语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。
,MATLAB语言是美国Math Works 公司开发的计算机软件,经过多年的发展与完善。
现已成为国际上最流行的科学与工程计算的软件工具。
它集数值分析、矩阵运算、信号处理和图像处理等功能于一体,提供了一个方便的、界面友好的用户环境,而且还具有可扩展性特征。
毕业设计(论文)基于matlab_simulink的机械振动仿真研究
![毕业设计(论文)基于matlab_simulink的机械振动仿真研究](https://img.taocdn.com/s3/m/2d4703f1cc175527062208a9.png)
目 录1引言——机械振动的仿真原理 (5)1.1 Matlab Simulink 功能简述 (5)1.2机械振动的物理模型 (5)1.2.1简谐振动的物理模型 (5)1.2.2阻尼振动的物理模型 (6)1.2.3受迫振动的物理模型 (6)1.3 Matlab Simulink 仿真原理简述 (8)2简谐振动方程的解及其模拟仿真 (9)2.1简谐振动方程的求解 (9)2.2简谐振动模型的仿真研究 (9)2.2.1基本模型的建立 (9)2.2.2 速度、加速度的监测 (11)2.2.3 动能、势能、机械能监测 (12)2.3简谐振动的图像分析 (13)3阻尼振动方程的求解和仿真模拟 (15)3.1弹簧振子做阻尼振动方程的求解 (15)3.2弹簧振子做阻尼振动的模拟仿真研究 (15)3.3阻尼振动的图像分析 (18)4受迫振动的方程的求解和仿真模拟 (20)4.1弹簧振子做受迫振动方程的求解 (20)4.2弹簧振子做受迫振动的仿真模拟研究 (21)4.2.1策动力频率0ωω<时弹簧振子的受迫振动仿真模拟 (21)4.2.2策动力频率0ωω>时弹簧振子受迫振动的仿真模拟 (24)4.2.3策动力频率0ωω=时弹簧振子的仿真模拟 (26)4.3受迫振动的图像分析 (27)5几点补充说明与仿真模拟中问题分析 (29)5.1物理振动模型建立的补充说明 (29)5.2方程求解中的补充说明 (29)5.3仿真模拟中的问题分析 (29)6结语 (31)参考文献 (32)附录 (33)致谢 (34)摘要机械振动主要有简谐振动,阻尼振动,受迫振动三种。
对三种振动建立模型,列出振动方程,再对三种振动给定初始条件,就可以利用Matlab Simulink功能对三种振动进行仿真模拟,得出振动的位移,速度,加速度,动能,势能,机械能随时间的变化关系图像。
另外,我们对振动方程求解,得出振子位移关于时间的函数,再分别对其求一阶、二阶导数,就可以得出速度、加速度函数,再经过简单运算就可以得到动能、势能、机械能函数。
利用Matlab进行弹簧振子运动
![利用Matlab进行弹簧振子运动](https://img.taocdn.com/s3/m/681a03fef021dd36a32d7375a417866fb84ac0d1.png)
利用Matlab进行弹簧振子运动弹簧振子是一个基本的物理模型,用于研究简谐振动的规律。
在Matlab中,我们可以使用数值方法来模拟弹簧振子的运动。
以下是一个简单的例子,说明如何使用Matlab进行弹簧振子的运动模拟。
首先,我们需要定义一些基本参数。
在这个例子中,我们将使用以下参数:•质量m = 1•弹簧常数k = 1•初始位移x0 = 0.1•初始速度v0 = 0•阻尼系数c = 0.1然后,我们需要定义运动方程。
弹簧振子的运动方程通常为:mx''(t) + c x'(t) + k x(t) = 0其中,x(t)表示振子在时刻t的位置,x'(t)表示振子在时刻t的速度,x''(t)表示振子在时刻t的加速度。
我们可以使用Matlab的函数功能来定义这个方程,然后使用初始条件来求解它。
我们可以使用Matlab的ode45函数,它是一个常用的求解常微分方程的函数。
function dydt = spring_oscillator(t, y)m = 1; % massk = 1; % spring constantc = 0.1; % damping coefficient% extract first column of y as x and second column as v x = y(1);v = y(2);% calculate accelerationa = -k/m * x - c/m * v;% calculate velocity and position derivativesdydt = [v; a];end% initial conditionsx0 = 0.1; % initial displacementv0 = 0; % initial velocityy0 = [x0; v0];% time span and step sizetspan = [0, 10]; % time span from 0 to 10 secondsdt = 0.01; % time step size of 0.01 seconds% solve the differential equation with initial conditions and time span[t, y] = ode45(@spring_oscillator, tspan, y0, [], [], []);% plot the resultsfigure; % create a new figure windowplot(t, y(:,1)); % plot the displacement as a function of timexlabel('Time (s)'); % x-axis labelylabel('Displacement (m)'); % y-axis labeltitle('Spring Oscillator Simulation'); % figure title grid on; % show grid on the plot这个代码会绘制出弹簧振子的位移随时间变化的图像。
利用Matlab进行弹簧振子运动状态的仿真(打印版)
![利用Matlab进行弹簧振子运动状态的仿真(打印版)](https://img.taocdn.com/s3/m/e2a317c548649b6648d7c1c708a1284ac850056a.png)
利用Matlab进行弹簧振子运动状态的仿真汪家培(安庆师范学院物理与电气工程学院安徽安庆246001)指导教师:张杰摘要:简谐振动是最基本的振动,弹簧振子是最典型的简谐振动。
本文从牛顿第二定律出发推导了弹簧振子的运动学方程,从而进一步给出由两相同轻质弹簧和一个质量为m的小球组成的非线性弹簧振子系统的运动学方程,利用Matlab建立了该系统的仿真模型,研究了在不同条件下系统的的运动图像、能量图和相图,详细分析了此非线性系统的特点。
关键词:弹簧振子,能量图,相图,运动图,计算机仿真1. 引言普通物理力学中[1-2]讲振动时,常以水平弹簧振子和单摆为例作为问题的切入点,它们只是非线性振动的近似(胡克定律有一定的适用范围)。
所谓非线性振动是指恢复力与位移不成线性比例或阻尼力与速度不成线性比例的系统的振动。
一般说,线性振动只适用于小运动范围,超过此范围,就变成非线性振动。
非线性系统的运动微分方程是非线性的,不能用叠加原理求解。
方程中不显含时间的非线性系统称为非线性自治系统;显含时间的称为非线性非自治系统。
保守非线性自治系统的自由振动仍是周期性的,但其周期依赖于振幅。
对于渐硬弹簧,振幅越大,周期越短;对于渐软弹簧,振幅越大,周期越长。
非保守非线性自治系统具有非线性阻尼,阻尼系数随运动而变化,因而有可能在某个中间振幅下等效阻尼为零,从而能把外界非振动性能量转变为振动激励而建立起稳定的自激振动(简称自振)。
弦乐器和钟表是常见的自振系统。
周期地改变系统的某个参量而激起系统的大幅振动称参变激发非线性问题是当前物理研究中的热门问题,非线性光学、非线性声学等已成为专门的学科分支。
因此在普通物理力学教学中,适当的介绍一些非线性振动及处理方法,对学生后继课程的学习及今后的研究工作都是有益的。
本文用一个小球、两个弹簧设计了一个单自由度非线性振动装置,并用计算机数值计算出小球的运动图、能量图和相图,对非线性振动的特点进行了较为系统全面的分析。
第三章 MATLAB在力学中的应用
![第三章 MATLAB在力学中的应用](https://img.taocdn.com/s3/m/8e722922bcd126fff7050bf8.png)
3-3 机械振动物体在平衡位置附近的往返叫做振动或机械振动。
振动的传播称为波,机械振动的传播称为机械波。
振动和波动是涉及物理及众多领域的一种非常普遍而重要的运动形式,研究振动和波动的意义已远远超过了力学的范围。
本节利用MATLAB 来处理机械振动的一些问题。
3.3.1简谐振动质点在线性回复力作用下围绕平衡位置的运动称为简谐远动,它是最基本的振动。
下面,我们通过两个例子来讨论简谐运动的动力学和运动学特征。
(1) 弹簧振子系统的简谐运动·题目(ex3311)设弹簧阵子系统由质量为m 的滑块和劲度系数为k 的弹簧所组成已知t=0时,m 在A 处,即x 0=A ,并由静止开始释放。
试研究滑块的运动规律。
·解题分析以x 表示质点相对原点的位移,线性回复力f=-kx 。
由牛顿第二定律以及题设条件,可写出弹簧振子的振动微分防尘及初始条件为22t 0(0)(0)0d x k x dtm x A dx v dt=+====滑块速度分别为22dx v dy d x a dt==令2,k mω=用符号法求解上述微分方程,求出运动方程、速度和加速度,并绘制出,()x t v x a x ---相轨迹和曲线。
(2) 单摆·题目(ex3313)设单摆的摆长为l ,摆锤质量为,将摆锤拉开一角度θ,然后放开使其自由摆动。
在不计空气阻力的情况下,分小摆角和大摆角两种情况,讨论单摆的角位移θ随时间t 的变化规律。
·解题分析由牛顿第二定律,有222sin sin ,d g dtlθθωθω=-=-=其中,g 为重力加速度。
① 小角摆动假定角位移很小,sin θ≈θ,上式为220d g dtlθθ+=② 大角摆动222sin sin d g dtlθθωθ=-=-上式是非线性方程。
为了方便起见,将θ用y 来表示,上式又可以写为下列一阶微分方程组1221;sin()dy dy g y y dtdtl==-用MATLAB 编程解此方程组。
基于MATLAB GUI的耦合弹簧振子仿真实验设计
![基于MATLAB GUI的耦合弹簧振子仿真实验设计](https://img.taocdn.com/s3/m/7969b6525bcfa1c7aa00b52acfc789eb172d9e04.png)
第33卷第5期2020年10月Vol.33No.5Oct.2020大学物理实验PHYSICAL EXPERIMENT OF COLLEGE文章编号:1007-2934(2020)05-0103-06基于MATLAB GUI的耦合弹簧振子仿真实验设计赵炳炎,陈宗华,张文杰(玉林师范学院物理与电信工程学院,广西玉林537000)摘要:通过建立耦合弹簧振子的动力学方程,并利用有限差分法在MATLAB软件中编程求解,模拟出耦合弹簧振子的运动过程,利用GUI交互界面设计耦合弹簧振子仿真实验。
仿真实验可用来展示和探究大学物理中的简谐振动、振动的合成、阻尼振动、受迫振动和共振等多个内容。
关键词:MATLAB GUI;耦合弹簧振子;仿真实验中图分类号:O313.1文献标志码:A D0l:10.14139/22-1228.2020.05.024大学物理课程中,振动章节的内容主要有简谐振动、振动的合成、阻尼振动和受迫振动几个部分。
而目前为该章节开设的大学物理实验只有单摆和复摆,侧重的是利用简谐振动的周期公式来推导一些物理量[1,2]。
近年来,许多教师通过计算机软件和编程设计了一些虚拟仿真实验,不但提升了课堂理论学习的趣味性,也提升了学生对基本理论的理解,是传统实验教学的有效补充[3-7]。
今年由于疫情影响,本校的大学物理实验课程不能正常开展,为了部分弥补实验课的缺失,本校大学物理教研室针对振动这一章内容设计了耦合弹簧振子仿真实验。
该仿真实验不但可以方便教师在网络课堂教学中为学生演示各种实验过程和结果,而且该实验可以涵盖振动章节中简谐振动、振动的合成、阻尼振动、受迫振动以及共振等多个内容,教学效果好且效率高。
1耦合弹簧振子仿真实验的物理模型仿真实验的物理模型由两个质量分别为®和m2的质点和三根弹力系数分别为k1,k2,k3的轻质弹簧耦合构成,设定两端固定,如图1所示。
模型中的两个质点都受到弹簧弹力化和阻尼F b 作用,而受迫振动只考虑其中一个质点m1受周期性外力F d影响的情况。
弹簧摆matlab演示及源代码
![弹簧摆matlab演示及源代码](https://img.taocdn.com/s3/m/58d53d0010a6f524ccbf8552.png)
弹簧摆写出弹簧摆的运动微分方程,并用matlab 编写程序,演示弹簧摆的运动弹簧摆的运动微分方程可以通过拉格朗日函数法求得,对于弹簧单摆系统,在极坐标系中其拉格朗日函数为222211 ()cos ()22L T Vmg m r r mgr k r l kθθ=-=++--+ 其中,r θ为自由度,,,,m k g l 分别为摆球质量,弹簧刚度,重力加速度和摆初始长。
将拉格朗日函数带入到拉格朗日方程00d L L dL L dt θθ∂∂⎧-=⎪⎪∂∂⎨∂∂⎪-=⎪∂∂⎩得到系统的运动微分方程:sin ()02sin 0k mg r r g r l g k r rg θθθθθ⎧--+-+=⎪⎨⎪++=⎩ 对于这个非线性方程组,利用matlab 里面自带的ode45常微分方程组求解函数,对上面的方程组进行数值求解,得到了摆球的运动轨迹,如下图所示0246810121416弹簧摆内共振动画模拟及自由度随时间的变化曲线时间t 单位秒对应的自由度图中给出了弹簧摆运动过程中自由度,r 随时间的变化关系,下面将给出这个程序的源代码,演示程序时,首先停顿三秒,然后开始摆动,图形上方的弹簧摆的示意图开始摆动并描绘出轨迹,同时图形下方自由度随时间变化关系也会动态的给出,从这个过程中可以明显看出弹簧摆的内共振现象。
程序源码:function springmasstheta0=1.5*pi/10;%单摆的初始角度m=20/9.8;k=80;g=9.8;%弹簧质量的参数保证弹簧固有频率是单摆固有频率的2倍L0=1;L=L0+m*g/k;%L0为弹簧原来长度,L为弹簧静止时长度[t,u1]=ode45(@weifen,[0:0.05:15],[L00theta00],[],L,k,m,g);[y1,x1]=pol2cart(u1(:,3),u1(:,1));y1=-y1;%将极坐标换为直角坐标axis([016-1.54]);%text(0,u1(1,1),'摆长l');%text(0,u1(1,3),'摆角\theta');%axis offtitle('弹簧摆内共振动画模拟及自由度随时间的变化曲线','fontsize',15)xlabel('时间t单位秒');ylabel('对应的自由度');hold on;R=0.055;%设置弹簧半径yy=-L0:0.01:0;xx=R*sin(yy./L0*30*pi);%用正弦曲线表示弹簧[a,r]=cart2pol(xx,yy);%用坐标变换来画初始位置的弹簧a=a+theta0;[xx,yy]=pol2cart(a,r);%弹簧的数据xx=2*xx+7;yy=yy+3.5;%xx(1)=x(1)+15;line([68],[3.53.5],'color','k','linewidth',4)%弹簧单摆系统初始状态for i=1:9line([6+0.2*i6+0.2*i+0.2],[3.53.7],'color','k','linewidth',1);endline([77],[3.52.3],'color','k','linestyle','-.','linewidth',1)bigball=line(xx(1),yy(1),'color','b','marker','.',...'markersize',30,'erasemode','xor');%球ball2=line(xx(1),yy(1),'color','g','linestyle','-',...'linewidth',1.3,'erasemode','none');%轨线spring=line(xx,yy,'color','k','linewidth',2,'erasemode','xor');%弹簧linex=line(t(1),u1(1,1),'color','r','marker','.',...'markersize',10,'erasemode','none');%摆长曲线初始liney=line(t(1),u1(1,3),'color','b','marker','.',...'markersize',10,'erasemode','none');%摆角曲线初始%以下为标注text(6,-0.75,'\uparrow');text(4,-1,'摆角随时间变化曲线');text(9.0,1.9,'摆长随时间变化曲线');text(11.4,1.70,'\downarrow');%在初始状态下停顿三秒pause(2)%以下程序开始实现动画,在弹簧摆开始振动时画出相应的变化曲线for i=2:length(t)yy=-u1(i,1):0.01:0;%弹簧xx=R*sin(yy./u1(i,1)*30*pi);%xx(i)=x(i)+15;[a,r]=cart2pol(xx,yy);a=a+u1(i,3);%set(linex,'XData',t(i),'YData',u1(i,1));%%摆长初始%set(ball2,'XData',2*x1(i)+7,'YData',y1(i)+3.5);%轨线%set(liney,'XData',t(i),'YData',u1(i,3));%摆角初始plot([t(i-1),t(i)],[u1((i-1),1),u1(i,1)],'xr');plot([t(i-1),t(i)],[u1((i-1),3),u1(i,3)],'*b');%legend('摆长曲线','摆角曲线')[xx,yy]=pol2cart(a,r);xx=2*xx+7;yy=yy+3.5;set(bigball,'XData',2*x1(i)+7,'YData',y1(i)+3.5);%球%plot(2*x1(i)+7,y1(i)+3.5,'b');%球%set(ball2,'XData',2*x1(i)+7,'YData',y1(i)+3.5);%轨线plot([2*x1(i-1)+7,2*x1(i)+7],[y1(i-1)+3.5,y1(i)+3.5],'-g');%轨线set(spring,'XData',xx,'YData',yy);%弹簧drawnow;end%以下为弹簧摆的运动微分方程function value=weifen(t,u,l,k,m,g)value=[u(2);u(1.)*u(4).^2+g*cos(u(3))-k/m*(u(1)-l+m*g/k);u(4);-2.*u(2).*u(4)./u(1)-g*sin(u(3))./u(1)];。
matlab 简谐振动 程序
![matlab 简谐振动 程序](https://img.taocdn.com/s3/m/0137594502d8ce2f0066f5335a8102d277a26154.png)
matlab 简谐振动程序
简谐振动是物理学中重要的概念,可以用来描述许多物理系统的运动,比如弹簧振子和摆动等。
在MATLAB中,我们可以编写程序来模拟简谐振动的运动。
以下是一个简单的MATLAB程序,用来模拟简谐振动的运动:
matlab.
% 定义参数。
m = 1; % 质量。
k = 1; % 弹簧常数。
x0 = 1; % 初始位移。
v0 = 0; % 初始速度。
omega = sqrt(k/m); % 角频率。
% 定义时间变量。
t = 0:0.1:10; % 时间范围。
% 计算位移。
x = x0 cos(omega t) + (v0/omega) sin(omega t);
% 绘制位移-时间图。
plot(t, x);
xlabel('时间');
ylabel('位移');
title('简谐振动的位移-时间图');
在这个程序中,我们首先定义了简谐振动的参数,包括质量m、弹簧常数k、初始位移x0和初始速度v0。
然后我们计算了在给定时
间范围内的位移x,并绘制了位移-时间图。
当你运行这个程序时,你会得到一个简谐振动的位移-时间图,它展示了振动的周期性运动。
你可以根据自己的需要修改参数和时间范围,来观察不同条件下简谐振动的运动情况。
除了这个简单的例子,你还可以编写更复杂的程序来模拟不同类型的简谐振动,比如受阻尼力和外力作用下的简谐振动。
希望这个简单的程序可以帮助你开始理解如何在MATLAB中模拟简谐振动。
Matlab技术在机械振动分析中的应用案例
![Matlab技术在机械振动分析中的应用案例](https://img.taocdn.com/s3/m/4af461a9dbef5ef7ba0d4a7302768e9951e76e10.png)
Matlab技术在机械振动分析中的应用案例引言:机械振动作为机械工程领域中非常重要的研究方向,对于机械设备性能的评估和故障诊断具有关键作用。
随着计算机技术的飞速发展,Matlab作为一种功能强大的数学计算软件,被广泛应用于机械振动领域。
本文将通过介绍一些典型的应用案例,展示Matlab在机械振动分析中的优越性和实用性。
一、弹簧振动分析弹簧振动是机械系统中常见的一种振动形式。
通过Matlab可以方便地建立弹簧振动的数学模型,进行分析和仿真。
以弹簧单自由度系统为例,我们可以通过编写Matlab程序来求解该系统的振动特性,比如自然频率、阻尼比等参数。
此外,Matlab还提供了丰富的绘图功能,可以用来绘制系统的振动曲线和频谱图,进一步分析和评估系统的性能。
二、子午线摆振动分析子午线摆是一种简单而重要的振动系统,在物理实验教学中被广泛应用。
利用Matlab可以实现子午线摆的运动仿真和数据分析。
通过建立子午线摆的运动微分方程,我们可以利用Matlab的数值求解功能来模拟摆的运动过程,并绘制出摆角随时间的变化曲线。
此外,Matlab还可以计算出摆的周期和频率,提供了便捷的数据处理方法,方便进行实验数据的比对和验证。
三、转子系统振动分析转子系统的振动分析是机械工程中一项关键任务。
Matlab提供了大量的信号处理和频谱分析工具,可以用来对转子系统的动态性能进行评估和诊断。
首先,我们可以通过Matlab对转子系统的模态进行分析,求解出转子的模态频率和振型。
接着,利用Matlab的FFT函数进行频谱分析,可以得到转子系统的频谱图,并进一步分析出存在的谐波成分。
通过与参考频谱进行比较,我们可以判断转子系统是否存在异常振动,进而评估其工作状态。
四、车辆悬架系统振动分析车辆悬架系统的振动特性直接影响着驾驶员的驾驶感受和乘坐舒适度。
Matlab在车辆悬架系统的振动分析中发挥着重要作用。
通过建立车辆悬架系统的动力学模型,并利用Matlab进行模拟和仿真,我们可以得到车辆在不同路况下的振动响应。
基于simulink的Matlab仿真作业(电气工程专业)4
![基于simulink的Matlab仿真作业(电气工程专业)4](https://img.taocdn.com/s3/m/b6701a2b2af90242a895e580.png)
简谐振动Simulink 建模与仿真张三(陕西 西安 西安科技大学 710054)摘要:本文利用Matlab 软件中的simulink 组件对机械振动进行了仿真计算,得到了机械振动中最常见的一种振动简谐振动的波形图,经过分析发现图像与理论是符合的。
我们得出振子的机械能为一定值。
从能量角度分析,做简谐振动的振子只受弹力作用,系统机械能守恒。
关键词:简谐振动;振动波形;机械能守恒0引言物理学中的机械振动主要分为简谐振动、阻尼振动、受迫振动三种。
下面我们根据这三种类型的振动中的简谐振动建立物理模型来分别研究。
1简谐振动的物理模型图1 弹簧振子做简谐振动物理实验模型如上图所示,弹簧振子在O 附近做简谐振动。
已知弹簧振子质量为m ,所受合力为F ,弹簧劲度系数为k ,则有:F kx =- 。
又由牛顿第二定律有:(1)于是可以得到: 220d x k x dt m+= (2) 令m k =2ω,则可得: 2220d x x dt ω+= (3) O A A -x F22d x F ma m dt ==方程(3)的解x 即为弹簧振子在时刻t 时的振动位移,一阶导数x即为弹簧振子在时刻t 时振动速度,其二阶导数x即为弹簧振子在时刻t 时的加速度。
2简谐振动的数学模型这里,我们设系统初始条件为0t =s 时,04m x =,00m/s v =。
通过高等数学方法解这个齐次微分方程可得:221212cos sin cos()cos()x C t C t C C t A t ωωωϕωϕ=+=++=+ (12) 式中222121tan ,C A C C C ϕ=-=+。
则速度表达式为:sin()v x A t ωωϕ==-+ ,将初始条件代入(12)式,可得: 4cos()x t ωϕ=+(13) 这就是满足初始条件的简谐振动方程的解。
由(13)式我们可以得出弹簧振子位移随时间的变化情况。
振子周期为2T πω=。
0s t =时,振子位移正向最大位移出,即图1中的A 位置,此时振子速度为0,加速度最大;经4T ,振子向负方向运动到平衡位置,此时振子速度最大,加速度为0;再经4T ,振子继续向负方向运动到负的最大位移处,此时速度为0,加速度最大;再经过4T ,振子向正向运动到平衡位置,此时速度最大,加速度为0;最后经过4T ,振子回到初始位置,即正的最大位移处,完成一个周期的振动。
基于Matlab的弹簧振子简谐振动研究
![基于Matlab的弹簧振子简谐振动研究](https://img.taocdn.com/s3/m/2df8cf39fbd6195f312b3169a45177232f60e465.png)
基于Matlab的弹簧振子简谐振动研究
肖波齐
【期刊名称】《陕西科技大学学报(自然科学版)》
【年(卷),期】2009(027)006
【摘要】研究了弹簧振子的简谐振动并用Matlab处理实验数据,结果表明Matlab语言在曲线拟合方面有很大的优势,通过曲线拟合可以得到一条符合实验要求的光滑曲线,使得结果简便、直观,并精确验证了振子振动周期与振子质量呈线性关系,最后讨论并总结了简谐振动的特征.
【总页数】5页(P116-120)
【作者】肖波齐
【作者单位】三明学院物理与机电工程系,福建,三明,365004
【正文语种】中文
【中图分类】O32
【相关文献】
1.气垫弹簧振子简谐振动正弦曲线合成演绘仪 [J], 杜倩;代伟;王漫;蒋金华;彭钟樊
2.对弹簧振子简谐振动实验数据处理的一点改进 [J], 夏莉艳;周恒为
3.弹簧振子简谐振动理论分析和数值模拟 [J], 陈欢
4.基于弹簧振子的简谐振动图像演示实验的改进设计与制作 [J], 姜先策; 孙双双
5.利用弹簧振子在竖直方向做简谐振动实验测量重力加速度 [J], 官邦贵;高海涛;左绪忠;郭明磊;董杰
因版权原因,仅展示原文概要,查看原文内容请购买。
弹簧振子系统的简谐振动研究 matlab课程作业
![弹簧振子系统的简谐振动研究 matlab课程作业](https://img.taocdn.com/s3/m/1e99cbe34693daef5ef73d46.png)
《数学实验》报告实验名称弹簧振子系统的简谐振动研究___ 学院专业班级姓名学号2012年6月一、【实验目的】1.熟悉MATLAB各个函数命令及使用方法.2.熟悉MATLAB编程原则和子函数应用的方法.3.进行MATLAB的综合应用以提高使用技巧.4.对于弹簧振子系统的简谐振动进行编程以更好的理解其定义并熟悉MATLAB.二、【实验任务】设弹簧振子系统由质量为m的滑块和劲度系数为k的弹簧所组成。
已知t=0时,m在A处,即x0=A,并由静止开始释放。
试研究滑块的运动规律。
三、【问题分析】以x表示质点相对于原点的位移,线性回复力为f=-kx。
由牛顿第二定律以及题设条件,可写出弹簧振子的振动微分方程及其初始条件为d^2x/dt^2+kx/m=0x(0)=Av(0)=dx/dt|(t=0)=0滑块的速度和加速度分别为V=dx/dt a=d^2x/dt^2令ω*ω=k/m,用符号法求解上诉微分方程,求出运动方程、速度和加速度,并绘制出x-t,v-t和a-x曲线。
四、【实验程序】clcx=dsolve('D2x=-w^2*x','Dx(0)=0,x(0)=A','t')v=diff(x,'t'),a=diff(x,'t',2),23k=400;m=2;w=sqrt(k/m); A=0.1;t=0:0.01:0.9;x=eval(x);v=eval(v);a=eval(a); subplot(3,1,1),plot(t,x); title('x-t 关系图 ') subplot(3,1,2);plot(x,v); title('v-x 关系图')subplot(3,1,3);plot(x,a) title('a-x 关系图')一、 【实验结果】 x =(A*exp(i*t*w))/2 + A/(2*exp(i*t*w)) v =(A*i*w*exp(i*t*w))/2 - (A*i*w)/(2*exp(i*t*w)) a =- (A*w^2*exp(-t*w*i))/2 - (A*w^2*exp(t*w*i))/200.10.20.30.40.50.60.70.80.9-0.100.1x-t 关系图-0.1-0.08-0.06-0.04-0.0200.020.040.060.080.1-202v-x 关系图-0.1-0.08-0.06-0.04-0.0200.020.040.060.080.1-20020a-x 关系图如上所得解析结果和图像,符合物理学相关理论,可知该问题的MATLAB解是正确的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数学实验》报告
实验名称弹簧振子系统的简谐振动研究___ 学院
专业班级
姓名
学号
2012年6月
一、【实验目的】
1.熟悉MATLAB各个函数命令及使用方法.
2.熟悉MATLAB编程原则和子函数应用的方法.
3.进行MATLAB的综合应用以提高使用技巧.
4.对于弹簧振子系统的简谐振动进行编程以更好的理解其定义并熟悉
MATLAB.
二、【实验任务】
设弹簧振子系统由质量为m的滑块和劲度系数为k的弹簧所组成。
已知t=0时,m在A处,即x0=A,并由静止开始释放。
试研究滑块的运动规律。
三、【问题分析】
以x表示质点相对于原点的位移,线性回复力为f=-kx。
由牛顿第二定律以及题设条件,可写出弹簧振子的振动微分方程及其初始条件为
d^2x/dt^2+kx/m=0
x(0)=A
v(0)=dx/dt|(t=0)=0
滑块的速度和加速度分别为
V=dx/dt a=d^2x/dt^2
令ω*ω=k/m,用符号法求解上诉微分方程,求出运动方程、速度和加速度,并绘制出x-t,v-t和a-x曲线。
四、【实验程序】
clc
x=dsolve('D2x=-w^2*x','Dx(0)=0,x(0)=A','t')
v=diff(x,'t'),a=diff(x,'t',2),
2
3
k=400;m=2;w=sqrt(k/m); A=0.1;t=0:0.01:0.9;
x=eval(x);v=eval(v);a=eval(a); subplot(3,1,1),plot(t,x); title('x-t 关系图 ') subplot(3,1,2);plot(x,v); title('v-x 关系图')
subplot(3,1,3);plot(x,a) title('a-x 关系图')
一、 【实验结果】 x =
(A*exp(i*t*w))/2 + A/(2*exp(i*t*w)) v =
(A*i*w*exp(i*t*w))/2 - (A*i*w)/(2*exp(i*t*w)) a =
- (A*w^2*exp(-t*w*i))/2 - (A*w^2*exp(t*w*i))/2
00.10.20.30.40.50.60.70.80.9
-0.10
0.1x-t 关系图
-0.1-0.08-0.06-0.04-0.0200.020.040.060.080.1
-20
2v-x 关系图
-0.1
-0.08-0.06-0.04-0.0200.02
0.040.060.080.1
-200
20a-x 关系图
如上所得解析结果和图像,符合物理学相关理论,可知该问题的MATLAB解是正确的。
二、【实验总结】
最终选择弹簧振子的简谐振动作为我们的课题,经过了慎重的考虑,在知道matlab有一项综合作业时,我们小组就在寻找课题了,我们发现matlab和科研结合的非常紧密,而对于我们来说,其在物理实验上的应用离我们更近一些,并且由于我们已经学过大学物理,对一些概念也有更好地的理解。
起初,我们是打算对薄膜干涉以及牛顿环等光学现象进行研究的,但我们意外的发现对于以上的光学现象,我们的编程能力不足以帮我们实现我们的想法,故而最终决定选择这一问题作为我们的课题。
在编写程序中,我们体会到了MATLAB的许多独特的地方,首先,对于数学公式及符号及其敏感,可以识别出许多的符号及公式。
其次,功能非常强大,可以求积分、画图等,使我们工作减少了很多。
最后,其编程语言非常简便,非常容易上手。
在编程过程中,我们对于问题本身也有极大争论,因为某些细节记不清楚所以只得回去查阅资料或者请教同学,这对于我们对物理知识的理解也是一个提高。
总之,我们在这次matlab综合实验中学到了很多。
三、【参考文献】
大学物理,张三慧,清华大学出版社
MATLAB与数学实验,刘蕴络、韩守梅等,机械工业出版社
4。