欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-19 20:33:03
问题 已知某应力张量的分量为 $$ \sigma_{11}=3,\quad\sigma_{12} = \sigma_{13} = 1, \quad \sigma_{22} = \sigma_{33} = 0, \quad\sigma_{23} = 2 $$ 求 1、全部主应力 2、最大主应力对应的主 ......

问题

已知某应力张量的分量为

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

    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}}\]

    参考