最近又开始翻之前的一本流体力学书,Batchelor写的《An Introduction to Fluid Mechanics》,看到介绍流体微团张量部分,写到主轴张量只有正应力没有切应力,联想到之前的学习中一直有这样的困惑,因此多花了些时间回顾了一下以前的知识,也终于将这部分知识串联了起来,决定在知乎写一写,记录下来,以飨后来者。

Batchelor在书中这一部分是这样讲解的。首先他从量纲分析的维度证明了切应力基本定理

,从而得到了一个微元体上的应力张量。当旋转微元体到一定角度时,切应力消失,微元体上只有正应力,此时微元体各个面所指的的方向叫做微元体的主轴。主轴上的正应力可表示为
,并且有
,也就是不管微元体怎么转,应力张量“矩阵”的迹都是相同的。当微元体方向指向主轴时,将张量分解成两个部分,

右边第一项中三个面上都只有一个正应力且大小方向相同,第二项中三个面的正应力大小不同且至少有一个的方向与其他两个相反,迹为零。那么右边第一项的矩阵就叫做各向同性应力,流体静止时就只有它,也就是压力,用图像表示就是把一个球在各个方向上施加相同大小的力,如下图(a)所示;第二项是非各向同性压力,只有在流体运动时产生,用图像表示就是在球的不同主轴上施加大小不同的压力或拉力,如下图(b)所示。

(a)沿各个方向相同的各向同性应力;(b)沿各主轴方向不同的非各向同性应力

如上所述,流体微团的应力张量主要有几个特征:

  1. 有应力主轴,在主轴方向上切应力消失;
  2. 应力张量矩阵的迹为定值;
  3. 可以分解成各向同性和非各项同性应力张量,各向同性应力张量无论怎样旋转坐标系都不变,非各向同性张量则与坐标系有关。

作为本科硕士都学过流体力学的“资深”学渣,每每看到这里都会露出一丝微笑,表示作者怎么说都对。但因为这次是主动翻开课本,再加上我线代基础还比较好,不仅产生了几个疑问:首先,应力张量就是个矩阵,对称矩阵怎么旋转能成一个对角矩阵呢?其次,矩阵旋转变换后怎么保持迹不变?最后,怎么理解各向同性和非各向同性矩阵数学和图像的对应关系?为了解答这些疑问,我回顾了本科时候学的solid mechanics,并读了一点张量相关的资料,发现了我理解上的一些误区。

首先,张量表示的是一个实实在在的物理量,是在物理上客观存在不以观察角度为转移的量。因此,张量所表示的量和坐标系无关,坐标系变物理量却不会变。比如速度就是一个一阶四维张量,无论坐标系旋转、平移甚至也以一定速度随之运动都不会改变客观物体的运动速度;反之,角动量的大小则与坐标系相关,因此类似于角动量的矢量也被称为psudovector(推荐大家看这个视频什么是张量,讲的很清楚)。矩阵就是一个多维数组,和物理量没什么关系,然而,张量表示的核心思想却和矩阵变换的思想是相同的。在我的理解中,向量左乘矩阵有两种理解方式:第一种是以线性变换的视角,这时坐标系并没有改变,是向量本身改变了;第二种是向量本身不变,但观察向量的视角变了。这两种思维方式从形式上看并没有较大差异,但出发点却是完全不一样,最终结果的走向也会完全不一样。很显然,张量的旋转可以应用我们上面说的第二种理解方式。

那么,张量到底是如何表示的呢?回答是柯西应力定理。柯西应力定理描述的是一件这样的事:在一个笛卡尔坐标系内,任意一个面上的应力都可以用三个相互垂直的面上的应力表示。如下图这个在第一象限里被切了一刀切出来的四面体,斜面上的应力就可以用直角坐标系三个面上的应力表示。

柯西应力定理中的四面体

将斜面上的力用

表示,直角坐标系的三个面分别按照其法向量的方向用
表示其上的力,斜面的法向量
,那么,

这一步并不是点乘,因为

都是矢量,得到的
也是一个矢量,这每一个矢量就会在三个直角坐标轴上有分量,比如
在三个轴上的分量分别为
,分别表示垂直于x轴的面上,x、y、z三个方向的力。同样,对于
也是如此,因此一共有9个力。用矩阵的形式来表达就是,

其中

,也就是右边的第一个矩阵是个对称矩阵,里面独立的量有6个,给这个矩阵赋予物理意义后就叫做二阶张量。说到这里大家可能觉得我什么都没讲,因为这些内容和老师上课或课本写的没什么区别,该不懂的还是没懂,张量到底是个啥。别急,再多看一眼上面这个等式,他不就是一个

线性变换嘛!——把一个垂直于平面的向量变成一个表示这个平面上力的向量。

应力张量矩阵把红色的方向向量变成了蓝色的力向量

