微分方程的应用——电磁感应中RLC串联的单棒模型运动规律【附仿真代码】

文摘   2024-08-23 00:00   浙江  
写在前面:欢迎关注"寒江钓雪" ,我们共同探究学习~

友情提醒:文中部分公式较长,若显示不全,可左右滑动查看完整公式。也可手机横屏阅读,即可完整阅读。

文章目录:

1 题目

如图1所示,两根间距为 的相互平行光滑长直金属导轨固定在水平绝缘桌面上,在导轨的左端串联接入电容为 的电容器和自感为 的电感。质量为 ,阻值为 的导体棒 静止于导轨上,与导轨垂直,且接触良好,导轨电阻忽略不计,整个系统处于方向竖直向下的匀强磁场中。开始时,导体棒起始位置为坐标原点,电容器电压为 ,合上开关 后,那么电容电压、电感电流以及导体棒的运动速度 、位移 随时间如何变化的?

图 1 含有电阻、电感、电容串联的单棒模型

2 定量研究

合上开关 后,电容器放电。设电容两端电压为 ,通过电感电流为 ,电感两端电压为 。以 时刻的各处电流流向为正方向。如图2所示。

图 2 电路中各物理量之间关系

对于电容器 ,满足

(1)

对于电感 ,满足

(2)

根据基尔霍夫电压定律,有

(3)

对金属棒动力学分析,有

(4)

联立,可得

(5)

(6)

式(6)两边对时间 进行求导

(7)

将式(4)、(5)代入式(7),整理得

(8)

其中,

(9)

这是一个关于 的二阶线性齐次常微分方程。其特征方程为

(10)

对于式(10),其特征根为

(11)

接下来,分三种情况进行讨论。

2.1 过阻尼情况

时,式(11)有两个不等实根,此时电路处于过阻尼状态。

并且,式(8)中电流 的通解为

(12)

当闭合开关后瞬间,即 时,电感电流不能突变,因此

(13)

代入式(12),得

(14)

同理,当 时,电容电压不能突变,因此

(15)

时,对式(6)进行分析,即简化为

(16)

对式(12)进行求导,得

(17)

因此,当 时,式(17)转化为

(18)

联立式(15)、(16)、(18),可得

(19)

联立式(14)、(19),可得

(20)

将式(20)代入式(12),求得电感电流表达式:

(21)

将式(21)代入式(1),并积分,求得电容电压表达式:

(22)

将式(21)代入式(4),得

(23)

对式(23)积分,并且 ,求得

(24)

对式(24)积分,并且 ,求得

(25)

2.2 临界阻尼情况

时,式(11)有两个相等的负实根

(26)

此时电路处于临界阻尼状态。

并且,式(8)中电流 的通解为

(27)

同理,根据式(13)、(15)中的初始条件,可以求得

(28)

将式(28)代入式(27),求得电感电流表达式

(29)

同理,可以求得

(30)

(31)

(32)

2.3 欠阻尼情况

时,式(11)有两个共轭负根。

(33)

(34)

并且,式(8)中电流 的通解为

(35)

同理,根据式(13)、(15)中的初始条件,可以求得

(36)

将式(36)代入式(35),求得电感电流表达式:

(37)

根据高等数学中积分知识,有

(38)

(39)

利用上述公式(38)、(39),求得

(40)

(41)

(42)

3 仿真验证

接下来,运用Matlab软件分别对以上3种情况的电学量、运动情况进行数值模拟,已达到更好地可视化效果。

3.1 过阻尼情况

为满足 ,取如下初始化参数为

完整运行视频:

仿真结果如下:

图3 电容电压随时间变化关系
图4 电感电流随时间变化关系
图5 导体棒速度随时间变化关系
图6 导体棒位移随时间变化关系

从图中,可以看出导体棒一直朝一个方向运动,最终趋于匀速直线运动。并且电容电压、电感电流随时间不发生振荡,最终趋于稳定值。

3.2 临界阻尼情况

为满足,取如下初始化参数为

完整运行视频:

仿真结果如下:
图7 电容电压随时间变化关系
图8 电感电流随时间变化关系
图9 导体棒速度随时间变化关系
图10 导体棒位移随时间变化关系

从图中,可以看出导体棒一直朝一个方向运动,最终趋于匀速直线运动。并且电容电压、电感电流随时间不发生振荡,最终趋于稳定值。

3.3 欠阻尼情况

为满足 ,取如下初始化参数为

完整运行视频:

仿真结果如下:

图11 电容电压随时间变化关系
图12 电感电流随时间变化关系
图13 导体棒速度随时间变化关系
图14 导体棒位移随时间变化关系

从图中,可以看出导体棒一直朝一个方向运动,最终趋于匀速直线运动。并且电容电压、电感电流随时间衰减振荡,最终趋于稳定值。

