首页/文章/ 详情

TexGen复合材料织物建模:一个高校课题组的工业软件开发故事

1月前浏览412


关键词:复合材料,立体织物,建模,诺丁汉大学,TexgGen软件

Ps:全文科普写法,复合材料行业外的人也能读懂。

国内一提起开发工业软件,很多人第一感觉就是“高大上”,似乎离自己很遥远。即便是力学相关专业的人,也很少有人萌生自己去开发的想法。

长期以来,大家的主要关注点在“学习使用”国外软件上,稍微高阶点的操作,也不过是搞一些二次开发。

这当然和我们的发展阶段有关系,前20年,航空、航天、土建、机械等行业蓬勃发展,海量的研发科研资金洒下。掌握现有国外商用软件,在有个还不错的学校或者院所平台,就足以去接一堆项目,吃喝不愁。

相比之下自己开发软件,难度高不说,也没有市场,自然没有动力去做。

除此之外,工业软件姓“工”还是姓“软”也是大家的纠结点之一,搞力学、机械的,感觉开发软件不是自己的事情。搞软件工程的,又不了解物理机理。

因此,综合各方面原因,我们天然的就把自己放在了软件使用者的视角上。

实际上,开发工业软件并没有我们想象那么难。至少当我们决定做,就已经成功了不少。一个高校课题组,实质上就具备了开发行业中小型工业软件的基本能力。

本文就以著名的TexGen复合材料立体织物建模软件的故事为例,看看一个高校课题组是如何开发出成功的工业软件的。

1. 立体织物与TexGen

首先简单科普一下立体织物。常用的复合材料构件,被称作“层合板”,它一层一层按照一定的方向铺起来。

这种结构有点很多:设计简单,加工方便。即便没有现代化的铺丝机、热压罐设备,自己剪裁、刷胶、手糊也能制作出很多部件。我在学校读书的时候,基础的拉压弯剪试验件都是自己手搓的。

但是层合板有个巨大力学劣势,就是长期使用后,层与层之间容易脱粘,出现分层现象。

于是,有人就把纺织领域的纺织技术用在了复合材料材料上,通过在厚度方向加入贯穿不同层的纤维束,把不同的层“穿起来”,这样就不容易分层了。于是就有了所谓的立体织物。

2.5D立体织物

由于这个优点,现在最先进的航空发动机上开始使用立体织物复合材料。

纺织属于轻工业,但是复合材料的应用领域很多在航空航天汽车这些重工业领域。因此,立体织物也是轻重工业结合的典范。

立体化的织物,意味着纤维的方向可设计性大大增加。在设计中,织物的建模就成了一个难题。

TexGen软件就是在这个背景下,从90年代末,由英国诺丁汉大学逐渐开发完成。它可以通过简单的界面交互实现织物的快速建模、网格划分,同时也开放了Python二次开发接口供用户进行自定义建模,目前被广泛应用于航空航天、汽车和纺织工业中

TexGen软件

2. 诺丁汉大学  Andrew Long(安德鲁·朗)教授

Andrew Long 教授是诺丁汉大学复合材料制造领域的顶尖学者(曾任工程学院副院长)。他在 20 世纪 90 年代末前瞻性地意识到,要准确预测复合材料的力学行为,必须先在计算机中精确建立纺织纤维的 3D 几何模型。他是 TexGen 项目的总负责人和历代开发者的导师。

1998 年,在英国工程与物理科学研究理事会(EPSRC)项目的资助下,安德鲁教授启动了该项目。最初的算法和 Version 1 代码由 François Robitaille 博士和 Ben Souter 完成。2002 年,Martin Sherburn (马丁·舍伯恩)在其本科毕业设计中将软件重写为 Version 2。此时,软件仅在研究组内部及少数合作伙伴之间闭源共享。

课题组老板决定了一个课题组的发展方向,是做工业上有用且立马就能用的东西,还是做一个自娱自乐发几篇论文的东西?

高校课题组开发工业软件的第一个条件达成:大老板要搞,并且是真搞。

3. 课题组“大师兄” Martin Sherburn(马丁·舍伯恩)

