柯西应力是连续介质力学中描述材料内部某一点应力状态的一种方式。
本人是学计算机的,没有相关的连续介质力学、固体力学、结构力学等背景知识,物理属于高中水平,这里记录一下自己的直观理解。
柯西应力 Cauchy Stress
对于学计算机的来说,想要模拟仿真一个弹性体,流体等可变性的物体,直观的想法是:我只要知道每个点的受力,以及质量,就可以用牛顿第二定律 f = m a f=ma f=ma计算万物了!
翻译成数学语言即是,需要获得一个连续的力场函数 f ( x ) f(\textbf{x}) f(x)表示来获得位置 x \textbf{x} x的受力
但实际上在连续介质材料中,计算内力获得这个 f ( x ) f(\textbf{x}) f(x)函数还挺困难的,不得不引入一个对学物理的更友好的物理量:柯西应力
直观定义
柯西应力是一个矩阵,用来表示材料中某个点在各个方向的受力关系:
σ
=
[
σ
x
x
σ
x
y
σ
x
z
σ
y
x
σ
y
y
σ
y
z
σ
z
x
σ
z
y
σ
z
z
]
\boldsymbol{\sigma} = \begin{bmatrix} \sigma_{xx} & \sigma_{xy} & \sigma_{xz} \\ \sigma_{yx} & \sigma_{yy} & \sigma_{yz} \\ \sigma_{zx} & \sigma_{zy} & \sigma_{zz} \end{bmatrix}
σ=
σxxσyxσzxσxyσyyσzyσxzσyzσzz
其中
σ
x
x
,
σ
y
y
,
σ
z
z
\sigma_{xx}, \sigma_{yy}, \sigma_{zz}
σxx,σyy,σzz表示拉伸力;
σ
x
y
,
σ
y
z
,
σ
z
x
\sigma_{xy}, \sigma_{yz}, \sigma_{zx}
σxy,σyz,σzx等用于表示剪切力。这两种力可以用下图直观表示:
可见柯西应力表示了某个点受材料影响受到的各种力,可以是材料试图把它往两边扯(拉伸力),或者材料试图一边往上一边往下(剪切力,其实主要是摩擦),它表示了比单个点的受力多了许多信息,因为它包含了该点的微小邻域的受力信息。
这其实对于计算机离散化至关重要,毕竟计算机不能表示一个连续的力函数 f ( x ) f(\textbf{x}) f(x),只能表示有限个位置的力。而使用这些与邻域相关的量可以让计算机更好的估计没有被记录的位置的相关信息。
一些性质
上面图中解释了 σ x x , σ y x \sigma_{xx}, \sigma_{yx} σxx,σyx的含义,把 σ x x , σ y x , σ z x \sigma_{xx}, \sigma_{yx}, \sigma_{zx} σxx,σyx,σzx组合起来就可以得到对法向量为 x x x方向的微平面上受到的应力,而组合起来就是一个矩阵乘以法向量: f = σ ⋅ n x \boldsymbol{f} = \boldsymbol{\sigma} \cdot \textbf{n}_x f=σ⋅nx(因为这个应力是施加在一个微平面上的,其实看单位更像压强)
在大部分情况下,柯西应力张量是对称的。某些特殊情况下比如极性流体、非牛顿流体会出现不对称。
对于连续介质,可以通过柯西应力张量计算出该点的受力,也就是计算散度 ∇ ⋅ σ \nabla \cdot \boldsymbol{\sigma} ∇⋅σ
柯西应力的散度
散度的基础
回忆了数学分析上讲的,把一个向量场看成水流,某个点的散度表示水流在这个点的邻域从这个点流出多少,负数则代表流进去多少。翻译成数学语言即是:
∇
⋅
F
=
lim
V
→
0
1
∣
V
∣
∮
∂
V
F
⋅
n
d
S
\nabla \cdot F = \lim_{V \rightarrow 0} \frac 1 {|V|} \oint_{\partial V} F \cdot \mathbf{n} \, dS
∇⋅F=V→0lim∣V∣1∮∂VF⋅ndS
在三维空间中就可以表示为:
∇
⋅
F
=
∂
F
x
∂
x
+
∂
F
y
∂
y
+
∂
F
z
∂
z
\nabla \cdot F = \frac {\partial F_x} {\partial x} + \frac {\partial F_y} {\partial y} + \frac {\partial F_z} {\partial z}
∇⋅F=∂x∂Fx+∂y∂Fy+∂z∂Fz
柯西应力的散度
套公式可以写为:
∇
⋅
σ
=
[
∂
σ
x
x
∂
x
+
∂
σ
y
x
∂
y
+
∂
σ
z
x
∂
z
∂
σ
x
y
∂
x
+
∂
σ
y
y
∂
y
+
∂
σ
z
y
∂
z
∂
σ
x
z
∂
x
+
∂
σ
y
z
∂
y
+
∂
σ
z
z
∂
z
]
\nabla \cdot \boldsymbol{\sigma} = \begin{bmatrix} \frac{\partial \sigma_{xx}}{\partial x} + \frac{\partial \sigma_{yx}}{\partial y} + \frac{\partial \sigma_{zx}}{\partial z} \\ \frac{\partial \sigma_{xy}}{\partial x} + \frac{\partial \sigma_{yy}}{\partial y} + \frac{\partial \sigma_{zy}}{\partial z} \\ \frac{\partial \sigma_{xz}}{\partial x} + \frac{\partial \sigma_{yz}}{\partial y} + \frac{\partial \sigma_{zz}}{\partial z} \end{bmatrix}
∇⋅σ=
∂x∂σxx+∂y∂σyx+∂z∂σzx∂x∂σxy+∂y∂σyy+∂z∂σzy∂x∂σxz+∂y∂σyz+∂z∂σzz
得到一个3x1的向量,而这就是该点受到的内力,下面用一个一维的例子来解释
假设有一个弹簧,我们先把弹簧压缩,”趁弹簧没反应过来“猛地将它拉伸到很长,把它扯成了这个样子:(左边处于压缩状态,右边处于拉伸状态)
显然B点还会继续往右移动,试图把这个弹簧变得各个部分均匀,B点在这个时候受到向右的内力
很容易观察到,左边A区域,弹簧处于压缩状态,每个点的都会受到周围材料的挤压,则 σ x x \sigma_{xx} σxx很小甚至为负数。对于右边C区域,弹簧处于拉伸状态,每个点会被周围材料往外拉,则 σ x x \sigma_{xx} σxx很大。而B点处于一个变化的区域,所以其受到了向右的内力,而公式中 ∂ σ x x ∂ x \frac{\partial \sigma_{xx}}{\partial x} ∂x∂σxx正好可以衡量这个内力。
从单位来看, σ \boldsymbol{\sigma} σ表示的是微小平面受力,单位是 N / m 2 N/m^2 N/m2,而内力是质点受力,即单位体积受力,单位是 N / m 3 N/m^3 N/m3。对柯西应力求散度刚好符合单位。
一些性质
柯西运动方程:
ρ
D
v
D
t
=
∇
⋅
σ
+
f
\rho \frac{D\mathbf{v}}{Dt} = \nabla \cdot \boldsymbol{\sigma} + \mathbf{f}
ρDtDv=∇⋅σ+f
根据牛顿第二定律描述了对连续介质中单位质点的运动,即单位质量(密度)乘以加速度等于其受力。受力分为了内力
∇
⋅
σ
\nabla \cdot \boldsymbol{\sigma}
∇⋅σ和该点受到外力
f
\mathbf{f}
f
柯西应力和PK1数(First Piola-Kirchhoff Stress)
之前学弹性体仿真时接触到了First Piola-Kirchhoff Stress这个东西,虽说其本应该是柯西应力的后继科技,但是我却莫名其妙先学到了,现在来看看他们的区别。
唯一的区别在于:柯西应力表示的是材料变形后坐标下某个点,对于该点附近微平面的受力;而PK1表示的是该点通过坐标变换还原回材料初始状态后,和柯西应力表示一模一样的物理量
他们的转化公式为:
P
=
J
σ
⋅
F
−
T
\mathbf{P} = J \boldsymbol{\sigma} \cdot \mathbf{F}^{-T}
P=Jσ⋅F−T
J
J
J为体积变化分数,
F
\mathbf{F}
F为形变梯度矩阵