首页/文章/ 详情

塑性辊压成型的有限元仿真

1年前浏览1241

塑性辊压成型又称冷弯成型,是工业中常用的金属制造与成型方式。是通过顺序配置的多道次成形轧辊,把金属工件不断进行变形,以制成特定形状。这种成型方式生产效率高,节约材料,增加产品强度,广泛应用于如汽车生产等工业部门。

辊压成型的仿真也是常见的有限元分析类型。通过这种分析,可以预测工件的变形程度,承受的应力应变情况,以及所需要辊子的尺寸和运转速度。由于此类分析几乎涉及了结构计算的所有因素,如多载荷步,塑性非线性变形,各种类型的接触算法,刚体动力学,和各种实体与板壳单元。可以说是结构分析中最复杂,最难以收敛的模型之一。这不仅对求解器提出很高的要求,也对前后处理器也需要比较完善的功能。

通用工程仿真软件 WelSim,在结合强大的开源瞬态求解器OpenRadioss后,可以很好的模拟各种塑性成型等锻造过程。本文就从实际操作角度,演示如何进行滚动压铸成型的仿真分析。

分析步骤

1. 打开WelSim主界面,并设置单位。这里,我们设置kg-mm-s。

2. 建立一个新的铝合金材料,并命名为myPlastic,设置的属性分别如下。

密度:2.7e-6 kg/mm3。杨氏模量:70 GPa。泊松比:0.33。

Johnson-Hook塑性属性,初始屈服应力:300 MPa。硬化常数: 360 MPa。硬化指数: 0.08。

编辑完成材料参数后,关闭材料窗口。进行后续分析操作。

3.新建一个FEM项目工程,并在属性窗口中,设置为显式瞬态结构分析。

4. 导入几何模型,如下图所示。

底部有两个可转动辊轴,用于传送工件。上转辊用于下压工件。工件为方管结构,四角有倒角。方管的横截面如下图所示。

对于3个圆柱形辊子,在属性窗口中设置为壳体结构,材料为结构钢,厚度保持1mm不变,积分点保持3个不变,同时将刚体选项设置为真。如下图所示,

对于受挤压成型的方管工件,定义为实体结构,并赋予在第2步创建的铝合金塑性材料。

5. 网格划分。将最大单元尺寸设置为10mm。WelSim会自动根据几何类型进行划分单元。方管会使用实体单元网格划分。薄壁滚轴是使用壳单元划分。

6. 添加接触。本算例中,需要添加3对接触对,其中两个无摩擦接触对,一个有摩擦接触对。第一个接触对是底部第一滚轴与方管的接触,设置为有摩擦,同时摩擦系数为0.9。之所以设置成有摩擦,是为了在滚轴转动时,摩擦力能将方管向一个方向传递。

第二个接触对是底部第二滚轴与方管的接触,定义为无摩擦接触。如下图所示,

第三个接触对是顶部的压辊与方管的接触,同样定义为无摩擦接触。

7. 在Study Settings节点中设置多载荷步分析。由于分析工况的需要,我们将载荷步设置为3步,每一个载荷步的结束时间分别是0.04s, 0.045s, 0.1s。将求解器设置OpenRadioss或者保持默认的自动选择求解器。WelSim在进行显式结构动力学计算时,会默认使用OpenRadioss求解器。

8. 设置边界条件。这里要设置四个边界条件,用于完成整个分析中所需的约束与载荷。

8.1 对顶部的辊子设置位移边界条件。上辊在第一个时间步内匀速下压20mm, 并在之后的过程中保持在这个位置。

8.2 对上辊设置约束边界条件。目的是防止上辊在接下来的计算中产生转动。因此,只允许Z方向和X轴方向运动。

8.3 对底部两个辊子都施加约束边界条件。只允许以X轴方向的转动。

8.4 对底部前端的辊子施加以X为轴的旋转角速度,用于传动方管。角速度的大小为200 rad/s,从第二个载荷步开始旋转辊子。

9. 设置完成后,即可以点击求解按钮,进行计算。如果是在本地第一次使用WelSim和OpenRadioss的联合求解,还需要下载OpenRadioss求解器至本地,同时在WelSim的首选项中进行简单配置,输入OpenRadioss的目录地址。即可联立求解。

10. 计算完成后,点击答案节点,会在表格与曲线窗口,显示整个时间历程下,各种能量和动能的分布。这些量包括,接触能量,外部做功,内能,动能,质量,和动量等。如下图所示。

