(第一部分)设置并处理一次仿真,该仿真使用.csv文件定义的Custom Fibers。使用Particle Custom Inlet以及Custom Fibers和 Frozen Segments,来设置草Fiber 的位置。
(第二部分)使用Particle Mass来观察Fiber是如何断裂的,计算割草机刀片的功率和扭矩,并确定刀片的哪些区域最容易磨损。
本教程旨在了解如何设置和处理一次仿真,该仿真使用通过Frozen Segments定义的Custom Fibers。
本教程考虑的场景是割草机割草,在该场景中单独的草植物由带Frozen Segments的Custom Fibers代表,其中纤维附着在地面上。
您将了解如何:
使用.csv文件定义Custom Fiber颗粒形状
将一个颗粒形状导出到一个.stl文件中
使用Particle Custom Inlet以及Custom Fibers和 Frozen Segments,来设置草Fiber 的位置
将草Fibers附加在运动坐标系上
您将使用这些功能:
Particle Custom Inlet
Custom Fiber Particle Shape
Multi-Element (Flexible) Particles
Frozen Fibers
Joint Breakage
Particle Shape Export
重要: 与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。
高级教程旨在面向更熟悉Rocky用户界面(UI)并且已经很好地了解常见设置和后处理任务的用户。
如果您尚未达到这种熟悉程度,建议您在开始本教程之前至少完成教程01-05。
要开始设置本教程,请执行以下操作:
在此处下载
dem_tut22_files.zip文件。将
dem_tut22_files.zip解压缩到您的工作目录。打开Rocky 2025 R1。
创建新项目。
将空项目保存到您选择的位置。
请使用下表中的信息开始设置Rocky项目。
提示: 如果您在这些表格中遇到了不熟悉的设置或过程,请参考Rocky用户手册和/或其他教程(通过入门教程和高级教程),以找到您需要的详细说明。
步骤 数据实体 编辑器位置 参数或操作 设置 A Study Study Study Name Lawn Mower B Physics Physics | Momentum Numerical Softening Factor 0.1 [ - ] C Modules Modules Boundary Collision Statistics (已启用) D Modules ﹂Boundary Collision Statistics
Boundary Collision Statistics Intensities (已启用) E Geometries Import Wall blades.stl、ground.stl和mower.stl的Import Unit均设置为“mm” F Geometries ﹂blades
Wall | Transform Translation 0, 0.005, 0 [m] Triangle Size 0.01 [m] G Motion Frames Create Motion Frame H Motion Frames ﹂Frame <01>
Frame Name Translation Add motion Velocity -0.17, 0, 0 [m/s] I Geometries ﹂ground
Wall Motion Frame Translation ⯆ J Motion Frames Create Motion Frame K Motion Frames ﹂Frame <01>
Frame Name Rotation Relative Position 0.185, 0, 0 [m] Add motion Type Rotation ⯆ Initial Angular Velocity 0, -30, 0 [rad/s] L Geometries Wall Motion Frame Rotation ⯆ M Materials ﹂Default Particles
Material Bulk Density 439 [kg/m3] Young's Modulus 1e+07 [N/m2]
在Particles步骤中,我们将创建一个Custom Fiber,其在.txt或.csv文件中定义,然后导入Rocky。
Custom Fiber形状由独立且相连的Segments组成,其位置由每个起始及结束节点的坐标定义。
其它属性可以按Segment定义,包括其Diameter,以及Segment是否将视为Frozen等。
在本教程中,我们将创建一个有四段不同直径的段Custom Fiber,其中底部段是Frozen(如图所示)。
我们将用来定义该形状的.csv文件的结构如下所示:
标题下的每一行都定义了一个单独的段,其中:
X1、y1和z1是段起始节点的坐标。
x2、y2和z2是段结束节点的坐标。
diameter 是段的直径。
k_multiplier(可选)是段的杨氏模量乘子。
frozen(可选)表示段将视为冻结(1)还是未冻结(0)。
注意: 定义为冻结的多单元Fiber的段将“固定”在某个位置,并且只有Fiber的未冻结段响应仿真中来自其它对象的相互作用。
现在我们来创建一个Custom Fiber ,并导入对其定义的.csv文件。
创建一个新Particle。
在主Particle选项卡中,输入Name,然后将Shape定义为Custom Fiber。
从Select file to import 对话框中,导航到geometry文件夹并打开grass.csv文件。
在Import File Info对话框中点击OK。
在Size子选项卡中,设置Size Type。
在Data Editors面板中,点击View按钮。
代表Grass Fiber的颗粒形状显示在Particle Details窗口中。
因为我们在.csv文件中设计了这个Custom Fiber形状,所以如果出于任何原因需要时,我们都没有可以在CAD程序中使用的副本。
幸运的是,Rocky可帮助我们将Particle形状导出到.stl文件中。我们来试试:
在Data面板的Particles下,右键点击Grass Particle,指向Export ,然后点击Rendered Shape。
在Select output unit 对话框中,点击OK。
在Select target STL file对话框中,选择一个位置并为文件输入File name,然后点击Save。
现在,您有一个草Fiber形状的.stl副本。
在本教程中,我们希望草Fibers在垂直轴周围有一个随机的方向:
从Data Editors面板中选择Orientation子选项卡。
启用Random Angle复选框并设置Half Angle(x,y,z)。
通过这种方式,我们已经定义了y角限制,在此范围内,Rocky将随机定向Particle集中的每个单颗粒。
在本教程中,我们希望草Fiber在运动中既柔韧,又有利于割草机刀片在接触草时就能将其割(断)。
我们将通过组合Multiple Elements的Fiber来启用这两个功能。
在默认情况下,将Fiber定义为Single Element。这可形成一个无法破坏的刚体形状。
为了同时支持柔韧性和断裂性,Fibers必须由Multiple Elements组成,其将每个Segment 分成一个或多个Elements。
Elements的数量(大致)由Target Number of Elements数量控制,并且可以在Info选项卡上验证。
柔韧性和断裂性都出现在将各Elements相互连接的Joints位置。
在本教程中,我们希望Elements的数量等于组成Fiber的Segments的数量(4),所以我们将Target 设置为小于或等于该数的值。
从Data Editors面板中选择Composition子选项卡,然后从Composition列表中选择Multiple Elements。
然后,我们可以在Info选项卡上验证Rocky将计算的Elements数。从Info子选项卡中查看Elements值(如图所示)。
对于Multi-Element颗粒,Rocky为接头断裂提供了five种模型选项:
Shear Stress Criterion
Griffith Surface Energy
Tensile Stress Criterion
Tensile or Shear Stress Criterion
von Mises Stress Criterion
提示: 关于这些模型的更多信息,可以在Rocky DEM Technical Manual中找到。
从Data Editors面板中选择Breakage子选项卡,然后定义Model 和Shear Stress Limit (如图所示)。
在本教程中,我们将创建一个Particle Custom Inlet ,在草坪状模式中精确定位草Fibers。
先将草Fiber的底部Segment定义为冻结,我们将确保我们定位的颗粒一直粘在地面上并保持直立,就像扎根一样。
如果我们没有采取这一步,由于重力和/或与割草机的接触,草Fibers在布置后很快就会倒下。
要定义自定义输入,请使用以下信息:
步骤 数据实体 编辑器位置 参数或操作 设置 A Inlets and Outlets Create Particle Custom Inlet B Inputs ﹂Particle Custom Inlet <01>
Custom Input Particle Grass Particle ⯆ Load File grass_position.csv Motion Frame Translation ⯆
因为我们使用的是multi-element Frozen Fibers,所以我们可以选择将其附加到Motion Frame上。这样做可以使颗粒的“冻结”部分沿着指定的运动路径移动。
在本教程中,我们会分配Translation Motion Frame,其将使草沿地面向割草机刀片移动。
重要: 当您将Motion Frame附加到Particle Custom Inlet时,.csv文件中的release属性必须为所有颗粒设置为零或全部省略。
在File Info下,我们可以验证在导入的.csv中定义的Properties 的汇总信息(如图所示)。
注意: .csv文件中设置的ux属性定义了X方向的初始速度,该属性使用与我们的平移运动坐标系相同的速度定义。
这样做可以确保所有Fiber的Segments都能以相同的速度启动仿真;否则,只有Frozen Segments的运动坐标系速度为0。
使用下表中的信息来定义求解器参数并完成对项目的设置。
步骤 数据实体 编辑器位置 参数或操作 设置 A Solver Solver | Time Simulation Duration 3 [s] Output Settings | Time Interval 0.005 [s] Breakage | Start 0 [s] Breakage | Delay After Release 0 [s] Solver | General Simulation Target CPU ⯆
在Solver实体中点击Start。
出现Simulation Summary屏幕(如图所示),然后开始处理。
提示: 您可以使用Auto Refresh复选框,以在处理过程中在3D View窗口里查看结果。
本教程旨在使用我们在第一部分中设置并处理的仿真结果来分析割草机性能。
您将了解如何:
使用Particle Mass来查看 Fiber是如何断裂的
计算割草机刀片的功率和扭矩
确定割草机刀片的哪些区域最容易磨损
您将使用这些功能:
Geometries Properties和Curves
Time Plots
输出变量
重要: 与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。
高级教程旨在面向更熟悉Rocky用户界面(UI)并且已经很好地了解常见设置和后处理任务的用户。
如果您尚未达到这种熟悉程度,建议您在开始本教程之前至少完成教程01-05。
如果您已经完成了本教程的第一部分,请确保项目在Rocky中是打开的。(第二部分将从第一部分结束的地方继续。)
如果您没有完成第一部分中的项目,请执行以下所有操作:
在此处下载
dem_tut22_files.zip文件。将
dem_tut22_files.zip解压缩到您的工作目录。打开Rocky 2025 R1。
重要: 要使用提供的Rocky项目文件,您必须安装Rocky 2025 R1或更高版本。如果您有较早版本的Rocky,请升级到最新版本或从头完成第一部分。
从Rocky程序中点击Open Project按钮,找到dem_tut22_files文件夹,然后从tutorial_22_A_pre-processing文件夹打开tutorial_22_A_pre-processing.rocky文件。
处理仿真。(从Solver 实体点击Start按钮。)
使用下表中的信息来查看刀片几何结构与草Fibers碰撞的效果。
提醒一下:如果您在这些表格中遇到了不熟悉的设置或过程,请参考Rocky用户手册和/或其他教程(通过入门教程和高级教程),以找到您需要的详细说明。
步骤 项 位置 参数或操作 设置 A Window(菜单) 创建一个New 3D View B Particles Coloring Nodes (已启用) Property Particle Mass ⯆
最初,在仿真0秒时,每个草Fiber都是完整的(无破损)。
移动Time 工具栏上的滑块,您可以观察割草机刀片如何将草颗粒切碎。
注意: 对于断裂的Fibers,只有冻结的Segment 保持直立。
使用下表中的信息为Torque创建一个Custom Curve。
步骤 项 位置 参数或操作 设置 A Geometries ﹂blades
Curves Add new custom curve(按钮) B Add new(对话框) Name Torque Output Unit N.m Inputs | Power (已启用) Inputs | Velocity : Rotational : Y (已启用) C Custom Curves(对话框) Expression A/(2*3.1416*B)
注意: 在步骤C中,请确保输入的表达式表示:
在本教程中,我们将假设为割草机选择适当尺寸的引擎需要知道以下值:
最小扭矩
平均扭矩
最大功率
平均功率
我们可创建四个单独的Time数列图,并在每个图上定位这些信息。但在比较多个仿真值时,这会变得困难重重。
一种更简单的方法是使用Output Variables,它会在一个易于查找的位置将一组Property或Curve数据提取为一个单个值。
我们来使用Output Variables创建该分析所需的四个单个值。
要创建Output Variables,请执行以下操作:
在Tools菜单中,确保启用Expressions/Variables。
在Data Editors面板中,将新创建的Torque (Custom) Curve拖放到Output选项卡上。重复Power 曲线。
从Output选项卡中选择新添加的Power条目,然后点击Edit
按钮。
在Edit Properties对话框中输入Name,然后点击OK。
重复Torque_Custom_ entry,输入Name并定义Operation on Curve。
注意: 刀片逆时针旋转时,最小Torque值将是最大绝对值。
现在我们要求Average值。
在Data Editors面板中,再次将Torque (Custom) Curve 和Power Curve拖放到Output 选项卡上。
选择新添加的Power条目,然后点击Edit
按钮。在Edit Properties对话框中,输入Name,定义 Operation on Curve(如图所示),然后点击OK。
重复Torque_Custom_ entry,输入Name并定义Operation on Curve。
按Ctrl+T,打开Time Plot。
在Data Editors面板中,将新创建的Torque (Custom) 曲线和Power 拖放到Time Plot上。
现在我们有了正确的扭矩和功率值,我们需要为割草机选择合适的引擎。
在Rocky中,您可以使用 surface wear modification来计算磨损效果。
该功能中使用的wear law通过考虑几何结构表面的剪切功来计算其随时间变化的磨损情况。
然而,对于我们在本教程中研究的案例,割草机刀片结构的表面修改不会很明显,因为仿真时间很短。
相反,我们不仅可计算剪切力在每个三角形表面上所做的总功,而且随后还可验证刀片的哪些区域具有highest的剪切功。
您可能还记得:在第一部分中,我们为Boundary Collision Statistics启用了Intensities数据收集。我们可以使用这些数据执行剪切功分析。
一个良好的近似值表达式是:
公式 22–2. |
其中:
(J)是功
(W/m2)为Intensity:Shear,这两者都作用于三角形,
(m2)是Area:Cell,这是
三角形的面积
是时间[s]
(s)是两个输出间的时间,由Time Interval决定。
使用下表中的数据添加一个新的自定义属性,其可计算刀片的剪切功:
步骤 项 位置 参数或操作 设置 A Geometries ﹂blades
Properties Add new custom property(按钮) B Add New(对话框) Name Instantaneous Shear Work Output Unit J Inputs | Area : Cell (已启用) Inputs | Intensity : Shear (已启用) C Custom Property(对话框) Expression A*B*OUTPUT_FREQUENCY D Geometries ﹂blades
Properties Add and edit time statistics properties(按钮) E Edit time statistics properties(对话框) Add time statistics properties(按钮) F Add time statistics properties(对话框) Start time 1 [s] Stop time 3 [s] Operations | Sum (已启用) Properties | Instantaneous Shear Work (Custom) (已启用) 在Properties选项卡中,右键点击新创建的Sum of Instantaneous Shear Work (Custom) 属性,指向3D View,然后选择Show in new 3D View。
在Data面板的Geometries下,隐藏blades组件以外的所有组件。隐藏主Particles实体。

