第 20 章 教程-肥料撒施机

(第一部分)设置并运行使用单向恒量CFD耦合方法的仿真。

(第二部分)使用多个嵌套用户进程创建一个累积质量场,以便了解肥料颗粒如何通过撒播机分撒。

20.1. 第一部分:项目设置与处理

20.1.1. 目标

本教程旨在了解如何设置使用单向恒量CFD耦合方法的仿真。

  • 考虑的场景是评估作物撒播机的性能,例如用于向田地播撒种子或肥料的撒播机。

您将了解如何:

  • 定义旋转运动

  • 采用单向恒量法设置CFD耦合

  • 设置自定义域限制

您将使用这些功能:

  • 运动坐标系

  • CFD耦合

  • 域设置

20.1.2. 前提条件


重要:  与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。

  • 高级教程旨在面向更熟悉Rocky用户界面(UI)并且已经充分了解常见设置和后处理任务的用户。

  • 如果您尚未达到这种熟悉程度,建议您在开始本教程之前至少完成教程01-05


20.1.3. 几何结构

 

本教程中的几何结构包括:

  • (1) 撒播机

  • (2) 壁面

在教程目录中,可以找到.stl文件。


注意:  本教程预计的颗粒数相对较大,因此不包含表示地面的几何结构。

这不仅允许我们通过减少在仿真中保持活跃的颗粒数来加速处理,同时还允许我们看到完整的播撒效果。


20.1.4. 项目创建

要开始设置本教程,请执行以下操作:

  1. 此处下载dem_tut20_files.zip文件。

  2. dem_tut20_files.zip解压缩到您的工作目录。

  3. 打开Rocky 2025 R1

  4. 创建新项目。

  5. 将空项目保存到您选择的位置。

  6. 请使用下表中的信息开始设置Rocky项目。


    提示:  如果您在这些表格中遇到了不熟悉的设置或过程,请参阅Rocky用户手册和/或其它教程,以找到您需要的详细说明。


    步骤数据实体编辑器位置参数或操作设置
    AStudy <01>StudyStudy NameSpreader
    BGeometriesImport WallSpreader.stlWall.stlImport Unit设置为“m”
    创建Rectangular Surface
    CGeometries

    Rectangular Surface <01>

    Rectangular SurfaceCenter Coordinates-0.11, 0.15, 0 [m]
    Length0.05 [m]
    Width0.04 [m]
    DMotion Frames创建Motion Frame
    EMotion Frames

    Frame <01>

    FrameNameRotation Motion
    添加运动
    Motions | TypeRotation ⯆
    … | Initial Angular Velocity0, 810, 0 [rev/min]
    FGeometries

    Spreader

    WallMotion FrameRotation Motion ⯆
    GMaterials

    Default Boundary

    MaterialYoung's Modulus1e+08 [N/m2]
    HMaterials

    Default Particles

    MaterialUse Bulk Density(已清除)
    Density1000 [kg/m3]
    Young's Modulus1e+06 [N/m2]
    IParticles创建颗粒
    JParticles

    Particle <01>

    ParticleName3mm
    Size0.003 [m] @ 100%
    KParticles创建颗粒
    LParticles

    Particle <01>

    ParticleName4mm
    Size0.004 [m] @ 100%
    MInlets and Outlets创建Particle Inlet
    NInlets and Outlets

    Particle Inlet <01>

    Particle InletEntry PointRectangular Surface <01> ⯆
    Particle Inlet | Particles添加行(x2)
    (1) Particle | Mass Flow Rate3mm ⯆ 0.6 [t/h]
    (2) Particle | Mass Flow Rate4mm ⯆ 1.2 [t/h]

20.1.5. CFD耦合-单向恒量

在本教程中,我们希望颗粒在静止 (不流动)空气的情况下散布在整个域。

在这种情况下,颗粒在撒出时会受到空气阻力

