第 21 章 教程-装瓶流水线

(第一部分)设置并处理使用Custom Inputs的仿真,其可帮助您定义颗粒的特定位置、释放时间和方向。

(第二部分)分析瓶子输送,以便识别卡住及翻倒的瓶子并准确指出瓶子因撞击而损坏的可能原因。

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

21.1.1. 目标

本教材旨在了解如何设置并处理使用Particle Custom Inlets的仿真,其可帮助您定义颗粒的特定位置、释放时间和方向。

本教程考虑的场景是Bottling Line作业,其既能输送装满香槟的瓶子,又能将其整合成一条线。

您将了解如何:

  • 使用Particle Custom Inlet在特定位置、时间和方向注入颗粒。

  • 定义颗粒形状的自定义Center of Mass和Moments of Inertia。

您将使用这些功能:

  • Particle Custom Inlet

  • Particle Mass Center和Moment of Inertia Properties

21.1.2. 前提条件


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

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

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


21.1.3. 几何结构

 

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

  • (1) 轨道(单项组件)

  • (2) 输送带(13项独立组件)

这14个项将按.stl文件导入,其位于教程目录下。

21.1.4. 项目创建

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

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

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

  3. 打开Rocky 2025 R1

  4. 创建新项目。

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

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


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


    步骤数据实体编辑器位置参数或操作设置
    AStudyStudyStudy NameBottling Line
    BPhysicsPhysics | MomentumNumerical Softening Factor0.1 [ - ]
    CModulesModulesInter-particle Collisions Statistics(已启用)
    DModules

    ﹂Inter-particle Collisions Statistics

    Inter-particle Collisions StatisticsNormal Impact Velocity(已启用)
    EGeometriesImport WallRail.stl(1个文件),从Belt_01.stlBelt_13.stl(13个文件),其Import Unit设置为“mm”

21.1.5. 运动坐标系

为了实现安全输送瓶子并将其整合成一条线的目标,13台输送机必须在轨道将瓶子排成一条线时增加速度。

Motion Frames步骤中,我们将为每条输送带创建一个运动坐标系。

  1. 使用下表中的信息来设置您的第一个运动坐标系。

    步骤数据实体编辑器位置参数或操作设置
    AMotion FramesCreate Motion Frame
    BMotion Frames

    Frame <01>

    FrameNameBelt Velocity <01>
    Keep in PlaceGlobal ⯆
    Add motion
    Velocity0.1676, 0, 0 [m/s]
    CGeometries

    Belt_01

    GeometryMotion FrameBelt Velocity <01> ⯆
    MaterialDefault Belt ⯆

  2. 使用以下两种方法之一对剩余的12台输送机重复上述步骤:

    • Manual Method:使用下表中的值手动创建这些额外Motion Frames并将其分配至各自的皮带。

       

    • Automatic Method:为了节省设置时间,请使用可帮助您完成该步骤的脚本。要使用该脚本,请执行以下操作:

      1. 在Tools菜单中,确保启用了Python Shell复选框。

         

      2. 导航到前面下载的dem_tut21_files文件夹,找到script文件夹,然后打开tutorial_21_script.txt文件。

      3. 在文本阅读器中,按Ctrl+A选择所有内容,然后将其复制粘贴到Python Shell面板中(如图所示)。命令将自动执行。

         

现在应该创建所有13个Motion Frames并将其分配到各自的皮带上。

此外,每条皮带都应该将其Material正确设置为Default Belt

21.1.6. 继续项目设置

既然已经定义了Motion Frames,就可继续设置项目。

  1. 使用下表中的信息来定义Materials Interactions,并导入Custom Particle形状。

    步骤数据实体编辑器位置参数或操作设置
    AMaterials Interactions… | Default Particles

    Default Belt

    Static Friction0.4 [ - ]
    Dynamic Friction0.4 [ - ]
    … | Default Particles ⯆

    Default Boundary

    Static Friction0.1 [ - ]
    Dynamic Friction0.1 [ - ]
    … | Default Particles ⯆

    Default Particles

    Static Friction0.1 [ - ]
    Dynamic Friction0.1 [ - ]
    BParticlesCreate Particle
    CParticles

    Particle <01>

    ParticleNameBottle
    ShapeCustom Polyhedron ⯆
    Select file to importBottle.stlImport Unit设置为“m”

21.1.7. 凹凸检测

  1. Convert to Convex?对话框选择1 - Keep the shape as is.,然后点击OK(如图所示)。

     

在这种情况下,我们希望Rocky将颗粒视为Concave,以保持其形状。

否则,它会将几何结构转换为Convex,我们将失去一些Bottle的细节。


提示:  有关Convex和Concave检测的更多信息,请参阅教程-片剂包衣机


21.1.8. 颗粒组定义