因此,应力张量矩阵就是线性变换矩阵,它是和坐标系相关的,因为这个矩阵中的行向量就是在当前坐标系下每个面上的应力大小。下一个问题:应力张量矩阵和坐标系的关系是怎样的?要回答这个问题,我们要先找到坐标变换前后的不变量。还记得上面说过的,张量的本质就是要表示一个物理量,而这个物理量不随坐标系的改变而改变,也就是上图那个蓝色箭头的小向量就是我们寻找的那个不变量。对于这个不变量来讲,坐标系可以变,但它就是它,不因他人的眼光而改变。在当前的坐标系(我们就叫当前坐标系为A坐标系好了)中,我们读到的这个物理量就是上面的

,其中
是A坐标系中该物理量的坐标,
是A坐标系中的张量矩阵或者说线性变换矩阵,
是A坐标系中这个面的法向量坐标。这时我们换一个坐标系再来看一下这个物理量,新的B坐标系是A坐标系旋转了一个角度后形成的,身处B坐标系中的人对上面的蓝色小箭头也有自己的表达,
,其中
都是用B坐标系中的坐标和应力张量表示的。那么问题就来了,虽然我们知道A坐标系中的应力张量
,怎么得到B坐标系中的
呢?如果你熟悉线性变换其实就不难,不熟悉的朋友们欢迎移步3B1B线性代数小课堂。

那么,问把大象装冰箱总共分几步?三步。这里也一样。

首先,我们给这两个坐标系的基向量都命个名,A坐标系的三个基向量就是

,B坐标系的三个基向量是
。那么,我们B坐标系的人看到的面法向量是
,在A坐标系人的眼中这个面法向量是什么样子的呢?那就是这个向量左乘一个旋转矩阵(B旋转到A),

我们把上面的旋转矩阵

记为
,因为
是正交阵,因此
,通过这一个变换,生活在B坐标系的人就知道A坐标系的人是怎么表示这个面法向量了,就好比以前战时传递的摩斯密码,你拿个密码本对应一下就出来了文字,不然光看那一堆点儿谁知道是什么意思,那么这一步就是把B的语言翻译成A中描述同样物体的语言。知道了A中对应的表达方式后,我们就可以利用在A坐标系中已有的知识对面法向量做一个线性变换,变成A坐标中力的向量,通过
。终于知道力向量的坐标值了,但这是A坐标系语言描述的,B坐标系的人看不懂,所以最后再翻译回去,翻译的方法就是再左乘一个旋转矩阵,得到
。通俗的讲我们干了一件什么事儿呢?就好比我们给计算机下发一个指令,用C++什么的让计算机执行,计算机内核必须首先将指令翻译成二进制码才能完成指令,当计算机执行完了后再次翻译成文字输出到控制台告诉我们它执行的结果。总结一下,我们想知道B坐标系中相同物理量的表达也通过这种方式,
  1. 先左乘

    把这个面在A坐标系中表示;
  2. 再左乘
    在A坐标系中把面法向向量变成力向量;
  3. 最后左乘
    把A坐标系中的力向量翻译回B坐标系中的力向量。

所以,

。也就是,

至此,我们可以回答最开始提到的为什么应力张量会有那三个性质。第一,应力主轴什么时候存在,切应力什么时候会消失。因为应力张量是一个对称矩阵,对矩阵做特征值分解就可以得到一个对角矩阵,对角矩阵主对角线上的元素就是张量矩阵的特征值,旋转矩阵就是特征向量组成的矩阵(对称矩阵的特征向量两两正交)。第二, 应力张量的迹不变。因为旋转变换后的应力张量矩阵与之前的矩阵是相似的,相似矩阵的迹不变。第三,把一个应力张量分解成各向同性和非各向同性张量

后,
,也就是分解开的两个张量可以独立进行变换。对于各向同性张量来说,张量矩阵可以写成
,经过变换后的
与原矩阵相同,因此各向同性张量不随坐标系改变,非各向同性向量和坐标系相关,换句话就是我们初中物理老师常说起的,流体中一个点的压力朝四面八方都是相同的。说了这么多,最后总结一下这篇文章题目提的问题:张量旋转不是简单的矩阵旋转,但可以用矩阵旋转相关的知识理解和解读。

最后我还要提一下当年材料力学学到的但可能已经被很多人遗忘的一个非常有用的小工具——Mohr's Circle。其实利用它可以很容易解答应力相关的很多问题,比如为什么各向同性张量不随坐标系改变,因为在Mohr's Circle上它就是一个点,没法变。如果大家已经遗忘了这个可爱的小工具,就请再重温一下这个曾经身边的小美好吧。

这是我第一次在知乎上写文章,难免有错误疏漏,欢迎大家补充指正。

