首页/文章/ 详情

工程壳有限元软件研发进展:复合材料壳单元求解器

6月前浏览634


关键词:壳单元,复合材料,有限元,铺层,求解器

我为什么研发一个工程壳有限元软件一文中,我们实现了常规壳单元的研发、集成,并开发了界面和视口 交互功能。

自研工程壳有限元软件

我最初的目的就是要搞一套自己的复合材料壳有限元软件,这两天完成了第一版复合材料壳单元求解器的开发和初步验证,这里做一个情况总结。

壳单元

最顶级的工程力学思维,就是把工程问题,进行既简单又不失关键特征的简化。尤其在固体力学方面,前辈们建立了杆、梁、膜、板、壳等经典的力学模型,在实际工程中发挥着巨大的作用。

从有限元的角度看,壳单元实际上是由膜单元和板单元组合而成的单元,其中膜负责抗拉,板负责抗弯。编程的时候,需要分别完成膜和板的刚度矩阵,再把它们的刚度矩阵的子项填入壳单元刚度矩阵。

壳从几何上来说,是没有厚度的,厚度只是作为参数体现在刚度矩阵中,由此获得的比实体单元更少的单元和计算量。

最常用的壳单元有三角形和四边形两种。考虑到三角形划分网格的便利性,我从规划软件的时候,就定下来开发三维的三角形壳单元。

膜部分整体来说较为简单,它的刚度矩阵很多文献上都有现成结果,直接拿来用就行。麻烦的是三角形板单元,其几何矩阵非常复杂,有些文献推导出来的显式结果甚至是错的,我花了很大力气才完成这部分的开发。

复合材料壳单元

最常用的复合材料结构就是层合板,层合板的力学分析天然适合用壳单元来做。原因是:

(1) 实际的结构铺层多,用实体单元计算量太大;

(2) 壳没有实际的几何厚度,相应的复合材料的铺层角度、厚度等等信息都可作为参数体现在刚度矩阵,和复合材料力学理论内核一致;

(3)大部分的层合板结构厚度远远小于面内尺寸,适配壳的应用场景。

这里面的第二条尤为重要。根据复合材料力学,求解层合板刚度特性的基本思路是:

(1)认为单层板是横观各向同性的,并建立它的刚度矩阵;

(2)根据铺层角度,得到转换矩阵,计算当前层在整体坐标系下的刚度矩阵:

(3)根据每一层的刚度矩阵、厚度,积分得到层合板的载荷、变形关系:

以上是复合材料力学的内容,而这个过程也是我们开发复合材料壳单元的过程。和各向同性壳相比,复合材料壳除了拉伸(A矩阵)、弯曲(D矩阵)部分,还存在拉弯耦合(B)部分。

在编程的时候,就需要按照复合材料力学的过程,先完成A、B、D矩阵的编写,然后A传给膜部分,D传给板部分,最后组集壳的时候,把拉弯耦合B再加进去。

为什么ABAQUS铺层模块和UMAT无法同时使用

在完成复合材料壳单元的开发后,我较为充分理解了为什么ABAQUS铺层模块和UMAT无法同时使用。

UMAT的逻辑是,输入材料参数(单向),然后计算刚度矩阵,更新应力。铺层模块的逻辑是,定义铺层角度、厚度、材料(单向),自动计算出A、B、D矩阵,然后根据壳模型,得到层合壳的刚度矩阵。

我们自始至终输入的都是单向板的材料参数,而单元在几何上只有一层,因此在UAMT中,我们无法获得层合板的参数。

即便未来UMAT开发了获取层合后材料参数的接口,我们还得自己写一个膜、板、壳的代码,这已经不是自定义材料(UMAT),而是自定义单元技术了。

测试验证:对称铺层

材料参数:E1=150GPa;E2=10GPa;u12=0.3;G12=7.9GPa。

对称铺层:[0/90/90/0]

单元数量:2。

算例设置

位移、应力结果如下,从结果可以看出自研复合材料壳结果与商用软件结果一致。

自研求解器结果:位移

某商用软件结果:位移

自研求解器结果:应力S11包络

某商用软件结果:应力S11包络

测试验证:非对称铺层,拉弯耦合效应验证

非对称铺层:[0/90/0/90]

位移、应力结果如下,从结果可以看出自研复合材料壳求解器结果与商用软件结果一致。

非对称铺层存在拉弯耦合效应,从结果可以看出,在面内仅有拉伸载荷情况下,在面外方向出现了远大于面内方向的弯曲变形。自研复合材料壳求解器可以精准模拟出这种效应。

自研求解器结果:合位移

某商用软件结果:合位移

自研求解器结果:拉伸方向位移

某商用软件结果:拉伸方向位移

自研求解器结果:厚度方向位移

某商用软件结果:厚度方向位移

后续工作

后续我们将嵌入常用的强度准则(蔡吴、哈辛),并提供刚度折减定义,实现复合材料渐进损伤模拟。

