因为要写一个库,用以模拟现实世界的运动逻辑。在经典力学里,我们常常用匀速运动来说事,但现实中哪有那么好的事情,摩擦力等阻力会让速度慢下来,重力加速度会让速度越来越快等等。
已知:某物体以 v1 的初始速度被加速前进,t1 秒后,速度达到了 v2(v2 > v1)。
求:t2(t2 > t1)时停止加速,物体滑行多长距离之后停下来?
当看到这个题目,作为文科生,我完全懵逼,把毕生学到当物理学知识翻出来也找不到快速解决的办法。所以,只能通过自己的推演慢慢解决这道题目。
分析
这道题的特别之处在于受到了阻力影响,且运动过程分为两段。那么接下来我们来进行受力分析。
第 1 阶段由于受到比 f 大的 F 力的助推,所以呈实际受力为 F - f 的推力,匀加速运动。第 2 阶段由于只受 f 阻力,所以呈匀减速运动。
关于加速运动用到的公式有如下:
- 求加速度公式 a = (v2 - v1) / t
- 求距离公式 s = v1t + at2/2
且公式中如果 v1 为 0,那么更加简单。
由于第 2 阶段物体停下来,只受 f 阻力影响,因此,我们只需要知道 f 所带来的减速度,以及 t2 时的即时速度即可算出滑行需要的时间,进而算出滑行距离。
开始解题
1.计算第一阶段加速度
a1 = (v2 - v1) / t
2.计算到达 t2 时的速度
vx = a1 * t2 = (v2 - v1) * t2 / t
3.计算计算阻力减速度
即时速度比较好算,但是 f 所带来的减速度是多少呢?
根据牛顿第二定律 F = ma。因为质量固定,所以摩擦力 f 所产生的减速度 ax 是固定的。同时根据动摩擦力公式 f = µFn = µG = µmg(µ 为动摩擦因子)。质量和重力加速度都是固定的,所以最终 ax 的大小仅仅和动摩擦因子有关,也就是物质表面的粗糙程度,ax = ƒ(µ)。
现在,我们假设在没有阻力的情况下所产生的加速度为 a0:
kµ = ax / a0
即损失加速度与理想状态(无阻力)加速度之比,k 为一个常量系数,表示摩擦因子与加速度损失之间的某种特定关系,那么
ax = ƒ(µ) ≈ µa0
而对于同一个事物,µ 是固定不变的。又因为
ax = a0 - a1
所以
ax = µa0 = a0 - a1
=> a0 = a1 / (1 - µ)
=> ax = a0 - a1 = a1 / (1 - µ) - a1
=> ax = µa1 / (1 - µ) = µ(v2 - v1) / t(1 - µ)
现在我们得到了摩擦力带来的减速度。
4. 计算停下来要花的时间
我们就可以得到从 t2 开始减速到停止所需要花费的时间:
tx = vx / ax
5. 计算停下来之前滑行的路程
在该时间内物体前进的距离是多少呢?
sx = ax * tx2 / 2
经过上面这些步骤我们就算出了物体滑行的距离。