本案例演示利用Rocky仿真装瓶线上可乐瓶的运动。
案例计算完毕后如图所示。
1 新建项目
-
启动Rocky 2024 R1。 -
点击菜单 File → New Project
或快捷键Ctrl+N
创建一个新项目 -
保存项目。
2 物理模型
-
选中模型树节点 Physics
,进入Momentum
选项卡 -
指定参数 Numerical Softening Factor
为 0.1
3 Modules设置
-
选择模型树节点 Modules
,激活 Inter Particle Collision Statistics
-
选中节点 Inter Particle Collision Statistics
,激活选项 Normal Impact Velocity
4 几何
-
右键选择模型树节点 Geometries
,点击弹出菜单项 Import Wall
-
选择所有的几何文件导入
-
指定导入单位为 mm
案例几何由以下部分组成:
-
轨道(单个部件) -
输送带(13个独立部件)
这14个部件将作为.stl文件导入。
5 定义运动
为了实现安全运输瓶子和将它们整合成一条线的目标,13个输送带必须增加速度,同时轨道对齐瓶子。案例为每个输送带创建一个Motion Frame。
-
右键选择模型树节点 Motion Frames
,点击弹出菜单项 Create Motion Frame 创建新节点Frame<01>
-
选中新节点,在属性窗口中设置参数
-
选中模型树节点 Geometries > Belt_01
,指定其Motion Frame
为 Belt Velocity<01>
可以使用下表中的值手动创建这些额外的Motion Frame,并手动将它们分配给各自的输送带。
若嫌手动添加麻烦的话,也可以编制python脚本,实现自动添加。以下是脚本使用过程。
-
点击菜单Tools → Python Shell 开启脚本运行界面
-
在Python Shell面板中输入以下代码
velocities = [0.1676,0.1676,0.1676,0.1676 ,0.3352, 0.4623 ,0.4724 ,0.64 ,0.7671, 0.7772, 0.9448, 0719,1.1430]
study=app.GetStudy()
motion_frame_source = study.GetMotionFrameSource()
motion_frames=[]
for i in range(0,12):
number_str=""
if(i+1<9):
number_str="0"
motion_frames.append(motion_frame_source.NewFrame())
motion_frames[i].SetName(f'Belt Velocity <{number_str}{str(i+2)}>')
motion_frames[i].SetKeepInPlace(True)
motions = motion_frames[i].GetMotions()
motions_new_list_item = motions.New()
translation_motion=motions_new_list_item.SetType("Translation")
translation_motion.SetVelocity((velocities[i+1],0,0),"m/s")
belt=study.GetGeometry(f'Belt_{number_str}{str(i+2)}')
motion_frames[i].ApplyTo(belt)
belt.SetMaterial('Default Belt')
如下图所示。
运行完毕后,自动创建12个Motion Frame并将其分配给各自的传送带。
6 材料交互
-
选择模型树节点 Materials Interactions
-
指定颗粒与传送带之间( Default Particles - Default Belt
)
-
指定 Default Particles - Default Boundary
-
指定 Default Particle - Default Particles
7 创建颗粒
-
右键选择模型树节点 Particles
,点击弹出菜单项 Create Particle 创建新节点Particle<01>
-
选中新建的节点,在属性面板的 Particles
面板中进行设置 设置Name
为 bottle2. 指定Shape
为 Custom Polyhedron ,弹出的文件选择对话框中选择几何文件Bottle.stl
,以mm
为单位导入模型 3. 在弹出的Convert to Convex? 对话框中选择1 - Keep the shape as is.,然后点击OK。
注:本案例希望Rocky将颗粒视为凹形,以保留其形状。否则,它会将几何体转换为凸形,从而会丢失一些瓶子的细节。
”
为了正确地表示Filled Bottle的行为,必须改变颗粒的Center of Mass 和Moments of Inertia。
-
进入 Movement
选项卡,如下图所示设置参数
-
进入 Size
选项,指定Size为 0.0679753 m
注:这里设置该尺寸的目的是确保体积与瓶子的实际体积(353毫升)匹配,可以通过使用Info标签页上的值来查看。
”
-
进入Info标签页,可以查看并验证Volume值。
-
现在颗粒尺寸已经设置,查看 Particles Details 窗口并记下最小的Y坐标。这个值将在后面用来规定期望的 Particle Custom Inlet 位置。
8 定义颗粒入射
这里由于需要放入的瓶子较多,因此采用csv文件指定入射位置。
-
右键选择模型树节点 Inlets and Outlets
,点击弹出菜单项 Create Particle Custom Inlet 创建新节点Particle Custom Inlet<01>
-
选中新节点,指定 Particle
为 Bottle,点击按钮Load File
导入文件 custom_bottle_injection.csv
在File Info下,可以看到加载的**.csv** 中定义的各种Properties的Number of Particles和Min 和 Max值。
注意:y属性的min(0.063)和max(0.063)值表示所有的颗粒将被注入到输送带上方的0.063米处。这大约是前面提到的几何中心和瓶子底部之间的距离。
”
9 区域设置
案例中,瓶子比轨道更高,如果使用几何体限制作为边界,一部分颗粒将会在计算区域外。因此需要手动设置边界限制。
-
选中模型树节点 Domain Settings
,如下图所示指定参数
指定的计算区域如图所示。
10 进行计算
-
选中节点 Solver
,如下图所示设置参数,点击Start
按钮进行计算
13. 模拟项目
-
从Solver实体,点击Start。
Simulation Summary屏幕出现(如图所示),然后开始处理。
计算中可以更新图形显示,如图所示。
(完)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册