有限元求解:结构应力法如何实现的网格不敏感呢?
moboyou 2025-05-24 16:57 24 浏览
一、导读
本人从大一时,上第一节力学课就开始接触有限元,那个时候老师曾说:“学会我讲的这门有限元,我可以保证你在毕业时候一定找到工作”。那个时候有限元很火,很多高校都开了课,这一晃都过去13年啦。最近看到有人分享了有限元的应力集中和应力奇异,文章写得特别精彩。在学校的时候我一直也很疑惑,既然应力的计算结果受网格尺寸影响,那到底有限元能不能有能力识别应力集中呢?这个问题直到接触到董平沙教授提出的“结构应力法”才得以解决。结构应力是董平沙教授研究焊缝疲劳开裂机理时,针对焊接结构疲劳问题的特殊性并基于力学原理而定义的一种应力,有兴趣的可以查阅相关文献。写篇介绍性的文章,让大家了解下结构应力方法,欢迎各位亲对该方法进行深入的了解,扩展其应用范围,提出不同的看法或讨论,欢迎来微信群交流。
二、悬臂梁的计算困惑下面是一个受弯悬臂梁的例子,如图1所示,该梁尺寸为
,根据材料力学公式,梁的中部上下表面两个点的理论解为
。
根据几何模型建立有限元模型,单元类型为平面应力的PLANE182单元,划分两个单元,求解后,单独选取单元2,则中部节点3和6的应力分别为
,这个结果与理论解相差很远,网格细化后,应力肯定会逐渐升高,感兴趣的小伙伴可以试一试到底细化到什么程度能和理论解对上。
这个例子本身没有什么意义,但却说明一个很重要的问题,有限元求解的值是关于网格敏感的。对于一个新手而言,不知道所在行业的结构划分多大尺寸的网格才能和试验结果相对应,这是很可怕的。
三、 如何实现的网格不敏感董平沙教授提出的结构应力法如何实现的网格不敏感呢?想要知道具体理论的小伙伴可以参考书籍《焊接结构抗疲劳设计理论与方法》。咱们还是说上面的简支梁(这个例子也是董老师的,借来用用)。在有限元计算时,单元边上的分布载荷要向节点转化,这个学过有限元分析都应该了解,在有限元原理书籍中也叫等效载荷。而董老师网格不敏感的结构应力法利用节点力求线力和线矩时,却是这个过程的逆过程,即有限元求得的节点力和力矩转化为线力和线矩,该线力与线矩是指焊线处单位长度上的力与力矩。具体怎么转化的呢?
如图3所示,节点1和2在y轴方向的节点力及绕x轴的力矩分别为Fy1、Fy2和Mx1、Mx2;y轴方向单元边的线力及绕x轴的线力矩分别为fy1,fy2和mx1、mx2根据力的平衡方程,可以求得式(1)(小伙伴可以用材料力学公式对节点1列平衡方程,即求合力及合弯矩)。
求(1)等式右侧项矩阵的逆可得:
所以节点1及节点2的结构应力定义式(3):
再来看那个简支梁,将单元2隔离出来后,节点3和节点6的单元节点力
分别为
,没有节点弯矩,如图3所示,在图3中还用箭头描述了弯曲情况下截面的应力分布。节点3和节点6的距离为
,板厚
,根据公式(3)的节点3和节点6的结构应力为
,这个结构应力与理论结果一致。
通过该方法给出了与梁理论完全一致的结果,这是在意料之中的,因为梁是在静定载荷条件之下。该方法的中平衡理论,要求这样计算出的应力应当满足平衡条件。需要注意的是,这个例子仅仅用来阐述该方法的基本概念,而不是表示该方法可以没有任何限制的使用,设计的建模和网格问题,有兴趣的小伙伴可以查阅相关资料。基于有限元的基本理论,网格不敏感的结构应力法的力学解释并不困难。
结构应力的计算基础是认为截面上节点力的合力一定与外力平衡,这样在划分有限元网格时,假如在给定外力的前提下划分20个网格的节点力的合力与这个外力平衡,那么划分10个节点力的合力也应与这个外力平衡。事实上,网格不敏感的原因完全可以从力的平衡角度去解释,因为在外力被给定的情况下,同样一条焊趾或焊线上的节点力的个数无论多少,其合力都将与这个外力平衡,所以结构应力对有限元网格一定不敏感。当创建有限元模型时,需要注意的仅仅是在基于虚功原理将节点力转换为线力或线力矩时要有足够的节点即可。
注意,结构应力的网格不敏感与通常的应力计算过程中为了提高计算精度而加密网格是完全不同的两个思考方向,由于在计算结构应力时追求过细的网格是没有必要的,所以结构应力对有限元网格不敏感这一特点在应用过程中有重要价值,因为这将显著降低有限元网格数量,从而降低了对计算机硬件能力的要求,在硬件配置不是很高的计算机上,也可以完成较大规模的计算任务。
四、实际结构中的应用下面看看具体怎么应用到焊缝中的,图4给出了外力作用下在焊缝截面上沿着厚度方向的应力分布,这个应力分布因含有缺口应力而呈现出高度非线性。虽然理论上或数值上直接求解这个非线性应力分布是很困难的,但是我们可以将这个高度非线性的应力进行分解。分解后,第一部分应力是只与外力相关,且与外力互相平衡的那一部分,第二部分应力则是去掉了第一部分而余下的应力分布。它虽然包含了非线性部分,但是由于第一部分已经与外力平衡,因此这部分称之为缺口应力的分布一定处于自平衡状态。
有了上述分析就可以定义第一部分为结构应力,第二部分为缺口应力,二者之和,就是原来截面上非线性应力的分布。这里忽略了剪切应力的影响,一个原因是它对焊缝开裂的贡献很小,如果剪切应力不能被忽略,那将是多轴疲劳问题,这里暂不讨论。那么,为什么第一部分应力称之为结构应力呢?因为它是满足平衡条件并可以用结构力学的方法计算得到。不失一般性,将一段焊缝划分成n个单元时,节点编号由1至n,焊线上的各节点距离为
至
,根据力的平衡方程,可求得各节点力
与线力
的对应关系。
(4)上式中矩阵
只与节点距离相关,这里定义为单元长度等效矩阵:
采用Matlab等计算软件可对
矩阵求逆,结果为
,由于求逆后数据不再是带状,这里不详细列出,感兴趣的小伙伴试一试。
由此可得线力与节点力的对应关系:
同理,线矩mx与节点力矩Mx与上述表达式形式相同,这样当有n个节点在相同的单元厚度t的情况下,各节点的结构应力
,以及各节点力
及力矩
可用矩阵方式表为:
五、算例分析迄今为止,已经通过董老师结构应力方法计算了很多算例,这里也不过多介绍,引用董平沙老师比较经典的案例给大家展示一下这种方法的优越性。下面是三种单元尺寸不同的接头,长度分别为0.5t、1t和2t,分别对比最大主应力、Von Mises应力和结构应力,只有结构应力结构基本保持不变,最大主应力和Von Mises应力随着网格尺寸的增加而增大。
结果对比必须声明,文章并非原创,都是引用了董平沙教授、兆文忠教授、李向伟博士等的研究成果,因为感觉很多人不知道这种方法,所以单独将结构应力计算方法进行了整理出来,通过简单的内容介绍给大家,希望有兴趣的参阅《焊接结构抗疲劳设计理论与方法》。
感兴趣的朋友,可以加入仿真秀力学与有限元分析交流群,预计在11-12月,我们将围绕网格不敏感这个主题,将邀请本文作者云兵老师和神秘嘉宾在我们的微信群开展超级话题讨论,欢迎大家来一起讨论和学习。
作者:云兵老师,仿真秀专栏
作者声明:原创文章,首发仿真秀,部分图片源自网络,如有不当请联系我们,欢迎分享,禁止私自转载,转载请联系我们。
相关推荐
- Node.js 获取文件信息及路径(node.js怎么获取当前文件路径)
-
获取文件信息每个文件都有一组细节,我们可以使用Node.js进行检查。特别是使用fs模块提供的stat()方法。constfs=require('fs');fs.stat(...
- 深入剖析JavaScript中深浅拷贝(js实现深浅拷贝)
-
大家好,我是Echa。最近有一位00后的小妹妹粉丝私信小编说自己很喜欢编程,目前在某公司实习前端开发工作,说到现在为止还没有搞懂JavaScript中深拷贝和浅拷贝这个问题,同时也在网上看了很多关于深...
- 为什么高手写 JS 总是又快又好?这10个技巧你要知道
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!JavaScript是前端开发的重要语言...
- IT技术栈:Javascript神器,URL.createObjectURL()
-
URL.createObjectURL()是JavaScript中的一个方法,用于创建一个特殊的URL,该URL可以用于将不支持直接加载的数据(如二进制数据或Blob对象)嵌入到we...
- 如何在 Linux 中创建和管理组?(linux如何建立组)
-
在Linux中,组是用户账户的集合,用于统一管理权限。每个用户至少属于一个主组(PrimaryGroup),还可以加入多个附加组(SupplementaryGroup)。组的权限设置决定了用户对文...
- 付费文库内容无法复制,不用任何工具,学会这4种方法轻松复制
-
关注职场办公,分享实用干货,洞察科技资讯,这里是「职场科技范」。我们在搜索资料的时候,看到非常有用的文库,但往往都是付费的,只能看不能复制。今天就来教大家,学会下面这4种方法,轻松复制文库内容。一、内...
- node.js v24.0.0 正式发布!10大重磅更新助力开发者,性能大幅提升
-
近日,Node.js官方团队正式发布了Node.jsv24.0.0版本,这是一个具有里程碑意义的重大更新。作为"Current"版本,它将在未来六个月内引领Node.js...
- 我理解的网站产品经理之四:网站产品前端姿势
-
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。2016年了,嗨,大家新年好。作为一个网页的产品经理,网页的前端知识可谓是不能不知,本文主讲网站产品的前端姿势。通常,...
- 五一我要看七天小说!免费开源的轻量化书库talebook搭建流程。
-
这次来分享一个简单阅读项目:TaleBook,项目曾用名calibre-webserver。TaleBook是一个基于Calibre的简单的个人图书管理系统,支持在线阅读。不过鉴于各种规章制度,仅...
- “5 分钟 CMake 使用指南,解决我的 C++ 打包问题!”
-
在软件开发的世界里,构建系统扮演着至关重要的角色,它不仅决定了项目的构建效率,还直接影响到团队协作的流畅度。对于许多C++开发者而言,CMake因其强大的功能和广泛的兼容性成为了构建自动化流程的...
- 大佬级鬼才终于把JavaScript整理成了修仙小说,让学习变简单
-
这是一本讲解JavaScript编程语言的技术书籍,只不过,本书采用了一种全新的写作手法。如果你厌倦了厚厚的、如同字典般的编程书籍,不妨尝试一下新的口味,话不多说,直接上干货!目录截图:内容展示:以上...
- JavaScript基础知识点总结(javascript基础入门教程)
-
//逗比小憨憨/*第一章*HTML引用js方法:*1,外部引用:HTML外部引用js:<scriptsrc="js/day1.js"></script>*2,...
- 在Node.js中处理Zip文件(node运行js文件)
-
作者:疯狂的技术宅转发链接:https://mp.weixin.qq.com/s/edJd9-t1AyTGRcha_1k6RA前言Zip文件是常用的压缩文件格式。在本文中,我将演示如何用adm-...
- Python 标准库中鲜为人知的宝藏 | Node.js 22.8.0 发布
-
Python标准库中鲜为人知的宝藏Python标准库功能强大,但有些模块却鲜为人知。本文将介绍一些有趣且实用的模块,助你提升代码效率和功能。数据结构:超越列表和字典除了常用的列表和字典,coll...
- 小程序,wxml页面里如何写JS代码?WXS如何模块化?
-
这篇接着上篇小程序,跳转页面的两种方式及其页面传参数继续讲,小程序wxml页面里如何写JS代码?wxs如何模块化?第一个问题:wxml页面要想类似HTML页面中写js代码,必须在页面中使用wxs标...
- 一周热门
- 最近发表
-
- Node.js 获取文件信息及路径(node.js怎么获取当前文件路径)
- 深入剖析JavaScript中深浅拷贝(js实现深浅拷贝)
- 为什么高手写 JS 总是又快又好?这10个技巧你要知道
- IT技术栈:Javascript神器,URL.createObjectURL()
- 如何在 Linux 中创建和管理组?(linux如何建立组)
- 付费文库内容无法复制,不用任何工具,学会这4种方法轻松复制
- node.js v24.0.0 正式发布!10大重磅更新助力开发者,性能大幅提升
- 我理解的网站产品经理之四:网站产品前端姿势
- 五一我要看七天小说!免费开源的轻量化书库talebook搭建流程。
- “5 分钟 CMake 使用指南,解决我的 C++ 打包问题!”
- 标签列表
-
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- oracle两个表 (20)
- oracle 数据库 字符集 (20)
- oracle安装补丁 (19)
- matlab化简多项式 (20)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- css class选择器用法 (25)
- css样式引入 (30)
- html5和css3新特性 (19)
- css教程文字移动 (33)
- php简单源码 (36)
- php个人中心源码 (25)
- 网站管理平台php源码 (19)
- php小说爬取源码 (23)
- github好玩的php项目 (18)
- 云电脑app源码 (22)
- js创建txt文件 (18)