11. 还可以添加如应力、应变、位移等结果节点,评价后即可得到三维云图显示。当需要打开变型显示时,可以在三维显示属性窗口中,将显示变形属性设置为真。即可看到方管变形和位移后的状态。同时,表格和曲线窗口显示整个应变随时间变化的状况。

WelSim还支持快速生成动画,用户可以点击曲线窗口上的录像按钮,即可生成3D视图窗口中的动画文件。本算例的应力结果动画如下所示。


总结

本文通过一个实例,演示了如何建立塑性辊压模型,并得到计算结果。OpenRadioss被证明是一款功能强大的瞬态结构动力分析软件,通过WelSim便捷的前后处理能力,使得OpenRadioss的更加易于使用。WelSim在本例中,作为前后处理工具,快速生成包含复杂内容的求解文件,同时可以直接读取结果文件并显示,体现了和OpenRadioss求解器无缝整合的功能。

本文所用的几何文件和测试文件已经开源,并共享在 WelSim的官方测试库中,https://github.com/WelSimLLC/WelSimAutoTests


来源:WELSIM
RADIOSS非线性通用汽车WELSIM材料传动
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-07-06
最近编辑:1年前
WELSIM
一枚搞仿真的老员工
获赞 27粉丝 87文章 271课程 0
点赞
收藏
作者推荐

使用QtTesting建立可视化软件的自动化测试系统

