在小变形、小转角有限元分析中,我们默认转角足够小( ),那么这种假设就有如下的性质 , 并且由于转动足够小,转角向量可以进行累加。
那么对于大转角情况就完全不同了,转动这个东西不像平动,处理起来就很麻烦,请看下边这个案例:从这个案例中我们可以看到不同的转动顺序最后得到的物体状态是不同的,所以可以认为转动是没有“交换律”的,而对于大的转动,由于在三维空间中转动轴的不同(2D下xy平面内由于旋转都是基于z轴会简单非常多),一般情况下转角向量也不能直接累加。
以上的这些就引出了我们在计算大转动的情况下,要格外的注意,这里有限元和多体动力学都是一样的,需要考虑大转角的一些计算方法,下边展开来说。
首先说个概念轴角,对于壳单元的转动自由度 ,这也就对应着我们每个壳单元节点的3个转动自由度,我们可以定义轴角的方向向量为
,轴角的大小为 , 大概就是如下图所示的意思其实稍微想一下就可以理解,空间中的转动都可以表述为绕某个“轴向量”转动一定的角度的形式。那么这样我们就得到了一个向量(可以是表示位置、也可以是表示位移)转动后的表达。
这里有个问题,就是假如一个物体第一次转动了 ,而第二次转动了 ,那么他最终的位置相对于第一次转动前的初始位置,是转动了 吗?就像我们通常处理位移那样?
答案当然是否定的,当然小变形的时候我们通常做这样的简化,那么来看看大转角下呢,其实依次的转动的数学表达是
即最终的转动矩阵是由两次的转动矩阵乘得到,那么我们就可以通过最终的旋转矩阵 得到组合的转动向量 ,这个从旋转矩阵到转动向量的变化可以在任何讲这个类型的文献中看到,具体推导这里不再证明,其实就是一个逆的罗德里格斯公式的过程。
那么到这里我们就得到了大转角组合后的转角,如果大家写的是大转角的有限元算法,一定要注意这个地方。
由于有限元、刚体动力学中我们经常需要一个物体 位置、位移的变分去进行诸如约束方程、能量方程的推导,对于上述这种一个向量在旋转后的变分可以表示为
此外,我们用线性化后的转角向量来表示 的变分,则可以表示为:
这里我们可以认为 是一个极小的角度扰动量,但却是 “不可累加”的。
由于 那么我们可以得到
这里注意啊,这个线性化后的转角向量 虽是一个极小的转角扰动量,其却不是“可累加”的 ,然而他们之间却是有联系的,其公式可以表示为:
其中:
具体这个公式的证明还是比较麻烦的,大家可以先默认有这么一个关系,后续去查阅相关大转角的文献。那么呢
至此,我们就可以将上述公式运用在有限元中的变分推导中,我们就可以或建立基于 的公式,或基于建立 的公式,只是两者对于求解出来的转角是否可以累加是要不同对待的。
对于有限元的方程我们现在就可以通过以上的公式建立起转动后位置向量的变分,进行单元的一些求解计算,并通过诸如罚函数、拉格朗日方程等方法进行一些约束的施加。这些在大变形的梁、壳单元与Joint,连接、刚体动力学中都应用广泛。
当然,以上各个步骤还可以用四元数进行表达(多体经常这么干),具体计算会更加简单方便。有限元中,由于梁、壳单元的传统小变形的处理方式与轴角的表示方式有类似之处,所以一般以轴角方式进行存储与计算,今天由于篇幅限制先到这里,未来讲一下上述过程的四元数表达。