首页/文章/ 详情

有限元基础知识:大转角(Finite rotation)

1月前浏览137

小转角 vs. 大转角

在小变形、小转角有限元分析中,我们默认转角足够小(    ),那么这种假设就有如下的性质    , 并且由于转动足够小,转角向量可以进行累加

那么对于大转角情况就完全不同了,转动这个东西不像平动,处理起来就很麻烦,请看下边这个案例:从这个案例中我们可以看到不同的转动顺序最后得到的物体状态是不同的,所以可以认为转动是没有“交换律”的,而对于大的转动,由于在三维空间中转动轴的不同(2D下xy平面内由于旋转都是基于z轴会简单非常多),一般情况下转角向量也不能直接累加。

以上的这些就引出了我们在计算大转动的情况下,要格外的注意,这里有限元和多体动力学都是一样的,需要考虑大转角的一些计算方法,下边展开来说。

轴角 (angle axis)

首先说个概念轴角,对于壳单元的转动自由度    ,这也就对应着我们每个壳单元节点的3个转动自由度,我们可以定义轴角的方向向量为

 
,轴角的大小为   , 大概就是如下图所示的意思其实稍微想一下就可以理解,空间中的转动都可以表述为绕某个“轴向量”转动一定的角度的形式。

通过轴角的定义,我们可以通过罗德里格斯公式(Rodriguez formula)计算出来旋转矩阵  对于一个向量的旋转我们有以下的公式:  

那么这样我们就得到了一个向量(可以是表示位置、也可以是表示位移)转动后的表达。

如何计算大转角的组合

这里有个问题,就是假如一个物体第一次转动了    ,而第二次转动了    ,那么他最终的位置相对于第一次转动前的初始位置,是转动了    吗?就像我们通常处理位移那样?

答案当然是否定的,当然小变形的时候我们通常做这样的简化,那么来看看大转角下呢,其实依次的转动的数学表达是

 

即最终的转动矩阵是由两次的转动矩阵乘得到,那么我们就可以通过最终的旋转矩阵    得到组合的转动向量    ,这个从旋转矩阵到转动向量的变化可以在任何讲这个类型的文献中看到,具体推导这里不再证明,其实就是一个逆的罗德里格斯公式的过程。

那么到这里我们就得到了大转角组合后的转角,如果大家写的是大转角的有限元算法,一定要注意这个地方。

旋转的变分:

由于有限元、刚体动力学中我们经常需要一个物体 位置、位移的变分去进行诸如约束方程、能量方程的推导,对于上述这种一个向量在旋转后的变分可以表示为

 

此外,我们用线性化后的转角向量来表示    的变分,则可以表示为:

 

这里我们可以认为    是一个极小的角度扰动量,但却是 “不可累加”的。

由于    那么我们可以得到

 

这里注意啊,这个线性化后的转角向量    虽是一个极小的转角扰动量,其却不是“可累加”的    ,然而他们之间却是有联系的,其公式可以表示为:

 

其中:

具体这个公式的证明还是比较麻烦的,大家可以先默认有这么一个关系,后续去查阅相关大转角的文献。那么呢

 

至此,我们就可以将上述公式运用在有限元中的变分推导中,我们就可以或建立基于    的公式,或基于建立    的公式,只是两者对于求解出来的转角是否可以累加是要不同对待的。

对于有限元的方程我们现在就可以通过以上的公式建立起转动后位置向量的变分,进行单元的一些求解计算,并通过诸如罚函数、拉格朗日方程等方法进行一些约束的施加。这些在大变形的梁、壳单元与Joint,连接、刚体动力学中都应用广泛。

当然,以上各个步骤还可以用四元数进行表达(多体经常这么干),具体计算会更加简单方便。有限元中,由于梁、壳单元的传统小变形的处理方式与轴角的表示方式有类似之处,所以一般以轴角方式进行存储与计算,今天由于篇幅限制先到这里,未来讲一下上述过程的四元数表达。



来源:大狗子说数值模拟
多体动力学
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-12-13
最近编辑:1月前
大狗子说数值模拟
博士 传播国际一流的数值模拟算法
获赞 5粉丝 5文章 41课程 0
点赞
收藏
作者推荐

我所常用的单元:桁架+梁

今天大雨飞机延误,在机场继续这个系列。梁与桁架单元相比实体单元有更多的假设,单元类型上也有很多的迷惑性。下面简述一下我常用的桁架与梁单元。桁架:T3D2:空间2节点桁架单元,3D是空间的意思,2代表两节点,采用线性插值,对于桁架(只承受轴向力)足够了,虽然也有T3D3,但我从来没用过。梁单元:1.B31,空间(3代表3D)一阶Timosenko梁,考虑了截面的剪切变形,梁节点的位移转角均采用线性(1阶)插值,一般用来模拟短粗梁,也可以用来模拟细长梁,当模拟细长梁的时候,精度会比B32与B33低。2.B32,空间二阶Timosenko梁,考虑了截面的剪切变形,梁节点的位移转角均采用二次插值,可以有效的解决Timosenko梁的剪切自锁问题,一般模拟短粗梁。3.B33,Euler梁单元,不考虑剪切变形,一般用来模拟细长的梁,由于其不考虑剪切变形,对于短粗梁则得不到准确的结果,由于Euler梁单元采用3次的Hermite插值,对于细长梁往往可以通过较少的单元得到更高的精度。4.B31OS,B32OS:开放截面的一阶二阶Timosenko梁单元,那么什么叫开放截面呢,开放截面对应的是闭合截面,闭合截面就是我们最常用的那些圆形、矩形、箱型、环形,而对于C型、L型、工字型、T型则属于开口截面梁,理论上需要用带OS的单元类型才能仿真的更为准确,但是现实中很多都直接用B31与B32,并不会过多的关注截面是否为开口截面。不同于正常梁单元的每个节点6个自由度(3个平动、3个转动),开口截面梁每个节点有7个自由度(3个平动、3个转动、1个截面翘曲)。以上就是我常用的一些梁、桁架单元,之后会详述Timosenko梁单元的剪切自锁与Euler梁的Hermite插值。对于梁单元的大变形、大转角实现则有非常多的说法,如果大家感兴趣,未来也可以讲一讲这方面的内容。来源:大狗子说数值模拟

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