iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python3之弹性力学——应力张量2
  • 320
分享到

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

张量应力力学 2023-01-30 22:01:25 320人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

问题 已知某应力张量的分量为 \[ \sigma_{11}=3,\quad\sigma_{12} = \sigma_{13} = 1, \quad \sigma_{22} = \sigma_{33} = 0, \quad\sigma_{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}}\]

    参考

    --结束END--

    本文标题: Python3之弹性力学——应力张量2

    本文链接: https://www.lsjlt.com/news/180231.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作