本文摘要:(由ai生成)QtTesting是一个开源测试框架,适用于使用QT框架的软件,特别是可视化软件的自动化测试。它可以捕捉和播放UI事件,测试GUI以及通过GUI属性测试其他功能,如计算结果的精确性。QtTesting包含录制与运行两大模块,通过与QT框架中的元器件建立连接实现互动。它提供了易于使用的界面和核心功能,支持开发者根据产品控件增加新的测试模块。WELSIM作为通用仿真软件,成功应用QtTesting并开源了测试案例,展示了QtTesting在自动化测试中的有效性。自动化测试是现代大型软件的必要组成部分。通过使用大量的无人值守的自动化测试算例,达到维护大型软件产品的稳定性的目的。对于可视化软件,建立自动化测试系统难度大,相关资料少,笔者曾经写过关于工程仿真CAE软件的自动化测试文章,参见《自动化测试大型通用工程仿真CAE软件》《快速创建WELSIM的回归测试算例》,《大型工程仿真CAE软件的自动化回归测试》。本文从软件开发角度,讨论如何使用QtTesting快速实现可视化软件的自动化测试系统。QtTesting是一款开源测试框架,协议友好,类似BSD3可以用于商业产品。实际应用于VTK, ParaView, Slider3D,WELSIM等大型可视化软件中。是被实践证明的有效且好用的测试框架。只要产品是使用QT作为可视化框架的软件,都可以使用QtTesting作为测试系统的基础组件。QtTesting的源代码可以从虽然QtTesting官方定位其用于UI的测试,但在实际使用中,QtTesting不仅测试GUI,也可以通过GUI提供的属性,来测试产品的其他任何功能,如计算结果的精确性等。WELSIM中的大量数值结果都可以通过QtTesting的功能来验证。QtTesting框架结构QtTesting的测试模块含有录制与运行两大模块。两个模块都是通过与QT框架中的元器件(Widget)建立连接,来实现与可视化框架的互动。录制功能是通过捕捉元器件的事件或信号,运行是通过遍历的方式获取当前元器件的对象,实现对控件的控制。录制测试录制模块为用户提供了快速建立测试文件的方式,本质上是一种鼠标,键盘与窗口控件的宏命令。当用户在界面上进行某种低级 Qt 事件如“鼠标移动”,“按下按钮”,“释放按钮”等,所产生的信号将会被捕捉到,并转换为可以序列化和播放的高级事件,例如“按钮激活”。QtTesting中的pqWidgetEventTranslator类及其派生类从中承担的重要的工作。pqWidgetEventTranslator 的派生类会需要实现translateEvent()方法,用于处理Qt的事件,同时转换信号为由两个字符串组成的高级事件:一个命令和一个命令参数(参数可能为空)。最后,通过发射 recordEvent() 信号一次或多次将高级事件传递给其输出容器,并保存到XML文件上,完成一条宏命令的录制。在程序运行时,pqEventTranslator 会接收到整个应用程序在运行时发生的每个 Qt 事件,并将 Qt 事件依次传递给其每个 pqWidgetEventTranslator 实例。由 pqEventTranslator 发射的高级事件可以被对应的观察者捕获。观察者可以将高级事件序列化打印输出,或者保存。目前,QtTesting包含两个观察者,pqEventObserverStdout 和 pqEventObserverXML,它们分别将高级事件序列化到标准屏幕输出和 XML 文件中。开发人员还可以创建自己的观察者来实现自定义功能,例如将事件序列化到日志文件、Python 脚本等。录制模块也可以记录检验事件,如验证某个属性。在检查时,一个覆盖层会在鼠标悬停的小部件上绘制。如果覆盖层为绿色,则表示可以检查该小部件,如果为红色,则表示不可以。当点击小部件进行检查时,将记录一个检查事件,并输出一个相关的QString 值。此功能也是WELSIM自动化测试中验证数值计算准确性的重要部分。运行测试在运行自动化测试时,其本质就是播放录制好的宏命令。在QtTesting框架中,pqEventSource 提供了一个抽象接口,用于提供“高级事件”流的对象。pqXMLEventSource 继承pqEventSource ,并实现具体功能,它能够读取由 pqEventObserverXML 生成的 XML 文件。pqEventPlayer 维护了一组 pqWidgetEventPlayer 对象,负责将高级事件转换为低级事件。pqEventDispatcher 从 pqEventSource 获取事件,并将其传递给 pqEventPlayer 的一个实例进行运行。运行时,每个高级事件都被编码为三个字符串(地址、命令和参数),这些字符串被传递给 pqEventPlayer::playEvent()。pqEventPlayer 解码地址字符串,并使用它查找相应的小部件。然后,高级事件和小部件依次传递给每个 pqWidgetEventPlayer,直到其中一个发出事件已被处理的信号。创建新的录制器和运行器一个新的录制器至少必须重新实现 translateEvent(QObject object, QEvent event, int eventType, bool& error) 方法。首先,它必须检查对象是否是正确的类。然后,它应该处理 pqEventTypes::ACTION_EVENT 情况,保存命令和相关参数。并且有时它还应该能够处理 pqEventTypes::CHECK_EVENT的情况。类似的,一个新的运行器至少应重新实现 playEvent(QObject* object, const QString& command, const QString& arguments, int eventType, bool& error) 方法。首先,它应该处理 pqEventTypes::ACTION_EVENT,将读取的命令和参数转换为 Qt 指令,对于它能处理的事件返回 true。在检查命令时,它应该能够处理 pqEventTypes::CHECK_EVENT事件类型,使用提供的命令和参数检查 Qt 对象的当前值,在值不同的情况下将错误变量定位为 false,但对于所有处理的检查事件,甚至是失败的事件,都应返回 true。有时录制器和运行器的类是一一对应的,开发者可以查看 pqLineEditEventTranslator 和 pqLineEditEventPlayer 以获取简单示例,以及 pqAbstractItemViewEventTranslatorBase/pqAbstractItemViewEventPlayerBase 以获取高级示例。运行基于QtTesting的测试QtTesting的源码包易于编译,提供的CMake程序,可以快速地将其编译成静态库或者动态库。由于测试模块在产品中调用的位置较少,编译成静态库来使用是个不错的选择。QtTesting在VTK、ParaView等软件上已经成功的应用,但是并没有公开测试案例。幸运的是,通用工程仿真软件WELSIM不仅使用QtTesting作为可视化测试框架,同时开源了全部测试算例,用户可以下载WELSIM和测试算例,体验基于QtTesting的自动化测试。WELSIM的自动化测试用户界面基本沿用了QtTesting的界面。同时增加了一些实用功能,如:1. 支持读取*.wstb文件,此文件包含一组*.xml文件,实现更简单的一次性读取多个测试案例。2. 保存测试失败的算例保存至*.wstb文件。用户无需手动选择测试案例保存。3. 增加右键弹出菜单,用于选择或取消选择测试案例。开发者也可以根据需要,增加其他的功能。总结QtTesting是一款免费的,用于Qt可视化框架的测试系统。不仅提供了核心的QT事件与信号捕捉功能,还提供了易于使用的可视化界面,对开发者和最终用户友好。QtTesting可以帮助软件开发者快速建立测试系统。自带控件捕捉与控制功能可以满足大多数产品的测试需求,同时易于拓展,开发者可以根据自己产品的控件增加新的测试模块。我们将QtTesting实际应用于通用仿真软件WELSIM的自动化测试,取得了很好的效果。本文所讨论的内容不仅可以应用于CAE仿真软件,也可以用于任何使用QT框架建立的可视化软件。WelSim与作者不隶属于Qt, QtTesting。和Qt, QtTesting开发团队与机构没有直接关系。这里引用Qt, QtTesting仅用作技术博客文章与软件使用的参考。来源:WELSIM

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