每个课题组在一定的时期都有一个“大师兄”,大师兄啥都会,代师授艺。马丁就是这样的“大师兄”。

马丁本科阶段就参与了 TexGen v2 的重写工作。在攻读博士期间,为解决早期TexGen的平台架构限制,将 TexGen 完全重构为跨平台、模块化且独立于特定平台的代码,并在 SourceForge 上以 GPL 开源协议正式发布 Version 3。这一举措让 TexGen 的下载量和国际学术影响力爆发式增长。

需要指出的,马丁并不是计算机专业的学生。但是本科阶段具有极强的可塑性,只要具有一定的代码和数理基础,就可以参与到开发工作中了。

我们前面介绍的TexGen功能可以看出,这个软件从技术上来说最根本的就是几何算法:

(1)纤维的截面、方向;

(2)纤维之间的空间关系;

(3)空间的网格离散技术。

高等数学和解析几何知识就可以开发大部分模块了。

有趣的是,马丁博士毕业后并没有继续从事立体织物研究。早在学校期间,他就对游戏开发感兴趣,并一直在以业余身份从事游戏开发工作,学习从零开始制作游戏所需的所有基本技能。

毕业后,马丁决定投身游戏行业。目前在从事计算机系统内核开发和嵌入式系统的开发。

其实科研搞深入了,无非就是道与术,数学、力学是是我们的道。软件开发应用,就是术了。有扎实的“道”,自然可以切换到不同的术。

4. 带娃科研两不误的Louise Brown(路易丝·布朗)

路易丝的经历更为传奇。她本科学习的是机械与复合材料工程。上大学时便开始接触编程,并逐渐对编写软件产生了兴趣,在攻读博士学位期间,她意识到成为一名软件工程师要比成为一名机械工程师更有前途。

早期在诺丁汉大学完成了关于“纤维缠绕工艺”的博士学位,毕业后,她曾在计算机系工作,开发用于工业刺绣机的自动化 CAD 设计工具。

后来女儿出生后,还经历了一次手术。为照顾女儿,路易丝决定在家“兼 职”。

当时她的一位同事曾创办了一家企业,专门开发用于制作十字绣等手工艺品的软件。因此,路易丝度过了一段快乐的时光,期间兼 职编写与编织、梭织花边、拼布相关的软件。

这份工作非常灵活,因此进展得颇为顺利。随后路易丝又找到另一份工作,负责为旅行证件(如护照、旅行文件等)绘制识别图案。然而,不久被裁了。

一个偶然的机会,她看到了一则招聘广告:寻找一位软件工程师来负责管理一个开源软件项目。

该项目就是TexGen。

就这样,整整13年,兜了一圈又回到了科研,回到了读博士学位的复合材料小组。从社会上回到学校,就要搞发 论文、申请基金那一套。当时路易丝没有多少论文,更没有高影响因子的论文。

但是,她长期积累的织物编程技术正是TexGen所需要的。因此她仍然成功申请到了科研基金。这种奇遇在我们这,基本是不可能发生的。

就这样路易丝一边开发TexGen,为 TexGen 引入了 Python API 接口、先进的自动网格划分技术,并重点开发了针对航空航天领域日益复杂的 3D 编织物(3D Weaves)的建模功能。

另外一方面,路易丝给学生教授c语言、Matlab编程等课程,可以说是国际复合材料软件工程界最具代表性的女性科学家之一

路易丝的经历也反映出高校课题组开发工业软件的一个困境:铁打的软件流水的兵。一个软件如果缺乏长期维护、升级,也是很难发展的。

课题组的人不断的进进出出,未必就刚好有能接的上的人持续进行软件开发。只能迫不得已从外部招聘引入人才。

5. 静界有限元的开发尝试

以前的文章中,我也提到过自研类似于TexGen的工作。作为高校课题组也可以开发出“TexGen”的佐证,我用了几个月的时间,也开发出了针对三维机织、平面机织、机织蜂窝结构建模软件。

我一个人尚且可以做出点东西,我相信,只要大家有决心有动力去做,一定可以在各个行业做出类似“TexGen”的工业软件。


