MIT 6.837:Mass-Spring 质点-弹簧系统

MIT 6.837:Mass-Spring 质点-弹簧系统

质点-弹簧系统也是一种常用于进行物理模拟的模型,可以通过恰当的建模来模拟绳子、布料等具有一定弹性的物体。

弹力

41 - MIT 6.837:Mass-Spring 质点-弹簧系统

弹力是一个我们自初中就接触的话题,根据 Hooke 定律,弹簧内部的弹力与形变量成正比,比例系数定义为 $K \ (\mathrm{N/m})$,方向朝形变的反方向,形式化表达为

$$ \boldsymbol{F}(\boldsymbol{P}_i, \boldsymbol{P}_j) = K (L_0 – || \boldsymbol{P}_i\boldsymbol{P}_j ||) \frac{\boldsymbol{P}_i\boldsymbol{P}_j}{|| \boldsymbol{P}_i\boldsymbol{P}_j ||} $$

质点-弹簧系统

结构

42 - MIT 6.837:Mass-Spring 质点-弹簧系统

对于一些有弹性的物体,我们可以利用弹簧这一模型反映内部的弹力,结合粒子系统的思想,就得到了质点-弹簧系统。系统中包含若干质点,以及将质点连起来的弹簧网络。这一模型可用于模拟绳子、布料、头发等材质。

力分析

在质点-弹簧系统中包含三种力:

  • 结构力:反映系统中一些不变参数的力,例如某点的位置固定等,这实际上是一组常量约束
  • 内部变形力:当结构变形时,产生的弹力,例如布垂下时向上拉、希望将其变平的力
  • 外部力:重力等外界因素对系统产生的力

模型

头发

头发可看做是难以伸长、易于弯曲、弯曲引起弹力的模型。与常规的弹簧不同,对头发的建模应将变形力与弯曲程度关联,可取质点所连线之间的夹角反映弯曲程度。

43 - MIT 6.837:Mass-Spring 质点-弹簧系统

布料

44 - MIT 6.837:Mass-Spring 质点-弹簧系统

布料通常利用质点和弹簧织成的网络建模,其中包含多种弹簧:

  • 结构弹簧:连接同行同列的相邻质点,将质点连接成一个面
  • 剪力弹簧:四边形容易被拉伸变形,布料并不易受剪力变形,因此添加对角相邻的弹簧以抵抗这种变形
  • 弯曲弹簧:同行同列隔一个质点连接,用于提供抵抗布料弯曲的力
45 1024x843 - MIT 6.837:Mass-Spring 质点-弹簧系统

布料模拟时通常会添加约束,例如规定悬挂布料的位置。悬挂处位置不变,故受力应当为 0,此处的结构力应为该点所受其他力合力的反向,故不为一个确定的力,而随其受其他力的情况变化。实现时,不必计算此力,而可以直接忽略添加了约束的点的受力即可。

布料模拟中也可能会遇到一些问题:

  • 弹性问题:布料的形变通常较小,需要合理设置弹簧的弹性系数来避免形变过大,也可限制布料的形变程度
  • 离散化问题:离散化得到的质点数会影响模拟结果,因此需要选用恰当的质点数,以得到和现实情况类似的结果
  • 碰撞问题:质点数很多时,布料与其他物体的碰撞是一个很棘手的问题,因此需要解决碰撞检测与稳定性问题



发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据