多米诺骨牌连锁模拟器 返回
机械力学

多米诺骨牌连锁模拟器

用2D刚体物理引擎再现多米诺骨牌的连锁反应。点击放置骨牌,推倒启动,实时观察角动量传播和能量转换。

多米诺骨牌连锁模拟器

点击放置骨牌,观察连锁反应

操作

点击画布添加骨牌

骨牌间隔
间隔
px
骨牌高度
高度
px
重力加速度
g
m/s²
计算结果
0
总数
0
倒下数
0.0
动能
0.0s
经过时间
50
间隔 (px)
60
高度 (px)
10.0
重力 (m/s²)
场景

🁣 请放置骨牌

点击画布添加骨牌
或点击「自动排列」按钮一行排列

理论与主要公式

$$I\ddot{\theta} = \tau_g - \tau_d$$

惯性矩 $I = \frac{mh^2}{3}$(绕底端旋转)、重力扭矩 $\tau_g = mg\frac{h}{2}\sin\theta$、阻尼扭矩 $\tau_d = c\dot{\theta}$。$m$: 质量、$h$: 骨牌高度、$\theta$: 倾斜角。

$$\Delta L = F_\text{imp} \cdot r_{\perp} \cdot \Delta t$$

碰撞时的角动量转移。$F_\text{imp}$: 冲击力、$r_{\perp}$: 接触点的垂直距离、$\Delta t$: 碰撞时间。

$$v_\text{tip} = h\dot{\theta}$$

骨牌尖端速度。倒下速度越快,传递给下一个骨牌的动量越大,连锁加速。

关于多米诺骨牌连锁模拟器

🙋
多米诺骨牌为什么倒下时会一个接一个地倒下?仅仅是一根棒倒下并碰到另一根棒而已啊。
🎓
简单来说,倒下的骨牌的"旋转能量"以"角动量"的形式传递给邻近的骨牌。试试看在模拟器中将"间隔"设置得非常大。倒下的骨牌就不会碰到下一根,对吧?这是"传递"的第一个必要条件。
🙋
我明白了!那改变"高度"滑块会发生什么呢?
🎓
你注意到了关键点。高度变化会大大改变倒下的势头。实际上,骨牌越高,重心位置越高,倒下时携带的位势能越大。这样倒下的速度就会加快,传给邻近骨牌的冲击力 $F_{imp}$ 也会增强。试着比较最大和最小高度,看看连锁速度如何变化。
🙋
那改变重力"g"呢?如果g变成0,就像在空间站里,会怎样?
🎓
完全正确!g决定了倒下原动力——重力扭矩 $\tau_g$。减小g会使倒下变慢,连锁可能会中断。反之,增大g会使骨牌倒得太快,可能会反弹。在模拟器中调整g,找找看连锁反应成立的临界条件吧。这很有趣。

常见问题

目前是固定的,但骨牌的高度和厚度变化会影响倒下速度和连锁传播方式。我们计划在未来的更新中添加参数调整功能。
由骨牌高度(重心位置)、惯性矩、重力加速度以及碰撞时角动量的传递量决定。骨牌越高倒得越慢,但对邻近骨牌的冲击越大。
可能是骨牌间隔太大,或倒下速度不足。尽可能紧密地排列骨牌,或更用力推动第一根骨牌,有助于维持连锁反应。
我们简化了空气阻力和摩擦力,所以模拟中的连锁反应往往比现实更流畅。但角动量守恒和能量损失的基本机制是准确重现的。

实际应用

娱乐与艺术:大规模多米诺骨牌艺术和活动需要设计复杂的配置和特殊触发器。通过物理模拟,可以高效地规划数千根骨牌的配置,确保可靠的连锁反应。

连锁反应教学模型:核分裂连锁反应、社交网络信息传播等抽象的"连锁"概念可以通过直观的物理类比来理解。是能量传播可视化的理想模型。

机械开关/触发装置设计:用微小力量驱动大型机械的"杠杆"原理和一个触发器依次启动多个开关的机械系统,多米诺骨牌物理模型可作为基础参考。

刚体物理引擎验证:游戏和CAE软件中的物理引擎使用多米诺骨牌连锁(多个刚体连续碰撞和旋转)作为基准测试问题,检验计算稳定性和能量守恒的正确性。

常见误解和注意事项

首先,很多人认为"间隔越小连锁越快",但实际上最优间隔是存在的。例如,如果间隔相对于骨牌高度极小(比如高度的10%以下),倒下的骨牌会打到下一根骨牌的上部,而不是推倒它。这样有效扭矩($r_{\perp}$变小)传不出去,反而连锁变慢或停止。一般来说,骨牌高度的20~30%的间隔最能有效地传递角动量。

其次,即使模拟中将"摩擦系数"设为0,现实也不可能做到。如果桌面摩擦完全为零,骨牌倒下时轴会滑动,不能形成纯旋转。这个工具假设桌面摩擦无穷大(不滑动),所以可以观察纯旋转运动。重现实物时需用防滑垫接近这个条件——这是容易忽视的地方。

最后,"增大重力g就能无限加快"是错的。倒下的角加速度确实与g成正比,但碰撞也很关键。g过大时倒下太快,碰撞时可能反弹或造成极大冲击。模拟中虽未模拟"破坏",但会表现为不自然的反弹。实用设计需要找出能稳定传播的g范围。

使用指南

  1. 用spacingSlider在1~50px范围内调整骨牌间隔,控制连锁效率
  2. 用heightSlider将骨牌高度设置在20~200px,影响惯性矩 I=mh²/3
  3. 用gravSlider将重力加速度改为1~15m/s²,改变重力扭矩 τ_g=mg(h/2)cosθ 引起的倒坍速度
  4. 在画布内点击放置骨牌,推倒第一根以启动连锁,观察角动量传播ΔL=F_imp·r_⊥·Δt
  5. 从总数/倒下数的比例和经过时间评估连锁反应的完全性

具体计算示例

以高度80px(实际0.08m)、质量0.05kg、间隔15px的杉木多米诺骨牌在9.8m/s²重力下排列为例,若对第一根骨牌施加20N冲击力,接触点高度0.04m时的角动量为L=20×0.04×0.05≒0.04kg·m²/s。该骨牌的惯性矩I=(0.05)×(0.08)²/3≒1.07×10⁻⁴kg·m²,得初始角速度ω≒374rad/s,其间受重力扭矩τ_g=(0.05)×(9.8)×(0.04)×cos(30°)≒0.017N·m减速后碰撞邻近骨牌。间隔优化到15px时,实现100根中98根在3.2秒内倒下的连锁率。

实务注意事项