Python3之弹性力学——应力张量2
问题
已知某应力张量的分量为
\[
\sigma_{11}=3,\quad\sigma_{12} = \sigma_{13} = 1, \quad \sigma_{22} = \sigma_{33} = 0, \quad\sigma_{23} = 2
\]
求
应力张量
已知应力张量有如下形式
\[ \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} 3 & 1 & 1\\ 1 & 0 & 2\\ 1 & 2 & 0 \end{array} \right] \]
求解
导入sympy模块
from sympy import * init_printing(use_unicode=true)
matrix对象表示应力矩阵
sigma = matrix([[3, 1, 1], [1, 0, 2], [1, 2, 0]]) sigma
\[\left[\begin{matrix}3 & 1 & 1\\1 & 0 & 2\\1 & 2 & 0\end{matrix}\right]\]
1、求全部主应力
求特征值
- 调用 matrix 对象的 eigenvals 方法
sigma.eigenvals()
\[\left \{ -2 : 1, \quad 1 : 1, \quad 4 : 1\right \}\]
- 冒号后的数字表示一重特征值
求特征矢量
- 调用 matrix 对象的 eigenvects 方法
sigma.eigenvects()
\[\left [ \left ( -2, \quad 1, \quad \left [ \left[\begin{matrix}0\\-1\\1\end{matrix}\right]\right ]\right ), \quad \left ( 1, \quad 1, \quad \left [ \left[\begin{matrix}-1\\1\\1\end{matrix}\right]\right ]\right ), \quad \left ( 4, \quad 1, \quad \left [ \left[\begin{matrix}2\\1\\1\end{matrix}\right]\right ]\right )\right ]\]
2、求最大主应力对应的主方向
最大主应力
\[\sigma_1 = 4\]
最大主应力对应的主方向
\[\dfrac{1}{\sqrt{6}}\left(2, 1, 1\right)\]
3、求斜面上的正应力 \(\sigma_n\) 和剪应力 \(\tau_n\)
方向矢量
\[\boldsymbol{n} = \left(0, \dfrac{1}{\sqrt{2}}, \dfrac{1}{\sqrt{2}}\right)\]
n = matrix([[0], [1], [1]])/sqrt(2) n
\[\left[\begin{matrix}0\\\frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2}\end{matrix}\right]\]
应力矢量 \(\boldsymbol{t} = \boldsymbol{\sigma}\cdot\boldsymbol{n}\)
t = sigma*n t
\[\left[\begin{matrix}\sqrt{2}\\\sqrt{2}\\\sqrt{2}\end{matrix}\right]\]
正应力 \(\sigma_n = \boldsymbol{t}\cdot\boldsymbol{n}\)
sigma_n = t.t*n sigma_n
\[\left[\begin{matrix}2\end{matrix}\right]\]
剪应力
\[\tau_n = \sqrt{t^2 - \sigma_n^2}\]
tau_n =sqrt(t.t*t - sigma_n**2) tau_n
\[\left(\left[\begin{matrix}2\end{matrix}\right]\right)^{\frac{1}{2}}\]
参考
上一篇: Django之FBV&CBV
下一篇: js异步编程的方法和原理详解