来源:静界有限元
复合材料动网格二次开发航空航天汽车MATLABpython材料科普游戏试验纺织
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-07-13
最近编辑:1月前
静界有限元
博士 签名征集中
获赞 27粉丝 4文章 58课程 0
点赞
收藏
作者推荐

静界有限元结构仿真技术一览

关键词:复合材料,强度,疲劳,弹塑性,冲击,渐进失效,固化变形,UMAT,ABAQUS1. 复合材料疲劳寿命仿真(UMAT)某型接头疲劳失效扩展S-N曲线在疲劳问题中,需要区分好结构失效与单元失效、疲劳性能退化与失效性能退化。结构失效,指的是整个结构丧失承载力或者功能性的指标不足。疲劳问题中,结构失效的判断方式有:(1) 失效单元的比例达到一定阈值。(2) 失效单元数量发生激增。(3)结构变形量突增。(4) 求解不再收敛。为了安全起见,一般这些准则可以同时使用,最终取保守值。结构的失效并不在子程序中体现,而是通过后处理识别。单元的失效则要简单许多,通过强度准则即可进行判断。这是在子程序中实现。疲劳性能退化指的是随着载荷循环次数的增加,材料性能逐渐退化。失效性能退化指的是在疲劳循环加载过程中,某些单元通过强度准则判断失效发生,对其性能进行的退化处理。基于ABAQUS UMAT,嵌入材料疲劳循环次数-性能折减模型、失效-性能折减模型,再配合后处理即可完成复合材料结构疲劳寿命的预测。然而在疲劳分析前,通常需要完成静强度的分析,这样我们才能知晓疲劳加载的载荷是失效载荷的百分之多少。通过调整载荷比例,就可以得到结构的S-N曲线。 2. 复合材料静强度仿真(UMAT)相比于疲劳分析,静强度分析要简单许多,大致思路前面已经介绍。它同样要处理好结构失效与单元失效的关系。但是对于层合复合材料来说,都会面临ABAQUS 复合材料壳与子程序无法共用的问题。所以开发快速的实体层合单元前后处理工具可以帮助我们快速完成仿真。自研层合板实体单元快速建模工具3. 复合材料低速冲击仿真(UMAT)背面仿真结果正面仿真结果接触力结果冲击问题的模拟首先要做好试验工况的分析。冲击仿真,无论是想把失效形式、失效分布模拟出来,还是把接触力响应曲线模拟出来,都很有难度。这是由接触问题本身的复杂性以及试验的分散性决定的。并且,显示动力学求解速度慢,计算耗时长,仿真结果影响因素多。要准确知晓冲击能量、冲头质量,从而换算出冲击速度。另外根据研究问题的侧重不同,来选择冲击失效单元的处理。如果侧重于接触力的仿真,最好不要做单元删除。如果侧重“冲破”效果的仿真,在使用单元删除技术的时候,要有意识的增加接触区域单元的密度。即便所有设置都尽可能贴近试验设置,最后的仿真结果仍有可能有试验差异明显。4. 复合材料高速冲击损伤仿真(VUMAT)子弹打靶效果模拟高速冲击作用下,材料的模量和强度有了一定程度的“增强”,并且增强效果与应变率有关。所谓应变率就是应变的变化率:DSrain/Dt。这时,材料的刚度K会受到应变率的影响。造成这个现象的原因比较复杂,应力在材料内部是以波的形式传播,高速问题中还要考虑能量守恒,且不同的材料阻抗等参数也不同,这些因素共同使冲击速度影响材料本构关系。5. 复合材料冲击后剩余强度模拟(UMAT)在模拟冲击后,我们会得到复合材料的失效单元分布。如果要继续对失效后的结构进行强度评估,就需要对仿真结果进行二次处理,获取失效单元的位置,并将这些区域删除,重构一个新的模型用于强度分析。并且大部分情况下,冲击试验件尺寸比较大,做剩余强度试验的时候需要对试验件进行切割。这也是通过二次处理重构模型完成。静界有限元自研相应的建模与前后处理工具,可以快速完成这些工作。自研失效面积统计(不同损伤模式)工具自研冲击后模型重构工具6. 机织复合材料参数化建模与细观损伤分析仿真(UMAT)在层合板强度、疲劳等仿真技术的基础上,需要转进到机织复合材料力学分析的时候,最大的拦路虎就是建模。所谓的“多尺度分析”最关键的就是细观尺度这一步。这里建模有两个问题需要解决:1. 理解织物周期性排布规律,从而建立纱线的轨迹模型。2. 纤维束轨迹方向是变化的,需要准确建立它每个的局部坐标系。另一方面就是确立纱线和基体连接关系的处理方式。从实际经验看,对于刚度和强度模拟,引入嵌入式约束的方法完全可以得到良好的精度,并且可以明显降低网格量,提升仿真效率。这是因为,该方法无需对浸润物的几何模型进行布尔运算,大大降低了建模和网格离散的难度与工作量。嵌入式约束静界有限元针对常见的2.5D机织复合材料,开发了专门的自动建模与网格离散工具,可以快速生成inp文件用于ABAQUS导入。并且对于复杂的蜂窝机织复合材料材料,也可以实现快速建模功能。机织蜂窝复合材料建模工具2.5D机织复合材料建模工具纤维的局部材料坐标系自动定义7. 结构弹塑性本构(VUMAT/UMAT)试验件拉伸弹塑性模拟这里讲的弹塑性,指的是宏观唯象学弹塑性,不涉及晶体塑性。对于金属材料弹塑性行为本构的编写,重点是要处理好塑性流动,即等效塑性变量如何分配到各个方向上,从而能够实现应变、应力的更新。掌握常用的 JC 本构模型,基本可解决工程中大部分弹塑性问题的分析。在编写子程序的时候,引入极限应变判据,就可以把弹塑性和失效结合起来,模拟弹性-塑性-断裂的完整过程。8. 蠕变分析(UMAT)简单理解蠕变,就是结构在外载荷不变情况下,变形随着时间推移而逐渐增加。通常蠕变都会和热关联,高温等恶劣服役环境下,材料性能缓慢下降,较容易产生蠕变现象。它和疲劳有点像,主要区别在于,疲劳强调“交变载荷”工况,而它强调载荷不变,性能下降。从载荷变形曲线看,它和屈服可能更像,有些材料的屈服会呈现载荷基本保持不变,但是变形却显著增加。但是也是有区别的,屈服强调载荷接近材料极限,且不可逆,短时间内发生。而蠕变一般是结构正常服役工况,应力水平不高,且要有较长时间周期,比如地基的沉降现象。蠕变兼具了疲劳和屈服的一些特点。同样地,在编写子程序的时候,也是在两者基础上更容易实现。首先是应变的处理。借鉴弹塑性的编写经验,蠕变应变和塑性应变类似,也属于非机械应变,并不参与应力的增长。更关键的是,在编写弹塑性程序的时候,就会接触到“流动方向”这个概念,它主要解决的是三维模型中,等效应变如何分配到各个方向的问题。因为本构关系需要通过矩阵来运算,应变列向量有各个方向的应变,一个等效应变值,必须分配到每个方向上才行。9. 固化变形模拟(多种子程序合用)复合材料从固化前的“软”的状态到固化后“硬”的状态的变化过程中,由于热、化学收缩、约束限制、模量变化等等因素的共同作用,会在结构内部累积内应力,导致在脱模后发生形变,从而影响到装配,这就是固化变形问题。为了解决这个问题,就需要多种子程序一同使用,以实现多场耦合。考虑到该类仿真的技术保密,静界有限元针对固化变形问题,仅提供仿真服务,不提供子程序。10. 写在最后无论哪种仿真,最后都需要试验的支持与验证。做试验前就应该先做仿真,确定大致的结果量级和趋势。然后在试验过程中,详细记录试验条件,以确定仿真中的设置是否有偏差。最后再根据实际试验条件,重新完善仿真。仿真结果的处理,尤其数据的处理,大部分情况是和试验结果处理方式是一样的。可以说,弄通了试验,就基本懂得了“仿真工程化”。来源:静界有限元

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