利用欧拉角旋转正交_张量旋转=矩阵旋转?相关推荐

  1. 用matlab画旋转抛物面_基于MATLAB的旋转抛物面天线的几种特性的仿真

    [实例简介] 这是一篇关于基于MATLAB的旋转抛物面天线的几种特性的仿真的论文,对旋转抛物面天线的方向图.利用系数.口径截获效率和增益因子及馈源方向函数等特性进行了仿真 第5期 顾洪军,等:基于 M ...

  2. 向量 矩阵 张量_张量,矩阵和向量有什么区别?

    向量 矩阵 张量 机器学习代数 (MACHINE LEARNING ALGEBRA) Algebra is an important element of mathematics and has a ...

  3. java多线程正在旋转的_一个正在高速旋转的巨大黑洞:速度竟达到光速的一半!...

    一个超大质量黑洞最近吞噬天体留下的残骸让科学家们能够计算出这个怪物黑洞的旋转速度,计算结果令人难以置信. 研究小组成员说,这个被称为ASASSN-14li的巨大黑洞正在以至少50%的光速旋转. &qu ...

  4. linux内核怎么修改屏幕旋转方向_树莓派4—屏幕旋转

    配置:树莓派4+raspberry pi系统,HDMI显示,非触屏. 问题:想将屏幕旋转90°,按网上说的, 方法一:在config.txt文件中添加display_rotate=1,或者添加disp ...

  5. ai如何旋转画布_怎样使用AI旋转工具

    1.如下图中的图形,它都有相同的一个特点,它的特点是:都是由旋转的方法转出来的:如图所示. 2.打开[AI]:使用[矩形工具]在画布中绘制,[描边]关闭[填充]紫色:如图所示. 3.选择[旋转工具], ...

  6. 如何将四元数方向转化为旋转举证_旋转表示法(持续更新)

    旋转矩阵: 旋转矩阵转欧拉角 欧拉角: 欧拉角转旋转矩阵 function rot = rpy2rot(roll,pitch,yaw)Cphi = cos(roll); Sphi = sin(roll ...

  7. 雅可比旋转求解对称二维矩阵的特征值和特征向量

    问题描述: 给定一个矩阵,如下: A=[a11a21a12a22] A=\begin{bmatrix} a_{11}&a_{12}\\ a_{21}& a_{22} \end{bmat ...

  8. 彻底搞懂“旋转矩阵/欧拉角/四元数”,让你体会三维旋转之美

    目录 旋转矩阵 坐标变换的作用 实现坐标变换所需的数据 位姿变换 坐标变换中旋转的实质 坐标变换中平移的实质 如何计算坐标系B各坐标轴在坐标系A上的投影?(多坐标变换) 如何实现坐标变换? 欧拉角 欧 ...

  9. 三维坐标系带偏航角俯仰角_浅谈三维旋转的三种方法及差异

    概述 在3D图形学中,几何变换大致分为三种:平移变换(Translation).缩放变换(Scaling).旋转变换(Rotation),而其中又以旋转变换(Rotation)最为复杂,通常旋转变换( ...

最新文章

  1. vue 报错unknown custom element解决方法
  2. log4j linux如果日志目录不存在,Java日志库学习笔记
  3. python在函数内部有没有办法定义全局变量_修改函数内部的全局变量
  4. 浏览器如何渲染页面?
  5. java用符号断开取前面_java-如何读取断开的符号链接指向的路径?
  6. pwn学习总结(五) —— ret2dl_runtime_resolve(待补充)
  7. hadoop集群搭建过程中不适用hostname发现slave,而是通过ip
  8. SpringBoot 上传多个文件
  9. mongodb有关的研究
  10. 使用npm安装一些包失败了的看过来(npm国内镜像介绍)
  11. mysql有多少个端口号_mysql默认端口号(mysql端口号是多少)
  12. 计算机一级题库ps视频,计算机一级Photoshop题库及答案
  13. VS Code C语言开发环境配置附图版保姆教程
  14. 2022城通网盘仿蓝奏云修复版源码
  15. SteamSDK发布更新
  16. 数据结构——散列表--线性探测法
  17. 为什么安卓手机没有苹果手机流畅?
  18. 我就不信了,spring基础知识这么总结整理还拿不下大厂offer(一)
  19. Vue-组件嵌套之——父组件向子组件传值
  20. python中关于try,expect的用法

热门文章

  1. tomcat源码学习
  2. 30天敏捷结果(5):使用热图标识出重要事情
  3. C++中构造函数和析构函数
  4. 抽象类,虚方法,接口
  5. 解决maven构建webapp index.jsp报错问题
  6. Java中 EvenQueue.invokeLater用法
  7. *HDU 2108 计算几何
  8. ansible学习笔记
  9. 你的应用是如何被替换的,App劫持病毒剖析
  10. ADO.Net的小知识(连接数据库)二