然后将复合材料壳单元求解器,集成进我们的交互界面,并增加更复杂工况(离心力、压力、温度应力)的定义功能。进一步的,还可以和优化算法集 合,对工程实际结构进行铺层优化设计。


来源:静界有限元
Abaqus复合材料二次开发UM理论材料单元技术试验
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-02-12
最近编辑:6月前
静界有限元
博士 签名征集中
获赞 27粉丝 4文章 58课程 0
点赞
收藏
作者推荐

我为什么研发一个工程壳有限元软件

进展自研的工程壳有限元软件在有一搭没一搭的开发中,第一次跑通了前后处理。首先说说我搞这个软件的目的。实际上,杆、梁、板、膜、壳、实体单元求解器我都写过。已经在实际工程应用的是梁单元,我用它解决了一些叶轮机械设计的问题,集成为了一些专用软件。对于我心心念念的复合材料力学问题,用实体单元开发会快一些,但是考虑到目前存在的UMAT/VUMAT这些子程序与ABAQUS 铺层模块互斥的问题,我想搞一个自己的复合材料壳,支持批量定义铺层,还能够把我之前写的一些损伤、失效、疲劳的本构放进去,计算效率还远远高于实体单元,这样就具有了实际工程价值。所以我称它是工程壳有限元。为什么说用实体单元开发会快一些呢?在仿真中,壳的计算效率高,网格划分起来也简单,给人的感受是好像壳比实体要简单。然而在开发上,恰恰相反。实体单元的刚矩阵简单,而壳是由膜单元和板单元两部分合并构成的,尤其是三角形单元,其形函数非常复杂。看了不少论文专门做这个推导,有些甚至推导到最后还是错的。所以为了搞壳单元,被迫先去搞了膜和板单元。开发思路在搞求解器的同时,我的主要精力放在了视口 交互上。几年前我就会基于现有的库做三维显示了,如果只是显示一下模型和结果,这个对我不难。视口 交互但是既然要做工程软件,要有些实用性。我们在用其他商用软件的时候有个明显的体会,如果不能总视口中框选、点选、按角度选进行节点或者单元的拾取,我定义边界条件,或者修改其他设置的时候会有多么麻烦。由于节点的拾取频率最高,所以框选、点选、按角度选,都要做,除了能选,还要选中后高亮,还要可以选中后撤销指定的点。用惯了别的商用软件,感觉这些功能很基础,真到自己开发的时候,这些反而是最难的。为什么难呢?或者说开发中大型工业软件的难点在哪呢?有人说求解器,有人会说算法。在我看来,最难的是数据结构。比如一个单元在视口中是怎么表达的,在求解器输入中如何表达,在结果中如何表达,他们之间又是如何映射的。当你选中一个节点的时候,它怎么知道自己被选中了,它的编号是多少,你拿到这个数据存在内存,当用户二次查看的时候,你又如何让它二次高亮上去?所以,要弄清楚,这些模型的数据在不同的模块应该如何存储、如何转换、如何调用。定义set框选选中后高亮特征标记用户在定义边界条件以后。需要针对固支、位移、载荷、弯矩等边界条件,在指定节点位置进行标记显示。有一个非常有意思的现象,当我们在ABAQUS定义Fx、Fy等点载荷的时候,他会同时显示两个方向的载荷箭头,而不是显示合力方向。以前我不理解,现在我来理解了,我们看到的箭头应该不是通过向量绘制的。应该是把其内置的图形在节点位置进行显示,同时显示多个方向的载荷箭头,在代码中实现最简单,如果搞成合力方向,还要去计算偏转角度,显示的效果也不好。当然这是我猜的,反正我也采用这个思路。包含了载荷、位移、固支约束的标记同样的问题,当更改边界条件的时候,这些标记还要自动更新,二次打开工程的时候,还要能重建这些特征。还是数据结构的难题。这也是我花了很多时间的在视口上的原因。既然迟早要做,不如趁现在,再难也要做出来。特点我借鉴了ABAQUS set的思路,凡是要事先定义边界条件的地方,必须要要先定义成set。后面定义边界条件的时候,这些set会自动出现在下拉列表供选取,并且也通过“显示”按钮进行查看。求解器难点前面讲了交互的难,实际上求解器也是个难点,难在应力求解上。前面我们提到了,壳是膜单元和板单元合并成的。在求应力应变的时候,还需要根据位移,分布在膜和板里面求应力,最后再拼起来。和实体单元比,壳和梁单元都有一个问题,就是局部坐标系和整体坐标系的转换。在做刚度矩阵的时候,需要从局部到整体。在计算应变的时候,又要先把整体坐标系的位移转换到局部,然后在局部求应变。总之弯弯绕绕很多。仿真效果平面模型我们软件的位移结果某商用软件位移结果我们软件的应力结果某商用软件应力结果曲面叶片模型 我们软件的位移结果某商用软件位移结果我们软件的应力结果某商用软件应力结果来源:静界有限元

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