---
title: "怎样从接触力算出压强"
description: "推导二维接触应力公式，证明它等于壁上单位长度的力，也等于能量对面积的导数，并用两个圆盘的例子把三种算法对上。"
canonical_url: "https://sandboxphysics.com/zh/stories/granular-jamming/stress-from-contacts/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/granular-jamming/stress-from-contacts/"
last_modified: "2026-10-29"
---

[颗粒与堵塞](https://sandboxphysics.com/zh/stories/granular-jamming/)

L2 · 第 3 章

# 怎样从接触力算出压强

Sandbox Physics · 2026-10-29

压强可以在壁上量：把壁受到的力除以壁长。也可以在堆积内部算：把每个接触的力乘上它连接的两个圆心的距离，加起来再除以面积。两种算法在受力平衡时给出同一个数。这一章推出这个等式，因为后面所有关于压强的结论，用的都是内部算出来的那个数。

## 开始前需要什么

第一章的接触定律和第二章的受力平衡方程。会对求和式交换次序，知道二维应力是单位长度上的力。

- 写出二维接触应力张量，说明分支矢量和接触力各指哪个方向。
- 由受力平衡推出接触应力等于壁上单位长度的力。
- 由能量对面积求导推出压强，并用一个例子核对三种算法。

## 二维里的应力和压强

二维里，力作用在线上而不是面上，所以应力的单位是力除以长度，即 $\varepsilon/d^2$。$\sigma_{xx}$ 是法向沿 $x$ 的那面壁上单位长度受到的推力，$\sigma_{yy}$ 同理。本课程取压应力为正，因为圆盘只会推。

压强取两个法向应力的平均：$p=(\sigma_{xx}+\sigma_{yy})/2$。若 $\sigma_{xx}\ne\sigma_{yy}$，或 $\sigma_{xy}\ne0$，堆积在不同方向上受力不同，第五章的剪切会用到这种各向异性。

来源：C. S. O’Hern

## 在堆积内部算应力

对每个接触，取分支矢量 $\mathbf b$：盘与盘接触时从圆心 $j$ 指向圆心 $i$，盘与壁接触时从壁上的接触点指向圆心。$\mathbf f$ 是这个接触推圆盘 $i$ 的力。接触只会推，$\mathbf f$ 与 $\mathbf b$ 同向，所以 $b_xf_x>0$，压应力自然为正。

Silbert 等人式 (12) 的应力还有一项速度涨落带来的动能部分。静止的堆积没有这一项，只剩接触部分。O’Hern 等人式 (2) 用同一个求和定义压强张量。

$$
\sigma_{ab}=\frac{1}{A}\sum_{\text{contacts}} b_a\,f_b,\qquad p=\frac{\sigma_{xx}+\sigma_{yy}}{2}=\frac{1}{2A}\sum_{\text{contacts}}\mathbf b\cdot\mathbf f
$$

$A$ 是盒子的面积，$a,b$ 取 $x$ 或 $y$。每个接触只算一次。

来源：L. E. Silbert · C. S. O’Hern

## 为什么它等于壁上的力

盒子宽 $L$、高 $H$，左壁在 $x=0$，右壁在 $x=L$。每个圆盘受力平衡，把它的 $x$ 方向平衡方程乘上它的坐标 $x_i$，再对所有圆盘求和，结果仍是零。

换个次序，按接触来加。盘与盘的接触在两个圆盘上各出现一次，力相反，合起来是 $(x_i-x_j)f_x=b_xf_x$。左壁的接触贡献 $x_if_x$，正好是 $b_xf_x$。右壁的接触贡献 $x_if_x=(x_i-L)f_x+Lf_x=b_xf_x+Lf_x$。

右壁上各接触的 $f_x$ 加起来，是右壁推圆盘的合力，等于 $-F_R$，$F_R$ 是圆盘推右壁的总力。于是所有接触的 $b_xf_x$ 之和等于 $LF_R$，除以面积 $LH$ 就得到 $F_R/H$：右壁单位长度上的力。

$$
\sum_i x_i F^{\,\mathrm{net}}_{i,x}=0\;\Longrightarrow\;\sum_{\text{contacts}}b_xf_x=L\,F_R\;\Longrightarrow\;\sigma_{xx}=\frac{F_R}{H}
$$

只用了每个圆盘的受力平衡，与接触定律无关。圆盘还没平衡好时，两种算法会不一致，所以它们的差值可以检验弛豫是否完成。

## 压强也是能量对面积的导数

把盒子和所有圆心按同一比例 $1+e$ 放大，面积变为 $A(1+e)^2$，增加 $dA=2Ae$。每个接触的圆心距离也乘 $1+e$，能量变化 $dU=\sum (dV/dr)\,r\,e=-\sum f\,r\,e$。

两式相除，$-dU/dA=\sum f r/(2A)$，正是上面的 $p$。这条关系让我们可以只看能量就检查压强：在 128 个圆盘的堆积上用中心差分算 $-dU/dA$，与接触应力的相对差不超过 $1.5\times10^{-7}$；接触应力与四面壁上的力相比，差别在 $10^{-12}$ 量级。

$$
p=-\frac{dU}{dA}\bigg|_{\text{affine}}=\frac{1}{2A}\sum_{\text{contacts}} f\,r
$$

“仿射”指所有坐标按同一比例变化，圆盘之间不做额外的调整。若允许调整，堆积会再弛豫，能量变化还要扣掉弛豫放掉的部分；第六章用这一点算一次压缩—卸载循环的能量损失。

来源：C. S. O’Hern

## 完整例题：把三种算法对上

沿用第一章的两个圆盘：$R_1=0.5$，$R_2=0.7$，壁距 $L=2.39$，接触力 $f=4.59\times10^{-3}\,\varepsilon/d$。让盒子高 $H=1.5$，大盘碰不到上下壁。

壁上的力：$\sigma_{xx}=f/H=3.06\times10^{-3}\,\varepsilon/d^2$，$\sigma_{yy}=0$，所以 $p=1.53\times10^{-3}\,\varepsilon/d^2$。只在一个方向受压，压强只有 $\sigma_{xx}$ 的一半。

接触应力：三个分支矢量的 $x$ 分量依次是 $R_1-\delta_{1w}=0.4989$、$\sigma-\delta_{12}=1.1934$、$R_2-\delta_{2w}=0.6978$，加起来正好是 $L=2.39$。三个接触的力相同，所以 $\sum b_xf_x=fL$，除以 $LH$ 又得到 $f/H$。

能量导数：压缩时 $L$ 变小，三处重叠一起增加。用第一章的柔度，$U=\varepsilon(L_0-L)^2/(2\times2.18)$，其中 $L_0=2.4$。沿 $x$ 方向，$-dU/dL=f$，除以 $H$ 就是 $\sigma_{xx}$。

## 到实验里试一试

### [用两种方法读同一个压强](https://sandboxphysics.com/zh/labs/disk-jamming-compression/)

1. 先预测：在没有完全弛豫的一步里，壁上压强和接触应力会一致吗？
2. 播放默认预设，在几帧不同的堆积分数下，打开“更多数值”，读“接触应力与壁面压强之比”。
3. 把接触定律换成 Hertz，重复一次，说明这个比值为什么与接触定律无关。

## 练习与解答

1. 一个正方形盒子边长 $L=10$，四面壁上测得的总推力都是 $0.05\,\varepsilon/d$。求 $\sigma_{xx}$、$\sigma_{yy}$ 和 $p$。

   展开解答

   每面壁单位长度上的力 $0.05/10=5\times10^{-3}$，所以 $\sigma_{xx}=\sigma_{yy}=p=5\times10^{-3}\,\varepsilon/d^2$。

2. 例题里如果用压应力取负的约定，接触应力公式要怎么改？

   展开解答

   把整体符号反过来：$\sigma_{ab}=-\frac1A\sum b_af_b$。物理不变，只是压缩时读数为负。读文献时先确认作者用哪种约定。

3. 一个堆积在 $A=100$ 时能量为 $2.000\times10^{-3}\,\varepsilon$，仿射压缩到 $A=99.9$ 时为 $2.052\times10^{-3}\,\varepsilon$。估计压强。

   展开解答

   $p\approx-\Delta U/\Delta A=-(0.052\times10^{-3})/(-0.1)=5.2\times10^{-4}\,\varepsilon/d^2$。这是单侧差分，给出的是这一小段面积上的平均；用中心差分精度更高。

[上一章：堵住的堆积需要多少个接触](https://sandboxphysics.com/zh/stories/granular-jamming/counting-contacts/) [下一章：堵塞点在哪里，越过它之后压强怎样增长](https://sandboxphysics.com/zh/stories/granular-jamming/the-jamming-point/)

## 来源与复算范围

1. [C. S. O’Hern, L. E. Silbert, A. J. Liu and S. R. Nagel, Jamming at zero temperature and zero applied stress: the epitome of disorder, arXiv:cond-mat/0304421v1; Physical Review E 68, 011306 (2003)](https://arxiv.org/abs/cond-mat/0304421v1)

   2003 年 4 月 17 日 v1。式 (1)：软球之间有限程的排斥势。第 II 节：从无穷高温的随机构型出发，在周期性盒子里用共轭梯度法求能量极小，并用能量判断是否未堵塞。图 5 至图 7 与式 (3)：堵住构型所占比例、堵塞阈值的分布，以及分布宽度随粒子数按 −0.55 次方减小。表 I：压强与接触数的指数和系数。图 20：二维堆积的力网络。我们用自己的程序复算了阈值宽度、压强指数和接触数指数；接触数指数在 128 个盘时没有复现。

2. [L. E. Silbert, D. Ertaş, G. S. Grest, T. C. Halsey, D. Levine and S. J. Plimpton, Granular flow down an inclined plane: Bagnold scaling and rheology, arXiv:cond-mat/0105071v1; Physical Review E 64, 051302 (2001)](https://arxiv.org/abs/cond-mat/0105071v1)

   2001 年 5 月 3 日 v1。第 II 节：带摩擦的接触模型，法向是带阻尼的弹簧，切向是受 Coulomb 条件截断的弹簧，切向与法向刚度之比为 2/7。式 (12)：应力张量等于分支矢量乘接触力之和除以体积，再加动能项。静态堆积只用式 (12) 的接触部分。
