前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3之弹性力学——应力张量1

Python3之弹性力学——应力张量1

作者头像
py3study
发布2020-02-10 22:42:37
6460
发布2020-02-10 22:42:37
举报
文章被收录于专栏:python3python3

题目

已知某点的应力张量为:

\[ \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] \] 并已知经过该点的某一平面上的应力矢量为零矢量,求 \(\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| = 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] \]

特征值问题

求主应力,即为求应力张量的特征值。 \[\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 \]

整理得

\[ -\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. \]

Python3代码求解

符号运算求特征值

  • 调用 Python 下的 sympy 模块
代码语言:javascript
复制
from sympy import init_printing, Matrix
代码语言:javascript
复制
init_printing(use_unicode=True)

Matrix对象表示应力矩阵

代码语言:javascript
复制
# 生成矩阵对象
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. \]

  • 调用 Matrix 对象的 eigenvals 方法
代码语言:javascript
复制
sigma.eigenvals() # 求特征值

\[\left \{ -2 : 1, \quad 0 : 1, \quad 3 : 1\right \}\]

  • 冒号后的数字表示一重特征值

求特征矢量

  • 调用 Matrix 对象的 eigenvects 方法
代码语言:javascript
复制
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 ]\]

参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
    • 分析
      • 行列式必须为零
        • 应力张量
          • 特征值问题
          • Python3代码求解
            • 符号运算求特征值
              • Matrix对象表示应力矩阵
                • 求特征值
                  • 求特征矢量
                  • 参考
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档