(第一部分)设置并运行使用单向恒量CFD耦合方法的仿真。
(第二部分)使用多个嵌套用户进程创建一个累积质量场,以便了解肥料颗粒如何通过撒播机分撒。
本教程旨在了解如何设置使用单向恒量CFD耦合方法的仿真。
考虑的场景是评估作物撒播机的性能,例如用于向田地播撒种子或肥料的撒播机。
您将了解如何:
定义旋转运动
采用单向恒量法设置CFD耦合
设置自定义域限制
您将使用这些功能:
运动坐标系
CFD耦合
域设置
重要: 与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。
高级教程旨在面向更熟悉Rocky用户界面(UI)并且已经充分了解常见设置和后处理任务的用户。
如果您尚未达到这种熟悉程度,建议您在开始本教程之前至少完成教程01-05。
本教程中的几何结构包括:
(1) 撒播机
(2) 壁面
在教程目录中,可以找到.stl文件。
注意: 本教程预计的颗粒数相对较大,因此不包含表示地面的几何结构。
这不仅允许我们通过减少在仿真中保持活跃的颗粒数来加速处理,同时还允许我们看到完整的播撒效果。
要开始设置本教程,请执行以下操作:
在此处下载
dem_tut20_files.zip文件。将
dem_tut20_files.zip解压缩到您的工作目录。打开Rocky 2025 R1。
创建新项目。
将空项目保存到您选择的位置。
请使用下表中的信息开始设置Rocky项目。
提示: 如果您在这些表格中遇到了不熟悉的设置或过程,请参阅Rocky用户手册和/或其它教程,以找到您需要的详细说明。
步骤 数据实体 编辑器位置 参数或操作 设置 A Study <01> Study Study Name Spreader B Geometries Import Wall Spreader.stl和Wall.stl 的Import Unit设置为“m” 创建Rectangular Surface C Geometries ﹂Rectangular Surface <01>
Rectangular Surface Center Coordinates -0.11, 0.15, 0 [m] Length 0.05 [m] Width 0.04 [m] D Motion Frames 创建Motion Frame E Motion Frames ﹂Frame <01>
Frame Name Rotation Motion 添加运动 Motions | Type Rotation ⯆ … | Initial Angular Velocity 0, 810, 0 [rev/min] F Geometries ﹂Spreader
Wall Motion Frame Rotation Motion ⯆ G Materials ﹂Default Boundary
Material Young's Modulus 1e+08 [N/m2] H Materials ﹂Default Particles
Material Use Bulk Density (已清除) Density 1000 [kg/m3] Young's Modulus 1e+06 [N/m2] I Particles 创建颗粒 J Particles ﹂Particle <01>
Particle Name 3mm Size 0.003 [m] @ 100% K Particles 创建颗粒 L Particles ﹂Particle <01>
Particle Name 4mm Size 0.004 [m] @ 100% M Inlets and Outlets 创建Particle Inlet N Inlets and Outlets ﹂Particle Inlet <01>
Particle Inlet Entry Point Rectangular Surface <01> ⯆ Particle Inlet | Particles 添加行(x2) (1) Particle | Mass Flow Rate 3mm ⯆ 0.6 [t/h] (2) Particle | Mass Flow Rate 4mm ⯆ 1.2 [t/h]
在本教程中,我们希望颗粒在静止 (不流动)空气的情况下散布在整个域。
在这种情况下,颗粒在撒出时会受到空气阻力。
下图说明了在这种场景下考虑空气阻力有多重要。
不考虑空气阻力的仿真,其颗粒撒播的距离比在项目中考虑了空气阻力时远得多。
为了表示这种行为,我们将使用1-Way Constant CFD耦合方法,该方法的主要优势如下:
在已知不变流场的情况下很有用。
无需单独的CFD程序。(该功能包含在Rocky中。)
有助于您定义恒定的密度、速度、粘度及(可选)热属性值。
通过以下操作定义该耦合方法:
从Data面板中,选择CFD Coupling。
在Data Editors面板中,从Coupling Mode列表的1-Way下选择Constant (Fluid > Particle)(如图所示)。
从Data面板中,选择新创建的1-Way Constant 项。
在Interactions选项卡中,从Particle列表中选择3mm项(如图所示)。
将出现可以针对所选颗粒组设置的CFD Laws。
在本教程中,这两个颗粒组的CFD Laws 将保留为默认设置。(无修改。)
选择Fluid Flow 选项卡。
因为我们希望仿真still air,并且默认值已经代表了这种情况,因此不做任何更改。
使用下表中的信息继续设置您的Rocky项目。
步骤 数据实体 编辑器位置 参数或操作 设置 A Domain Settings Domain Settings Use Boundary Limits (已清除) Min Values -3,-1, -1 [m] Max Values 7, 1, 9 [m] B Solver Solver | Time Simulation Duration 2 [s] Solver | General Output Settings | Time Interval 0.005 [s] Simulation Target CPU ⯆
在Solver实体中,单击Start。
出现Simulation Summary屏幕(如图所示),然后开始处理。
提示: 您可以使用Auto Refresh复选框,以在处理过程中在3D View窗口中查看结果。
本教程旨在了解如何使用多个嵌套用户进程,以了解我们在前面第一部分仿真的撒播机分撒肥料颗粒的方式。
第二部分将从第一部分结束的地方继续。
您将了解如何:
分层安排多个嵌套User Processes,以得到特定的结果。
为Eulerian Statistics创建自定义属性。
您将使用这些功能:
用户进程,包括:
立方体
属性
颗粒时间选择
欧拉时间统计
重要: 与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。
高级教程旨在面向更熟悉Rocky用户界面(UI)并且已经充分了解常见设置和后处理任务的用户。
如果您尚未达到这种熟悉程度,建议您在开始本教程之前至少完成教程01-05。
如果您已经完成了本教程的第一部分,请确保项目在Rocky中已打开。(第二部分将从第一部分结束的地方继续。)
如果您没有完成第一部分中的项目,请执行以下所有操作:
在此处下载
dem_tut20_files.zip文件。将
dem_tut20_files.zip解压缩到您的工作目录。打开Rocky 2025 R1。
重要: 要使用所提供的Rocky项目文件,您必须安装Rocky 2025 R1或更高版本。如果您有较早版本的Rocky,请将Rocky升级到最新版本,或从头开始完成第一部分。
在Rocky程序中,单击Open Project按钮,找到dem_tut20_files文件夹,然后从tutorial_20_A_pre-processing文件夹中打开tutorial_20_A_pre-processing.rocky文件。
处理仿真。(从Solver 实体中,单击Start按钮。)
一旦完成仿真过程,即可开始第二部分的操作。
在本教程中,我们要了解肥料撒施机在整个区域内分配颗粒质量的方式。
为了实现这一目标,我们将创建一个Cumulative Mass Field,看看域的不同区域如何接收不同数量的颗粒质量。
为了评估撒播机的性能,测量整个作物面积的肥料分布非常有用。
本教程中仿真的、在稳定状态下运行的撒播机所产生的Cumulative Mass Field,可用于推断整个农田的质量分布。
为了完成累积质量场,我们需要将不同的User Processes堆叠在一起。
我们将使用四个用户进程 来执行这一操作:
(1) Particles Time Selection
(2) Cube (在Particles Time Selection上方)
(3) Eulerian Statistics(在Cube上方)
(4) Filter(在Eulerian Statistics上方)
但是在创建第一层之前,我们需要选择一个时间段来分析。具体而言:
我们将选择系统处于稳定状态的一个时间段。
换句话说,注入的颗粒数量与离开区域的颗粒数量大致相同。
我们获得这些信息的方法是:先绘制Particles Count 图,然后选择曲线稳定的时间段。
在Particles实体的Curves 选项卡上,右键点击Particles Count,然后点击Show curve in new Plot.。
按住Shift键的同时,左键单击Curve上面,查看各项值(如图所示)。
我们可以看到,大约0.7 (s)后达到稳态。
我们现在知道,分析时,我们要选择这一点之后的一个时间段。
我们希望分析颗粒在地上分布的形式。
但为了缩短第一部分的处理时间,我们没有包含表示地面的几何结构;因此,本教程中的颗粒在Y方向落得足够远之后很快就离开了域。
在这种情况下,最好是在颗粒离开域之前分析层中的质量分布。
为了实现这一点,我们将定义一个Particles Time Selection,在这种情况下,我们将记录特定时间范围内通过域的每个颗粒的最后位置。
注意: Particles Time Selection 也可应用于特定区域,如Cube 或Cylinder。
此外,因缺乏地面几何结构而离开域的颗粒将会记录在非常接近域底部的位置。如果颗粒实际上就在地上,这和颗粒在地面上的位置很相似。
现在,我们要选择在1s to 2s周期内通过域的所有颗粒。(根据前面的测量,我们知道这是在稳定状态下。)
使用下表中的信息创建该分析中的第一层。
步骤 数据实体 编辑器位置 参数或操作 设置 A Particles 创建Particle Times Selection用户进程 B User Processes ﹂Particles Time Selection <01>
Time Selection Domain Range Time Range ⯆ Initial 1 [s] Final 2 [s] 按下Ctrl+D,打开3D View。
在默认情况下,颗粒以Automatic/Rich 模式显示,该模式按颗粒的原尺寸显示完全渲染的颗粒。
在这个域视图中,颗粒太小,看不到,所以我们将切换到Simple模式,其将把颗粒渲染成大小固定的点。
此外,我们还将减少视图中点的大小,以提高可见性。
从Data Editors面板中,选择Coloring选项卡,然后执行以下两项操作(如图所示):
确保启用Visible。
从Level of Detail 列表中选择Simple。
在Nodes下,将Point size定义为2。
3D View现在显示了1s至2s通过域的所有颗粒。
每个颗粒都记录在其最后所处的位置,或者其离开域之前的位置,亦或者其最后一个时间步长所处的任何位置,其中包括当时仍飘在空中的任何颗粒。
我们希望生成一个Mass Field 来分析颗粒在地面上的分布。因此,我们必须排除最后一个时间步仍飘在空中的颗粒。
所以,我们将在Particles Time Selection <01>上创建一个Cube用户进程,以便只选择最接近地面的颗粒层。
使用下表中的信息创建该分析中的第二层。
步骤 数据实体 编辑器位置 参数或操作 设置 A User Processes ﹂Particles Time Selection <01>
创建Cube用户进程 B User Processes Cube <01>
Cube Center 2, -0.95, 4 [m] Magnitude 20, 0.1, 20 [m] Coloring Level of Detail Simple ⯆ Nodes | Point Size 2 [ - ] 在Data面板中,从视图中隐藏Particles Time Selection <01> 。
3D View 现在显示Particles Time Selection <01>的颗粒,它们靠近地面,在Cube <01>内。
为了通过这些选定的颗粒生成Mass Field ,我们需要在刚刚创建的Cube上创建一个Eulerian Statistics用户进程。
使用下表中的信息创建该分析中的第三层。
步骤 数据实体 编辑器位置 参数或操作 设置 A User Processes ﹂Cube <01>
创建Eulerian Statistics用户进程 B User Processes ﹂Eulerian Statistics <01>
Eulerian Statistics Width Divisions 20 [ - ] Heigth Divisions 1 [ - ] Depth Divisions 20 [ - ]
接下来,为了计算每个Eulerian Statistics单元中的颗粒质量,我们必须添加一个来自Particles的新属性。
使用下表中的信息继续执行分析。
步骤 项 位置 参数或操作 设置 A User Processes ﹂Eulerian Statistics <01>
Properties Add and edit properties for source entity(按钮) B Add or edit eulerian properties(对话框) Add property(按钮) C Add new property (对话框) Operation Sum ⯆ Particle Property Particle Mass ⯆ Add property(按钮) 在Data Editors面板的Properties选项卡上,将新创建的Sum of Particle Mass拖放到3D View中。
提示: 您可能需要使用Data面板上的眼睛图标来隐藏其他用户进程。
现在我们将过滤所得到的Cumulative Mass Field ,只显示颗粒质量高于特定值的地方。
为了实现这一点,我们将在Eulerian Statistics上应用Filter用户进程 。
使用下表中的信息创建该分析中的第四层。
步骤 数据实体 编辑器位置 参数或操作 设置 A User Processes ﹂Eulerian Statistics <01>
创建Filter用户进程 B User Processes ﹂Filter <01>
Property Property Sum of Particle Mass ⯆ Mode Cut ⯆ Type Range ⯆ Minimum Value 0.001 [kg] Maximum Value 1 [kg]
从Filter <01>实体中,选择Properties选项卡,再选择Sum of Particle Mass,然后将其拖放到3D View中。(结果如图所示。)
提示: 通过使用其Data面板上的眼睛图标来隐藏Eulerian Statistics <01> 。
然后,我们可通过启用Show on Node选项来解决属性的面可视化问题。
在Data Editors面板中,选择Coloring选项卡,启用Show on Node?复选框,然后清除Edges复选框。
仿真稳态场可用来减少计算时间。这种仿真操作就像我们在本教程中所做的那样,无需仿真整个农田的分布——其可能需要使用数以百万计的颗粒来执行成本高昂的仿真。
可通过以下方式进行更多的分析:
沿着轨迹的几个点叠加同一块田地,这可生成整个农田的质量分布。
使用PrePost Scripting功能提取每个单元的值,然后开发一个Python脚本来执行轨迹及叠加计算。