下图说明了在这种场景下考虑空气阻力有多重要。

不考虑空气阻力的仿真,其颗粒撒播的距离比在项目中考虑了空气阻力时远得多。

 

为了表示这种行为,我们将使用1-Way Constant CFD耦合方法,该方法的主要优势如下:

  • 在已知不变流场的情况下很有用。

  • 无需单独的CFD程序。(该功能包含在Rocky中。)

  • 有助于您定义恒定的密度、速度、粘度及(可选)热属性值。

通过以下操作定义该耦合方法:

  1. Data面板中,选择CFD Coupling

  2. Data Editors面板中,从Coupling Mode列表的1-Way下选择Constant (Fluid > Particle)(如图所示)。

     

  3. Data面板中,选择新创建的1-Way Constant 项。

  4. Interactions选项卡中,从Particle列表中选择3mm项(如图所示)。

     

    将出现可以针对所选颗粒组设置的CFD Laws

    在本教程中,这两个颗粒组的CFD Laws 将保留为默认设置。(无修改。)

  5. 选择Fluid Flow 选项卡。

     

    因为我们希望仿真still air,并且默认值已经代表了这种情况,因此不做任何更改。

20.1.6. 继续项目设置

  1. 使用下表中的信息继续设置您的Rocky项目。

    步骤数据实体编辑器位置参数或操作设置
    ADomain SettingsDomain SettingsUse Boundary Limits(已清除)
    Min Values-3,-1, -1 [m]
    Max Values7, 1, 9 [m]
    BSolverSolver | TimeSimulation Duration2 [s]
    Solver | GeneralOutput Settings | Time Interval0.005 [s]
    Simulation TargetCPU ⯆

20.1.7. 设置确认

打开3D View窗口后,您的Data面板和工作区应类似于下图。

 

20.1.8. 仿真项目

  1. Solver实体中,单击Start

出现Simulation Summary屏幕(如图所示),然后开始处理。

 

 


提示:  您可以使用Auto Refresh复选框,以在处理过程中在3D View窗口中查看结果。


20.1.9. 结论

这就完成了本教程的第一部分,该部分将Rocky用来设置和处理肥料撒施机的仿真。

在本教程中,可以:

  • 使用Motion Frames来设置旋转运动。

  • 设置CFD耦合的1-Way Constant 方法。

  • 定义自定义Domain Settings 限制。

下一步是什么?如果您成功完成了本教程,那么您就可以进入第二部分,并对该项目进行后处理。

20.2. 第二部分:后处理

20.2.1. 目标

本教程旨在了解如何使用多个嵌套用户进程,以了解我们在前面第一部分仿真的撒播机分撒肥料颗粒的方式。

  • 第二部分将从第一部分结束的地方继续。

您将了解如何:

  • 分层安排多个嵌套User Processes,以得到特定的结果。

  • Eulerian Statistics创建自定义属性。

您将使用这些功能:

  • 用户进程,包括:

    • 立方体

    • 属性

    • 颗粒时间选择

    • 欧拉时间统计

20.2.2. 前提条件


重要:  与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。

  • 高级教程旨在面向更熟悉Rocky用户界面(UI)并且已经充分了解常见设置和后处理任务的用户。

  • 如果您尚未达到这种熟悉程度,建议您在开始本教程之前至少完成教程01-05


20.2.3. 打开项目

  1. 如果您已经完成了本教程的第一部分,请确保项目在Rocky中已打开。(第二部分将从第一部分结束的地方继续。)

  2. 如果您没有完成第一部分中的项目,请执行以下所有操作:

    1. 此处下载dem_tut20_files.zip文件。

    2. dem_tut20_files.zip解压缩到您的工作目录。

    3. 打开Rocky 2025 R1。


      重要:  要使用所提供的Rocky项目文件,您必须安装Rocky 2025 R1或更高版本。如果您有较早版本的Rocky,请将Rocky升级到最新版本,或从头开始完成第一部分


    4. 在Rocky程序中,单击Open Project按钮,找到dem_tut20_files文件夹,然后从tutorial_20_A_pre-processing文件夹中打开tutorial_20_A_pre-processing.rocky文件。

    5. 处理仿真。(从Solver 实体中,单击Start按钮。)

