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

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

作者头像
py3study
发布2020-01-21 13:20:38
6220
发布2020-01-21 13:20:38
举报
文章被收录于专栏:python3

问题

已知某应力张量的分量为

\[ \sigma_{11}=3,\quad\sigma_{12} = \sigma_{13} = 1, \quad \sigma_{22} = \sigma_{33} = 0, \quad\sigma_{23} = 2 \] 求

  • 1、全部主应力
  • 2、最大主应力对应的主方向
  • 3、求方向矢量为 $\boldsymbol{n} = \left(0, \dfrac{1}{\sqrt{2}}, \dfrac{1}{\sqrt{2}}\right)$ 的斜面上的正应力 $\sigma_n$ 和剪应力 $\tau_n$。

应力张量

已知应力张量有如下形式

\[ \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模块

代码语言:javascript
复制
from sympy import *
init_printing(use_unicode=True)

Matrix对象表示应力矩阵

代码语言:javascript
复制
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 方法
代码语言:javascript
复制
sigma.eigenvals()

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

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

求特征矢量

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

代码语言:javascript
复制
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}\)

代码语言:javascript
复制
T = sigma*n
T

\[\left[\begin{matrix}\sqrt{2}\\\sqrt{2}\\\sqrt{2}\end{matrix}\right]\]

正应力 \(\sigma_n = \boldsymbol{T}\cdot\boldsymbol{n}\)

代码语言:javascript
复制
sigma_n = T.T*n
sigma_n

\[\left[\begin{matrix}2\end{matrix}\right]\]

剪应力 \[\tau_n = \sqrt{T^2 - \sigma_n^2}\]

代码语言:javascript
复制
tau_n =sqrt(T.T*T - sigma_n**2)
tau_n

\[\left(\left[\begin{matrix}2\end{matrix}\right]\right)^{\frac{1}{2}}\]

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 求解
    • 导入sympy模块
      • Matrix对象表示应力矩阵
        • 1、求全部主应力
          • 2、求最大主应力对应的主方向
            • 3、求斜面上的正应力 \(\sigma_n\) 和剪应力 \(\tau_n\)
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档