为了正确表示Filled Bottle的行为,我们必须改变颗粒的Center of MassMoments of Inertia

  1. Data面板选择Movement子选项卡。

  2. 启用Change Mass Properties复选框。

    在Rocky中,Center of Mass Offset 表示为每个方向颗粒大小的百分比。

    在本教程中,我们认为filled Bottle的Center of Mass Offset 比空瓶低5%(高度)。

  3. 设置Center of Mass Offset(如图所示)。

    在Rocky中,自定义Moments of Inertia 表示为相对于Principal axessecond moments of volume (length5) ,假设sieve size of 1


    提示:  您可以使用CAD软件计算这些值。


  4. 也请设置Principal Moment of Inertia

     


    注意:  我们将XYZ方向保留为默认值,因为我们的Bottle已基本上与其主轴对齐了。


  5. 在Size选项卡中,确保为Size Type选择了Sieve Size,然后输入Size(如图所示)。

     

    重要的是,我们一定要确保该筛眼孔径 产生的体积与瓶子的实际体积(353ml)相匹配。我们将通过使用Info选项卡上的值来实现这一点。

  6. 在Info选项卡中验证Volume值。

     

  7. 现在尺寸设置好了,重要的是查看Particles Details窗口并注意最小的Y坐标(如图所示)。

稍后将使用该值来指定所需的Particle Custom Inlet位置。


注意:  在这个颗粒视图中,Geometric Center(橙色点)相对于颗粒的局部坐标系处于(0,0,0)位置;由于我们之前定义的Center of Mass Offset,Center of Mass(蓝点)位于其下面一点。


 

21.1.9. 颗粒自定义入口定义

在本教程中,我们希望在given位置和时间注入瓶中。

在Rocky中,这可以通过使用Particle Custom Inlet特性来实现,该特性使用导入的.csv文件来定义每个颗粒的注入属性。

在.csv文件中,颗粒属性定义为标题列,每个颗粒设置在单独的行上。

可以在.csv文件中定义的颗粒属性(及其各自的单位)将在下一张幻灯片中讲解。

可以在Particle Custom Inlet .csv 文件中定义的属性列:

  • x、 y和z(需要的)是全局坐标(以米(m)为单位),给定颗粒的Geometric Center将布置在其中。

  • size(可选)为注入颗粒的 Sieve Size,以米(m)为单位。

  • release(可选)是注入颗粒的时间,以秒(s)为单位。如果在给定时间内有任何阻塞,则会延迟注入,并会在Simulation Log面板中显示警告。

  • anglenxnynz (可选)定义每个颗粒围绕单位向量(nx、ny、nz)的旋转。angle用弧度(rad)来定义,向量用米(m)来定义。

  • 温度(仅在启用Thermal Modeling 时需要)是颗粒的温度,以开尔文(K)为单位。

  • uxuyuz(可选)是颗粒在每个方向的初始速度,以米每秒(m/s)为单位测量。

  • wxwywz(可选)是颗粒在每个方向的初始角速度,以弧度每秒(rad/s)为单位测量。

    在本教程中,我们为您提供了一个.csv文件(如图所示),其将在Bottling Line 入口注入成排的瓶子。

 

注意:在本教程中,我们只需要x、y、z和release属性。


重要:  在创建自己的.csv文件时,请确保使用逗号作为分隔符。


21.1.10. 输入定义

现在,我们将创建一个Particle Custom Inlet 来将颗粒注入到域中。

  1. 使用下表中的信息来设置入口。

    步骤位置参数或操作设置
    AInlets and OutletsCreate Particle Custom Inlet
    BInlets and Outlets

    Particle Custom Inlet <01>

    Custom InputParticleBottle ⯆
    Load File
    CSelect file to import(对话框)File namecustom_bottle_injection.csv

File Info下,我们可以验证汇总的信息,例如Number of Particles以及在我们加载的.csv文件中定义的各种PropertiesMin值和Max 值。

 


注意:  y属性的min(0.063)值和max(0.063)值表示:所有颗粒都将注入到输送机上方0.063m位置。如果您还记得的话,这大概是几何中心与瓶底之间的距离,我们之前在幻灯片15中看到过。


21.1.11. 继续项目设置

在本教程中,bottles的高度higherRail 的高度(如图所示)

 

因此,如果我们使用几何结构极限作为边界,则部分颗粒将在域外。

因此,我们将手动设置边界限制。

  1. 请使用下表中的信息来完成项目设置。

    步骤数据实体编辑器位置参数或操作设置
    ADomain SettingsDomain SettingsUse Boundary Limits(已清除)
    Min Values-0.1, 0, -0.3 [m]
    Max Values5.4, 0.5, 1 [m]
    BSolverSolver | TimeSimulation Duration40 [s]
    Output Settings | Time Interval0.01 [s]
    Solver | GeneralSimulation TargetCPU ⯆

21.1.12. 设置确认

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

 

21.1.13. 仿真项目

  1. Solver实体中点击Start

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

 

 


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


21.1.14. 结论

这样就完成了本教程的第一部分

使用Rocky设置并处理Bottling Line仿真。

在本教程中,可以:

  • 导入Custom Polyhedron颗粒形状并定义自定义Center of MassMoments of Inertia

  • 创建一个Particle Custom Inlet 注入方法。

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

21.2. 第二部分:后处理

