题目
已知某点的应力张量为:
\[\left[
\begin{array}{ccc}
\sigma_{x} &\tau_{xy} &\tau_{xz}\\
\tau_{yx} &\sigma_{y} &\tau_{yz}\\
\tau_{zx} &\tau_{zy} &\sigma_{z}
\end{array}
\right]
=
\left[
\begin{array}{ccc}
0 &1 &2\\
1 & \sigma_{y} & 1\\
2 &1 &0
\end{array}
\right]
\]
\begin{array}{ccc}
\sigma_{x} &\tau_{xy} &\tau_{xz}\\
\tau_{yx} &\sigma_{y} &\tau_{yz}\\
\tau_{zx} &\tau_{zy} &\sigma_{z}
\end{array}
\right]
=
\left[
\begin{array}{ccc}
0 &1 &2\\
1 & \sigma_{y} & 1\\
2 &1 &0
\end{array}
\right]
\]
并已知经过该点的某一平面上的应力矢量为零矢量,求 \(\sigma_y\) 和主应力?
分析
由题意,存在某个微分面(单位法向量为 \(\boldsymbol{n}\)),其上的应力矢量 \(\boldsymbol{T}=\boldsymbol{0}\),即
\[\boldsymbol{T}=\boldsymbol{\sigma}\cdot\boldsymbol{n}=
\left[\begin{array}{ccc}
0 & 1 & 2\\
1 & \sigma_{y} & 1\\
2 & 1 & 0
\end{array}
\right]
\left[
\begin{array}{c}
n_1\\
n_2\\
n_3
\end{array}
\right]
=
\left[
\begin{array}{c}
0\\
0\\
0
\end{array}
\right]
\]
\left[\begin{array}{ccc}
0 & 1 & 2\\
1 & \sigma_{y} & 1\\
2 & 1 & 0
\end{array}
\right]
\left[
\begin{array}{c}
n_1\\
n_2\\
n_3
\end{array}
\right]
=
\left[
\begin{array}{c}
0\\
0\\
0
\end{array}
\right]
\]
行列式必须为零
线性方程组存在非零解,必然行列式为零,即
\[\left|\begin{array}{ccc}
0 & 1 & 2\\
1 & \sigma_{y} & 1\\
2 & 1 & 0
\end{array}
\right|
= 0 + 2 + 2 -4\sigma_y - 0 - 0
= 0
\]
0 & 1 & 2\\
1 & \sigma_{y} & 1\\
2 & 1 & 0
\end{array}
\right|
= 0 + 2 + 2 -4\sigma_y - 0 - 0
= 0
\]
求得 \(\sigma_y = 1\)。
应力张量
于是,应力张量为
\[\left[
\begin{array}{ccc}
\sigma_{x} & \tau_{xy} & \tau_{xz}\\
\tau_{yx} & \sigma_{y} & \tau_{yz}\\
\tau_{zx} & \tau_{zy} & \sigma_{z}
\end{array}
\right]
=
\left[
\begin{array}{ccc}
0 & 1 & 2\\
1 & 1 & 1\\
2 & 1 & 0
\end{array}
\right]
\]
\begin{array}{ccc}
\sigma_{x} & \tau_{xy} & \tau_{xz}\\
\tau_{yx} & \sigma_{y} & \tau_{yz}\\
\tau_{zx} & \tau_{zy} & \sigma_{z}
\end{array}
\right]
=
\left[
\begin{array}{ccc}
0 & 1 & 2\\
1 & 1 & 1\\
2 & 1 & 0
\end{array}
\right]
\]
特征值问题
求主应力,即为求应力张量的特征值。
\[\left|\,\boldsymbol{\sigma}-\sigma\boldsymbol{I} \,\right| = 0
\]
\]
或
\[\left|
\begin{array}{ccc}
-\sigma & 1 & 2\\
1 & 1-\sigma & 1\\
2 & 1 & -\sigma
\end{array}
\right|
=
(1-\sigma)\sigma^2 + 2 + 2 - 4(1-\sigma) + \sigma + \sigma = 0
\]
\begin{array}{ccc}
-\sigma & 1 & 2\\
1 & 1-\sigma & 1\\
2 & 1 & -\sigma
\end{array}
\right|
=
(1-\sigma)\sigma^2 + 2 + 2 - 4(1-\sigma) + \sigma + \sigma = 0
\]
整理得
\[-\sigma^3 + \sigma^2 + 6\sigma = -\sigma(\sigma-3)(\sigma+2) = 0
\]
\]
主应力
得到三个主应力分别为
\[\left\{
\begin{array}{rcr}
\sigma_1 & = & 3\\
\sigma_2 & = & 0\\
\sigma_3 & = & -2
\end{array}
\right.
\]
\begin{array}{rcr}
\sigma_1 & = & 3\\
\sigma_2 & = & 0\\
\sigma_3 & = & -2
\end{array}
\right.
\]
Python3代码求解
符号运算求特征值
- 调用 Python 下的 sympy 模块
from sympy import init_printing, Matrix
init_printing(use_unicode=True)
Matrix对象表示应力矩阵
# 生成矩阵对象
sigma = Matrix([[0, 1, 2], [1, 1, 1], [2, 1, 0]])
sigma
\[\left[\begin{matrix}0 & 1 & 2\\1 & 1 & 1\\2 & 1 & 0\end{matrix}\right]
\]
\]
求特征值
- 前已求得三个主应力分别为
\[\left\{
\begin{array}{rcr}
\sigma_1 & = & 3\\
\sigma_2 & = & 0\\
\sigma_3 & = & -2
\end{array}
\right.
\]
\begin{array}{rcr}
\sigma_1 & = & 3\\
\sigma_2 & = & 0\\
\sigma_3 & = & -2
\end{array}
\right.
\]
- 调用 Matrix 对象的 eigenvals 方法
sigma.eigenvals() # 求特征值
\[\left \{ -2 : 1, \quad 0 : 1, \quad 3 : 1\right \}
\]
\]
- 冒号后的数字表示一重特征值
求特征矢量
- 调用 Matrix 对象的 eigenvects 方法
sigma.eigenvects()
\[\left [ \left ( -2, \quad 1, \quad \left [ \left[\begin{matrix}-1\\0\\1\end{matrix}\right]\right ]\right ), \quad \left ( 0, \quad 1, \quad \left [ \left[\begin{matrix}1\\-2\\1\end{matrix}\right]\right ]\right ), \quad \left ( 3, \quad 1, \quad \left [ \left[\begin{matrix}1\\1\\1\end{matrix}\right]\right ]\right )\right ]
\]
\]