本示例通过以下方法探索阻尼谐振子的物理特性:
在没有驱动力的情况下求解运动方程,
调查患者,过度和严重阻尼
推导运动方程
求解运动方程(F=0)
欠阻尼情况( )
过阻尼情况( )
严重阻尼案例( )
结论
考虑一个强制谐波振荡器,下面所示的阻尼。模拟与振荡器移动的速度成比例的电阻力。
定义运动的方程
质量是多少
阻尼系数是阻尼系数
弹簧是恒定的吗
是一种驱动力
符号x(t)MCKF(t)等式=m*diff(x,t,t)+c*diff(x,t)+k*x==F
等式(t)=
使用重写等式 和 .
符号伽马射线omega_0.eq = subs(eq,[c k],[m * gamma,m * omega_0 ^ 2])
等式(t)=
划分质量 .现在我们以方便的形式进行了方程来分析。
eq =收集(eq,m)/ m
等式(t)=
用计算机解运动方程Dsolve.
在没有外力的情况下
.使用单位位移和零速度的初始条件。
电平=diff(x,t);cond=[x(0)==1,电平(0)==0];eq=subs(eq,F,0);sol=dsolve(eq,cond)
sol =
检查如何通过扩展它来简化解决方案。
sol =展开(sol)
sol =
请注意,每个术语都有一个系数
或
, 用搜集
收集这些术语
sol=收集(sol,exp(-gamma*t/2))
sol =
期限 出现在解决方案的各个部分中。通过引入阻尼比,以更简单的形式重写它 .
将ζ代入上述术语,得出:
符号泽塔;sol = subs(sol,...SQRT(Gamma ^ 2 - 4 * Omega_0 ^ 2),...2*omega_0*sqrt(zeta^2-1))
sol =
通过替换,进一步简化解决方案 依据 和 ,
sol=SUB(sol,伽马,2*zeta*omega_0)
sol =
我们已经衍生出用于阻尼谐振子的运动的一般解决方案,没有驱动力。接下来,我们将探索三种特殊情况的阻尼比例 这些情况称为
欠阻尼 ,
过阻尼 , 和
严重受潮 .
如果 那么 这完全是虚构的
solUnder=subs(sol、sqrt(zeta^2-1)、1i*sqrt(1-zeta^2))
索尔under=
请注意条款 在上面的等式中,回忆一下身份
以条件重写解决方案 .
solUnder=coefs(solUnder,zeta);solUnder=solUnder(1);c=exp(-omega_0*zeta*t);solUnder=c*重写(solUnder/c,“因为”)
索尔under=
solUnder(t,ω0,zeta)=solUnder
solUnder(t,ω0,zeta)=
系统的固有频率为 并以指数速率衰减 .
绘制解决方案Fplot.
作为一个函数
和
.
z=[0 1/4 1/2 3/4];w=1;T=4*pi;线型={'-',' - ',':K','-.'};fplot(@(t)solUnder(t,w,z(1)),[0t],线型{1});保持在;对于k=2:numel(z)fplot(@(t)solUnder(t,w,z(k)),[0t],线型{k});结束持有离开;网格在;xticks(T*linspace(0,1,5));xticklabel({'0',“\pi”,'2 \ pi','3 \ pi',“4\pi”});xlabel('t/\omega_0');伊莱贝尔(“振幅”);lgd=图例('0','1/4','1/2','3/4');标题(LGD,“\zeta”);标题('被拒绝');
如果 那么 是完全真实的,解决方案可以重写为
Solover = Sol.
索洛弗=
Solover = Coeffs(Solover,Zeta);Solover =索罗(1)
索洛弗=
请注意条款 并回忆起身份 .
以条件重写表达 .
c=exp(-omega_0*t*zeta);solOver=c*重写(solOver/c,“cosh”)
索洛弗=
索罗(T,Omega_0,Zeta)=索拉弗
索洛弗(t,ω0,zeta)=
绘制解决方案,以查看其衰减而不振荡。
z = 1 + [1/4 1/2 3/4 1];w = 1;t = 4 * pi;linestyle = {'-',' - ',':K','-.'};fplot(@(t)求助(t,w,z(1)),[0 t],linestyle {1});持有在;对于k=2:numel(z)fplot(@(t)solOver(t,w,z(k)),[0t],线型{k});结束持有离开;网格在;xticks(T*linspace(0,1,5));xticklabel({'0',“\pi”,'2 \ pi','3 \ pi',“4\pi”});xlabel('\ omega_0 t');伊莱贝尔(“振幅”);lgd=图例('1+1/4','1 + 1/2','1+3/4','2');标题(LGD,“\zeta”);标题('过度透露');
如果 ,然后解决方案简化为
Solcritical(T,Omega_0)=限制(Sol,Zeta,1)
临界温度(t,ω0)=
绘制临界阻尼情况的解决方案。
w=1;T=4*pi;fplot(solCritical(T,w),[0t])xlabel('\ omega_0 t');伊莱贝尔('X');标题('临界阻尼,\zeta=1');网格在;xticks(T*linspace(0,1,5));xticklabel({'0',“\pi”,'2 \ pi','3 \ pi',“4\pi”});
通过求解使用阻尼比来解决代表其运动的杂散来检查谐波振荡器的不同阻尼状态 .将所有三个案例绘制在一起进行比较和对比。
zOver=pi;zUnder=1/zOver;w=1;T=2*pi;线型={'-',' - ',':K'};fplot(@(t)solOver(t,w,zOver),[0t],线型{1},“线宽”,2);持有在;fplot(solCritical(t,w),[0t],线型{2},“线宽”,2)fplot(@(t)solUnder(t,w,zUnder),[0t],线型{3},“线宽”,2);持有离开;textcolor =行(3);文字(3 * PI / 2,0.3,'过度阻尼','颜色',textcolor(1,:));文字(PI * 3/4,0.05,'批评 - 阻尼','颜色',textcolor(2,:));文字(PI / 8,-0.1,'欠压');网格在;xlabel('\ omega_0 t');伊莱贝尔(“振幅”);XTICKS(T * LINSPACE(0,1,5));xticklabels({'0',“\pi/2”,“\pi”,'3 \ pi / 2','2 \ pi'});yticks((1/exp(1))*[-1012 exp(1)];Ytick标签({'-1 / e','0','1 / e',“2/e”,'1'});lgd =图例(“\pi”,'1',“1/\pi”);标题(LGD,“\zeta”);标题('阻尼谐波振荡器');