20.2.4. 后处理-累积质量场

一旦完成仿真过程,即可开始第二部分的操作。

  • 在本教程中,我们要了解肥料撒施机在整个区域内分配颗粒质量的方式。

  • 为了实现这一目标,我们将创建一个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上方)

20.2.5. 后处理-周期选择

但是在创建第一层之前,我们需要选择一个时间段来分析。具体而言:

  • 我们将选择系统处于稳定状态的一个时间段。

  • 换句话说,注入的颗粒数量与离开区域的颗粒数量大致相同。

我们获得这些信息的方法是:先绘制Particles Count 图,然后选择曲线稳定的时间段。

  1. Particles实体的Curves 选项卡上,右键点击Particles Count,然后点击Show curve in new Plot.。

  2. 按住Shift键的同时,左键单击Curve上面,查看各项值(如图所示)。

     

我们可以看到,大约0.7 (s)后达到稳态。

我们现在知道,分析时,我们要选择这一点之后的一个时间段。

20.2.6. 第1层-颗粒时间选择

我们希望分析颗粒在地上分布的形式。

但为了缩短第一部分的处理时间,我们没有包含表示地面的几何结构;因此,本教程中的颗粒在Y方向落得足够远之后很快就离开了域。

在这种情况下,最好是在颗粒离开域之前分析层中的质量分布。

为了实现这一点,我们将定义一个Particles Time Selection,在这种情况下,我们将记录特定时间范围内通过域的每个颗粒的最后位置。


注意:  Particles Time Selection 也可应用于特定区域,如Cube 或Cylinder。


此外,因缺乏地面几何结构而离开域的颗粒将会记录在非常接近域底部的位置。如果颗粒实际上就在地上,这和颗粒在地面上的位置很相似。

20.2.7. 第1层-颗粒时间选择

现在,我们要选择在1s to 2s周期内通过域的所有颗粒。(根据前面的测量,我们知道这是在稳定状态下。)

  1. 使用下表中的信息创建该分析中的第一层。

    步骤数据实体编辑器位置参数或操作设置
    AParticles创建Particle Times Selection用户进程
    BUser Processes

    Particles Time Selection <01>

    Time SelectionDomain RangeTime Range ⯆
    Initial1 [s]
    Final2 [s]

  2. 按下Ctrl+D,打开3D View

    • 在默认情况下,颗粒以Automatic/Rich 模式显示,该模式按颗粒的原尺寸显示完全渲染的颗粒。

    • 在这个域视图中,颗粒太小,看不到,所以我们将切换到Simple模式,其将把颗粒渲染成大小固定的点。

    • 此外,我们还将减少视图中点的大小,以提高可见性。

  3. Data Editors面板中,选择Coloring选项卡,然后执行以下两项操作(如图所示):

    1. 确保启用Visible

    2. Level of Detail 列表中选择Simple

    3. Nodes下,将Point size定义为2

       

3D View现在显示了1s至2s通过域的所有颗粒。

每个颗粒都记录在其最后所处的位置,或者其离开域之前的位置,亦或者其最后一个时间步长所处的任何位置,其中包括当时仍飘在空中的任何颗粒。

 

20.2.8. 第2层-立方体

我们希望生成一个Mass Field 来分析颗粒在地面上的分布。因此,我们必须排除最后一个时间步仍飘在空中的颗粒。