4 结束语

对于含有电阻、电感、电容的串联电路中,通过磁场中的单棒进行放电,这是一个非常复杂问题。我们通过严格求解二阶微分方程,得出了各电学量、运动量的解析解,并讨论了3种可能的情形。当系统处于欠阻尼状态时,电容电压、电感电流、导体棒速度随时间衰减振荡,最终趋于稳定值;当系统处于临界阻尼或过阻尼状态时,电容电压、电感电流、导体棒速度随时间不发生振荡,最终趋于稳定值。

5 核心代码

%电容电压对时间的曲线图capacity_plot_handle = subplot(5,1,1);hold on%plot(t,y(:,1),'k');xlabel('时间(s)');ylabel('电容电压(V)');title('\fontsize{20}含有电阻、电感、电容的单棒模型(RLC串联)')    %添加标题
%电感电流对时间的曲线图inductance_plot_handle = subplot(5,1,2);hold on%plot(t,y(:,2),'b');xlabel('时间(s)');ylabel('电感电流(A)');
%导体棒速度对时间的曲线图stick_velocity_handle = subplot(5,1,3);hold on%plot(t,y(:,3),'r');xlabel('时间(s)');ylabel('导体棒速度(m/s)');
%导体棒位移对时间的曲线图stick_pos_handle = subplot(5,1,4);hold on%plot(t,y(:,4),'r');xlabel('时间(s)');ylabel('导体棒位移(m)');
guide_handle = subplot(5,1,5);hold on%text(-3.5,1,{'公众号:寒江钓雪'},'Color','blue','FontSize',12,'FontWeight','bold');xmin = 0;xmax = 72;
%绘制下导轨downGuide_x = [xmin, xmax];downGuide_y = [0, 0];plot(downGuide_x,downGuide_y, 'k-', 'Linewidth', 5);
%绘制上导轨topGuide_x = [xmin, xmax];topGuide_y = [downGuide_y(1)+d, downGuide_y(2)+d];plot(topGuide_x,topGuide_y, 'k-', 'Linewidth', 5);
%绘制导体棒stick_x = [0, 0];stick_y = [downGuide_y(1), topGuide_y(1)];%plot(stick_x,stick_y, 'b-', 'Linewidth', 5);
pos = y(:,4);stepNum = length(pos);
isNotFirstDelete = 0; %是否第一次删除
global stickHandle;
global last_stick_x; %用来保存上一次导体棒x坐标last_stick_x = [pos(1), pos(1)];
for i=1:stepNum if(i == 1) plot(capacity_plot_handle,t(i),y(i,1),'k'); plot(inductance_plot_handle,t(i),y(i,2),'b'); plot(stick_velocity_handle,t(i),y(i,3),'r'); plot(stick_pos_handle,t(i),y(i,4),'g'); else plot(capacity_plot_handle, [t(i), t(i-1)], [y(i,1), y(i-1,1)], 'k-', 'Linewidth', 1.5); plot(inductance_plot_handle, [t(i), t(i-1)], [y(i,2), y(i-1,2)], 'b-', 'Linewidth', 1.5); plot(stick_velocity_handle, [t(i), t(i-1)], [y(i,3), y(i-1,3)], 'r-', 'Linewidth', 1.5); plot(stick_pos_handle, [t(i), t(i-1)], [y(i,4), y(i-1,4)], 'g-', 'Linewidth', 1.5); end axis(capacity_plot_handle,[0, tspan(2),7.5,10]); axis(inductance_plot_handle,[0, tspan(2),-0.2,1]); axis(stick_velocity_handle,[0, tspan(2),0,4.5]); axis(stick_pos_handle,[0, tspan(2),0,xmax]);     current_stick_x = [pos(i), pos(i)]; %删除上一帧动画,先删除再绘制,为了保存最后一帧动画 if(isNotFirstDelete) delete(stickHandle); end isNotFirstDelete = 1; [stickHandle] = draw_stick(current_stick_x, stick_y); %绘制导体棒 pause(0.0005); %暂停0.005 drawnow; %开始动画,使用drawnow命令刷新屏幕 axis(guide_handle, [xmin,xmax,0,d]) %改变坐标轴范围 end

“点赞、在看与分享都是莫大的支持”

END

您的点赞与关注是我们坚持不懈的动力 (点开名片进行关注):

由于微信平台算法改版,公号内容将不再以时间排序展示,如果您想第一时间看到我的推送,强烈建议星标我的公众号。星标具体步骤为:在公众号主页点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。感谢您的支持!

研数学 习物理
专注于20世纪的各个领域(如代数,数论,代数几何,拓扑学,几何分析等)蓬勃发展的现代数学,也分享20世纪以前的数学和物理…
 最新文章