21.2.1. 目标

本教程旨在使用我们在第一部分中设置并处理的仿真结果来分析各种输送机上的瓶子输送。

您将了解如何:

  • 确定不同的工作时间段。

  • 验证生产线上是否有阻塞或卡瓶。

  • 验证在输送过程中是否有瓶子倒下或翻转。

  • 识别撞击速度最高的瓶子和区域。

您将使用这些功能:

  • Particle Properties和Curves

  • Time Plots

  • 3D View Windows

21.2.2. 前提条件


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

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

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


21.2.3. 打开项目

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

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

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

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

    3. 打开Rocky 2025 R1。


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


    4. 从Rocky程序中点击Open Project按钮,找到dem_tut21_files文件夹,然后从tutorial_21_A_pre-processing文件夹打开tutorial_21_A_pre-processing.rocky文件。

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

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

21.2.4. 颗粒计数

确定域内是否有主要阻塞的简单方法是绘制每个输出的Particles Count 图。

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

 

时间数列图显示,在大约13s(第一个瓶子离开域时)和23s(最后一个瓶子注入时)之间,域内颗粒数保持稳定。

该分析证明,没有阻塞阻止瓶子离开域。

21.2.5. 停留时间

颗粒的Residence Time是它在域内所停留的时间。

在连续工作的一段时间内,所有颗粒在域内所用的时间应该大致相同。

因此,给定时间步长的Maximum Residence Time应该是稳定的。我们来验证:

  1. Particles 实体的Properties选项卡上,右键点击Residence Time,指向Time Plot,指向Show in selected Time Plot,然后点击Max

 

最大Residence Time曲线显示,在连续工作期间,每个颗粒在域内停留的时间约为14s。

21.2.6. 瓶取向

现在我们将检查是否有瓶子在输送过程中倒下或翻转,不希望出现这种情况。我们可以使用颗粒的y坐标分析。


注意:  (a) 瓶子的Geometric Center(GC)坐标为(0,0,0)(见下图)。

(b) 瓶底与GC之间的距离为0.0628m。

(c) 瓶子的最大半径为0.032 m。(如图所示)


 

鉴于进入仿真域的颗粒的y坐标是从底部测量的(如下图所示),我们可以假设:

  • 一个完全直立的瓶子的y坐标为0.0628m。

  • 倒在轨道上的瓶子的y坐标为0.032米。

 

要执行这一分析,请执行以下操作:

  1. Particles实体的Properties选项卡上,右键点击Coordinate:Y,指向Time Plot,指向Show in new Time Plot,然后点击Min


    注意:  由于这一仿真的敏感性,您可能会得到与本教程所呈现的结果不同的结果。



    提示:  如果您的图表显示的峰值或谷值与初始值相比有相关差异,您可以在3D View中检查,在出现峰值或谷值时哪个瓶子倒在轨道上了。


 

所得图表显示,最小颗粒Coordinate:Y大约是所有输出的期望值,表明所有瓶子都保持直立。

21.2.7. 瓶子撞击速度

瓶子可能损坏的另一个原因是,与其它瓶子或输送机组件的碰撞。

为了测量撞击程度,我们将使用在碰撞过程中收集的Relative Average Velocity数据。

碰撞的Relative Average Velocity越高,撞击能量就越大,造成损坏的可能性就也越大。

提醒一下,我们打开Inter-particle Collision Statistics模块并启用Normal Impact Velocity 组件时,我们已经在本教程第一部分启用了这些数据的收集。

要启动分析,请执行以下操作:

  1. Particles实体的Properties选项卡上,右键点击Velocity :Impact :Normal :Mean,指向Time Plot,指向Show in new Time Plot,然后点击Max

  2. 要查看撞击发生的确切时间,请选择Table选项卡(如图所示)。

     

 

该表显示,最大速度的撞击出现的时间是25.19 s


注意:  您的结果可能与这些结果不同。请选择正确的Time


  1. 使用下表中的信息创建一个 3D View窗口,以确定哪些瓶子有这种撞击速度,以及其发生的位置。

    步骤位置参数或操作设置
    ATime ToolbarTime25.19 s ⯆
    BParticles | Velocity : Impact : Normal : MeanShow in new 3D View

 

视图显示,最高撞击速度发生在轨道的最后S-curve附近,这是最快皮带输送瓶子的时候。

除该碰撞外,如果我们移动滑块来研究这一点周围的时间,我们会看到,大多数最高撞击速度都出现在这一相同位置附近。

21.2.8. 结论

这样就完成了本教程的第二部分

使用Rocky对Bottling Line的仿真进行后处理。

在本教程中,可以:

  • 使用Particle Count曲线来确定不同的工作周期,并检测可能存在的主要阻塞。

  • 使用Residence Time属性来确定是否有瓶子在运输过程中被卡住。

  • 使用Particle Coordinate:Y属性来识别未完全保持直立的瓶子。

  • 使用我们在第一部分收集的 Inter-particle Collision Statistics数据来分析出现最高Impact Velocities 的时间和位置。

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