所以,我们将在Particles Time Selection <01>上创建一个Cube用户进程,以便只选择最接近地面的颗粒层。

  1. 使用下表中的信息创建该分析中的第二层。

    步骤数据实体编辑器位置参数或操作设置
    AUser Processes

    Particles Time Selection <01>

    创建Cube用户进程
    BUser Processes

    Cube <01>

    CubeCenter2, -0.95, 4 [m]
    Magnitude20, 0.1, 20 [m]
    ColoringLevel of DetailSimple ⯆
    Nodes | Point Size2 [ - ]

  2. Data面板中,从视图中隐藏Particles Time Selection <01>

3D View 现在显示Particles Time Selection <01>的颗粒,它们靠近地面,在Cube <01>内。

 

20.2.9. 第三层-欧拉统计

为了通过这些选定的颗粒生成Mass Field ,我们需要在刚刚创建的Cube上创建一个Eulerian Statistics用户进程。

  1. 使用下表中的信息创建该分析中的第三层。

    步骤数据实体编辑器位置参数或操作设置
    AUser Processes

    Cube <01>

    创建Eulerian Statistics用户进程
    BUser Processes

    Eulerian Statistics <01>

    Eulerian StatisticsWidth Divisions20 [ - ]
    Heigth Divisions1 [ - ]
    Depth Divisions20 [ - ]

接下来,为了计算每个Eulerian Statistics单元中的颗粒质量,我们必须添加一个来自Particles的新属性。

  1. 使用下表中的信息继续执行分析。

    步骤位置参数或操作设置
    AUser Processes

    Eulerian Statistics <01>

    PropertiesAdd and edit properties for source entity(按钮)
    BAdd or edit eulerian properties(对话框)Add property(按钮)
    CAdd new property (对话框)OperationSum ⯆
    Particle PropertyParticle Mass ⯆
    Add property(按钮)

  2. Data Editors面板的Properties选项卡上,将新创建的Sum of Particle Mass拖放到3D View中。


提示:  您可能需要使用Data面板上的眼睛图标来隐藏其他用户进程。


 

20.2.10. 第4层-过滤器

现在我们将过滤所得到的Cumulative Mass Field ,只显示颗粒质量高于特定值的地方。

为了实现这一点,我们将在Eulerian Statistics上应用Filter用户进程 。

  1. 使用下表中的信息创建该分析中的第四层。

    步骤数据实体编辑器位置参数或操作设置
    AUser Processes

    Eulerian Statistics <01>

    创建Filter用户进程
    BUser Processes

    Filter <01>

    PropertyPropertySum of Particle Mass ⯆
    ModeCut ⯆
    TypeRange ⯆
    Minimum Value0.001 [kg]
    Maximum Value1 [kg]

  1. Filter <01>实体中,选择Properties选项卡,再选择Sum of Particle Mass,然后将其拖放到3D View中。(结果如图所示。)


    提示:  通过使用其Data面板上的眼睛图标来隐藏Eulerian Statistics <01>


     

然后,我们可通过启用Show on Node选项来解决属性的面可视化问题。

  1. Data Editors面板中,选择Coloring选项卡,启用Show on Node?复选框,然后清除Edges复选框。

 

20.2.11. 累积质量场-扩展

仿真稳态场可用来减少计算时间。这种仿真操作就像我们在本教程中所做的那样,无需仿真整个农田的分布——其可能需要使用数以百万计的颗粒来执行成本高昂的仿真。

可通过以下方式进行更多的分析:

  • 沿着轨迹的几个点叠加同一块田地,这可生成整个农田的质量分布。

  • 使用PrePost Scripting功能提取每个单元的值,然后开发一个Python脚本来执行轨迹及叠加计算。

20.2.12. 结论

这就完成了本教程的第二部分,该部分使用Rocky来分析肥料撒施机在整个域内分撒颗粒的方式。

在本教程中,可以:

  • 分层安排多个User Processes,得到特定的结果。

  • Eulerian Statistics创建自定义属性。

下一步是什么?如果您成功完成了本教程,那么您就可以继续学习下一个教程了。