(第一部分)对使用Rocky中默认包含的颗粒内和颗粒间碰撞统计模块的仿真进行设置和处理,并导入自定义的凸颗粒形状。
(第二部分):使用自定义多面体(包线)用户进程形状来定义喷雾区,然后利用该区域的停留时间信息来计算可变性系数(CoV)。分析收集的碰撞统计和接触数据。
本教程的主要目的是了解如何对使用Rocky中包含的颗粒内和颗粒间碰撞统计模块的仿真进行设置和处理。
我们将在第二部分和第三部分中分析收集的仿真结果和数据。
考虑的场景是对通常用于制药和食品加工行业的片剂包衣操作的性能进行分析。
您将了解如何:
导入自定义颗粒形状
使用原始尺寸比例定义颗粒尺寸
启用收集各种颗粒和接触数据
您将使用这些功能:
模块,包括:
Inter-particle Collision Statistics
Intra-particle Collision Statistics
自定义多面体导入
重要: 与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。
高级教程主要面向的用户不仅更熟悉Rocky用户界面(UI),而且已经非常了解常见设置和后处理任务。
如果您还未达到这种熟悉程度,建议您在开始本教程之前至少先完成教程01~05。
要开始设置本教程,请执行以下操作:
在此处下载
dem_tut09_files.zip文件。将
dem_tut09_files.zip解压缩至工作目录。打开Rocky 2025 R1。
创建新项目。
将空白项目保存到您选择的位置。
使用下表中的信息开始设置您的Rocky项目。
提示: 如果您在这些表格中遇到了不熟悉的设置或过程,请参考Rocky用户手册和/或其他教程(通过入门教程和高级教程),以找到您需要的详细说明。
步骤 数据实体 编辑器位置 参数或操作 设置 A 研究 研究 Study Name Coater B Physics Physics | 动量
Numerical Softening Factor 0.01 [ - ]
对于Modules步骤,我们将启用收集颗粒的一些附加数据,包括:
Inter-particle Collision Statistics | Normal Impact Velocity:
在输出时间步长期间,收集记录的由每个颗粒碰撞产生的,在法线方向上冲击相对速度的mean、standard deviation、skewness和kurtosis值。
Intra-particle Collision Statistics | Frequency:
收集通过选定颗粒集的代表性颗粒的不同区域测量的collision frequency值。这对于分析颗粒表面上的碰撞非常有用。
使用下表中的信息来定义您的模块和其他项目设置。
| 步骤 | 数据实体 | 编辑器位置 | 参数或操作 | 设置 |
|---|---|---|---|---|
| A | Modules | Modules | Inter-Particle Collision Statistics | (已启用) |
| Intra-Particle Collision Statistics | (已启用) | |||
| B | Modules ﹂Inter-Particle Collision Statistics | Inter-Particle Collision Statistics | Normal Impact Velocity | (已启用) |
| C | Modules ﹂Intra-Particle Collision Statistics | Intra-Particle Collision Statistics | 频率 | (已启用) |
| D | Geometries | Import Wall | Drum.stl的Import Unit设置为“m” | |
| E | Motion Frames | Create Motion Frame | ||
| F | Motion Frames ﹂Frame <01> | Frame | Name | Rotation Motion |
| Add Motion | ||||
| 开始时间 | 1 [s] | |||
| 类型 | 旋转 | |||
| Initial Angular Velocity | 0, 0, 12 [rev/min] | |||
| G | Geometries ﹂Drum | 壁面 | Motion Frame | Rotation Motion⯆ |
| H | 材料 ﹂Default Particles | Material | Use Bulk Density | (已清除) |
| 密度 | 1150 [kg/m3] | |||
| I | 材料 | Materials Interactions | Default Particles⯆ Default Boundary⯆ | Static Friction | 0.39 [ - ] |
| Dynamic Friction | 0.39 [ - ] | |||
| 恢复系数 | 0.78 [ - ] | |||
| Materials Interactions | Default Particles⯆ Default Particles⯆ | Static Friction | 0.45 [ - ] | ||
| Dynamic Friction | 0.45 [ - ] | |||
| 恢复系数 | 0.78 [ - ] | |||
| J | 微粒 | Create Particle | ||
对于Particles步骤,我们将通过导入一个片剂形状的.stl文件来创建自定义的多面体颗粒集,如下一节所述。
选择新的<Particle <01>条目,然后从Particle主选项卡中,将Shape定义为Custom Polyhedron。
从Select file to import对话框中,导航到您之前下载的dem_tut09_files文件夹,找到geometry文件夹,选择Tablet.stl文件,然后单击Open。
从Import File Info对话框中,确保Import Unit被定义为m,然后单击OK。
注意: 我们刚刚导入的片剂形状是一个完美的凸形。如需了解Rocky如何对导入不完美的凸形形状进行处理,请参考本教程末尾的附录一节。
对于本教程,因为我们要导入我们自己的自定义形状,所以我们将使用Original Size Scale作为Size Type。
Original Size Scale方法允许您使用导入颗粒几何结构的尺寸作为缩放最终颗粒尺寸的基础。
例如:
比例因子为1表示等于原始导入尺寸(100%)。
比例因子为0.5表示等于原始尺寸的一半(50%)。
比例因子为2表示等于原始尺寸的两倍(200%)。
要设置颗粒尺寸,请执行以下操作:
在Size子选项卡中,从Size Type列表中选择Original Size Scale。
要可视化新创建的颗粒,单击View按钮。出现了一个新的Particles Details窗口,显示了(透明)颗粒几何结构、其几何中心(黄点)和质心(蓝点)。
从Coloring选项卡中,启用Edges复选框,以在Particle Details视图中查看网格划分。
提示: 为了确保对颗粒表面上的属性分布进行良好的分析,请确保使用边旁边具有高分辨率三角形的颗粒。
使用下表中的信息继续设置您的项目。
步骤 数据实体 编辑器位置 参数或操作 设置 A Inlets和Outlets Create Volumetric Inlet B 输入 ﹂Volumetric Inlet <01>
Volumetric Inlet | Particles 添加行(x1) (1) Particle | 质量
Particle <01> @ 2.7 [kg] Volumetric Region | Region Seed Coordinates 0, -0.1, 0 [m] Geometries | Drum (已启用) Use Geometries to Compute (已启用)
Rocky中的接触是指在仿真过程中经历了与另一个颗粒碰撞的几何结构或颗粒所在的特定位置。
在处理过程中,Rocky总是计算并利用接触数据。但是为了节省文件空间,您可以选择是否保留它。
对于本教程,我们将启用收集接触数据,以便我们可以在稍后的后处理中分析颗粒的应力分量。
从Data面板中,选择Contacts,然后从Data Editors面板中,确保选中Contacts选项卡。
启用Collect Contacts Data复选框。
现在,使用下表中的信息来定义您的求解器参数。
步骤 数据实体 编辑器位置 参数或操作 设置 A 求解器 Solver | Time Simulation Duration 60 [s] Solver | General Simulation Target GPU⯆
注意: 因为本教程中包含凸颗粒,如果您有GPU选项,用它处理会更快。
从Solver实体中,单击Start。
出现Simulation Summary屏幕,然后开始处理。
提示: 您可以使用Auto Refresh复选框,以在处理过程中在3D View窗口里查看结果。
这样就完成了本教程的第一部分,其中Rocky可用于设置和处理片剂包衣仿真。
在本教程中,您可以:
启用收集颗粒碰撞统计和接触数据,以供稍后的分析使用。
导入自定义颗粒形状。
使用原始尺寸比例定义颗粒尺寸。
下一步是什么?
如果您成功完成了本教程,那么您就可以进入第二部分,并对该项目进行后处理了。
我们在本教程中导入的片剂形状是一个完美的凸形,这意味着它不包含形成凹痕或凹陷的面。
如果检测到哪怕有最小的凹痕或凹陷,Rocky甚至会将大部分凸起的形状归类为凹形。
在凸形形状中,连接任意两个面的任何直线将始终包含在形状之内(a)。
在凹形形状中,连接两个面的类似直线可能有部分落在形状之外(b)。
因为Rocky对它归类为凹形的形状使用不同的计算方法,所以十分重要的一点是确保Rocky按照您想要的方式对您的形状进行归类。
如果您想要导入一个不是完美凸形的颗粒形状(但您仍然希望Rocky将它视为凸形),您可以采取以下步骤之一:
提高您的convex .stl设计然后重新导入Rocky。
--或者--
允许Rocky重新绘制形状,以确保它被归类为凸形。
如果Rocky检测到您的凸形形状不完美,它会要求您选择以下选项之一(如图所示):
Keep the shape as is:颗粒将被视为凹形,并将使用基于凹形的计算。
Convert the shape to convex:Rocky将重新绘制不完美的形状,以确保它被归类为凸形,并将使用基于凸形的计算。
本教程的主要目的是分析从我们在第一部分中设置和处理的片剂包衣仿真中收集的结果和数据。
您将了解如何:
导入自定义多面体用户进程形状
使用停留时间信息来计算可变性系数(CoV)
分析收集的碰撞统计和接触数据
您将使用这些功能:
多面体(包线)用户进程
颗粒计算(停留时间)
欧拉统计
时间统计属性
重要: 与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。
高级教程主要面向的用户不仅更熟悉Rocky用户界面(UI),而且已经非常了解常见设置和后处理任务。
如果您还未达到这种熟悉程度,建议您在开始本教程之前至少先完成教程01~05。
如果您已完成本教程的第一部分,请确保Rocky项目是打开的。(第二部分将从第一部分终止的地方继续。)
如果您没有完成第一部分,请执行以下所有操作:
在此处下载
dem_tut09_files.zip文件。将
dem_tut09_files.zip解压缩至工作目录。打开Rocky 2025 R1。(在程序菜单中查找Rocky 2025 R1或使用桌面快捷方式)。
重要: 要使用提供的Rocky项目文件,必须要有Rocky 2025 R1或更高版本。如果您有较早版本的Rocky,请将Rocky升级到最新版本或从头完成第一部分。
在Rocky程序中点击Open Project按钮,找到dem_tut09_files文件夹,然后从tutorial_09_A_pre-processing文件夹打开tutorial_09_A_pre-processing.rocky文件。
处理仿真。(从Data面板中选择Solver,然后从Data Editors面板中点击Start按钮。)
处理完成后,我们现在可以开始分析仿真结果。
对于如图所示的包衣过程,非常重要的一点是确保每个颗粒在包衣区域(喷雾区)停留足够长的时间。
Rocky允许创建一个新的Property变量Residence Time,该变量可计算每个颗粒在预定义的用户进程区域(立方体、圆柱体或多面体)内花费的时间。
对于本教程,将使用.stl几何结构导入两个多面体用户进程,以表示两个椭圆形喷雾锥。
带喷嘴和喷雾锥的片剂包衣过程的示意图:
显示了新导入的多面体用户进程形状的锅筒:
要导入第一个多面体:
从Data面板中,右键单击Particles,指向Processes,然后选择Polyhedron (Envelope)。
从Select the STL file for the polyhedron对话框中,导航到您之前下载的dem_tut09_files文件夹,找到geometry文件夹,然后选择Spray_Cone.stl文件,并单击Open。
从Import File Info对话框中,将Import Unit设置为m,然后单击OK。
从Data面板中,在User Processes下方,选择新创建的Polyhedron <01>条目。
从Data Editors面板中,在Polyhedron选项卡上设置Center和Scale。
要导入第二个多面体:
重复上一节的过程以创建另一个多面体(包线)用户进程,选择相同的Spray_Cone.stl几何结构,并以mm为单位导入。
从Data面板的User Processes下选择这个新的Polyhedron <02>条目,然后从Data Editors面板设置Center和Scale。
第二次导入后,您应该有两个代表喷嘴的多面体。
现在我们已经导入了两个圆锥体,我们可以对它们应用停留时间颗粒计算,以分析每个颗粒在每个圆锥体区域内花费的时间。
在Data面板中,右键单击Particles,指向Particles Calculations,指向Residence Time,然后选择Polyhedron <01>(如图所示)。将创建一个名为Residence Time (Polyhedron <01>)的新计算实体。
对Polyhedron <02>用户进程重复此步骤。
通过合并每个圆锥体的停留时间结果,我们将能够看到整个喷雾区随着时间的推移对颗粒的包衣程度。
我们将通过为颗粒创建一个自定义属性来实现这种合并。
使用下表中的信息继续设置您的项目。
步骤 项 位置 参数或操作 设置 A 微粒 属性 Add new custom property(按钮) B 新增(对话框) Name Total Residence Time Output unit s Inputs | Residence Time (Polyhedron <01>) (已启用) Inputs | Residence Time (Polyhedron <02>) (已启用) C Custom Property (对话框) 表达式 A+B
一个名为Total Residence Time (Custom)的新属性将出现在颗粒的Properties中。
这可以像任何其他属性一样用于为颗粒着色和/或创建新的图。
从Particles主实体的Data Editors面板中,选择Coloring选项卡,然后在Nodes下方,为Property选择Total Residence Time (Custom)。
使用Time滑块查看不同输出时间的变化。
注意: 您可能需要使用Data面板上的眼睛图标来隐藏Polyhedrons用户进程。
如下图所示,一些颗粒在喷雾区停留的时间比其他颗粒长。在60秒时,包衣仍然相当不均匀,因为存在许多不同颜色的颗粒。
片剂间可变性系数(CoV)可以定义为包衣质量的标准偏差与包衣质量的平均值之间的比率。
包衣质量主要取决于喷雾区内的停留时间,因此我们可以将CoV定义为:
为了创建CoV分析,我们需要从时间图开始。按照接下来几张幻灯片上的说明进行操作。
创建一个新的时间图。(从Window菜单中,单击New Time Plot(Ctrl+T)。)
使用下表中的信息定义时间图。
| 步骤 | 项 | 位置 | 参数或操作 | 设置 |
|---|---|---|---|---|
| A | 微粒 | Properties | Total Residence Time (Custom) | 拖放至Time Plot窗口 | |
| B | Select the Statistics to Plot(对话框) | Average | (已启用) | |
| Std.偏差 | (已启用) | |||
在绘图网格中右键单击,指向Axes Layout,然后单击By Quantity。
现在,让我们通过在时间图中创建新的公式来计算可变性系数(CoV)。
使用下表中的信息来定义公式。
步骤 项 位置 参数或操作 设置 A Time Plot Table (tab) Add Formula B Add Expression(对话框) Curve Caption CoV Curve Expression B/C 注意: 为使公式有效,表达式必须表示为Total Residence Time (Custom)属性的Std. Deviation除以Average。如果您的列以不同的顺序出现,请相应地调整公式。
向下滚动到表格末尾,注意60秒时的CoV仅达到20%。
切换回Plot选项卡。
在选项卡顶部,单击Std.Deviation和Average的曲线名称,从图中隐藏它们(如图所示)。CoV曲线将是唯一可见的。
在Plot选项卡中,右键单击Time轴,然后单击Customize轴。
使用下表中的信息定义轴配置值。
步骤 项 位置 参数或操作 设置 A Axis Configuration (对话框) Axis | Time (s) Values | Limits User Defined Values | Min 0.05 [s] Values | Max 100 [s] Values | Step 1 [s] Scale Options | Logarithmic Scale (已启用) Axis | CoV( B/C ) ( - )
Values | Limits User Defined Values | Min 0.1 [s] Values | Max 10 [s] Values | Step 1 [s] Scale Options | Logarithmic Scale (已启用) 单击OK。
当您使用重对数图中的CoV结果配置图表时(仅右轴和底轴),您将获得所示的图表。
常见的分析是推断CoV结果,以估计特定CoV值所需的时间。
使用外推法,您不需要运行完整的扩展仿真(这可能需要很多个小时来处理)。
在10秒仿真时间后,可以看到重对数图末端的线性区域(稳态),并将用作外推的基础。
可以通过使用单独的电子表格程序来推断CoV结果。
我们的做法是通过将图中的数据导出到一个.csv文件中,在一个单独的电子表格程序中打开该文件,然后根据需要使用该程序处理数据。
让我们首先导出曲线数据:
右键单击绘图中的空白区域,指向Export,然后单击Curves。
从Export Configuration对话框中,清除Average和Std.Deviation复选框(如图所示),然后单击OK。
从Export Curve(s)对话框中,为生成的.csv文件输入File Name,选择文件夹位置,然后单击Save。
在电子表格程序中打开生成的.csv文件。
使用电子表格程序,通过使用以下等式拟合CoV结果的曲线:
公式 9–1.
其中:
是CoV
和
是拟合常数
是时间
对于外推,使用10 - 60秒之间的稳态时间范围。(结果显示为橙色虚线。)
使用期望的6.25% CoV的正则化限制(显示为绿色虚线),定位到满足拟合CoV(显示为红点)的时间。
根据文献(Boehling et al., 2016 [1]),指数常数的值应该接近-0.5。
根据上一张幻灯片上的图表,可以得出以下结论:
由Rocky CoV结果获得的调整值实现了-0.524的值,接近于期望值。
为了达到期望的6.25% CoV调节限制,您需要大约0.149小时(即536.4秒)的仿真时间。
使用Eulerian Statistics用户进程,离散的属性可以通过对离散化区域的值进行平均来转换为连续值。
Eulerian Statistics应为Cube或Cylinder用户进程创建。
在这个案例中,我们将创建一个圆柱体。
使用下表定义这些进程。
步骤 数据实体 编辑器位置 参数或操作 设置 A 微粒 创建一个Cylinder User Process B User Processes ﹂Cylinder <01>
Cylinder Size 0.365, 0.2, 0.365 [m] Center 0, 0, 0 [m] … | Orientation 方法 Angles⯆ 旋转 90, 0, 0 [dega] C User Processes ﹂Cylinder <01>
创建Eulerian Statistics用户进程 D User Processes ﹂Eulerian Statistics <01>
Eulerian Statistics Radial Divisions 20 [ - ] Tangential Divisions 72 [ - ] Axial Divisions 1 [ - ]
这将把圆柱体离散成72个扇形,每个扇形沿径向有20个分区。在轴向上定义了单个Bin。
专门用于欧拉统计的新属性将在欧拉Bin的绘图上可用,包括应力分量、转换速度等。
创建Eulerian Statistics后,可在Coloring选项卡上修改Transparency、Edges和Color:
打开3D视图后,使用下表中的信息来定义这些值。
步骤 数据实体 编辑器位置 参数或操作 设置 A User Processes ﹂Eulerian Statistics <01>
着色 Faces | Property Local T-Velocity⯆ Faces | Show on Node? (已启用) Edges (已清除) 提示: 当您启用面的属性时,选项Show on Node?允许连续显示绘制的属性。
提示: 确保启用了Visible复选框。
从Data面板中,单击Particles的眼睛图标,以隐藏之前的颗粒计算。
更新的结果如图所示。
Rocky还可以创建这些属性的时间统计,提供Average、Maximum、Minimum和Sum值。
要评估床循环期间的最大剪切应力,请执行以下操作:
从Data Editors面板中,选择欧拉统计的Properties选项卡。
从选定选项卡的右上方,单击Add and edit time statistics properties图标(如图所示)。
在Edit time statistics properties对话框中,单击Add按钮(绿色加号)。
从Add time statistics properties窗口,指定分析的Start和Stop时间、要评估的Operations和Properties(如图所示),然后单击OK。
在Edit time statistics properties窗口中再次点击OK。
从Properties选项卡的Time Analysis下方,选择新创建的Average of Stress Component [40 s, 60 s]属性,然后将其拖放到Eulerian Statistics的3D视图上。(结果如下所示。)
这种平均分析有助于确定颗粒在包衣机中承受较高应力值的位置。
重要: 为了能够分析应力组件,您必须在处理仿真之前,从Data面板上的Contacts实体中启用Collect Contacts Data复选框。
提醒一下,我们已经在第一部分中采取了这一步骤,所以现在应该可以分析这些数据了。
之前在本教程的设置部分(第一部分),您已经启用了收集Intra-particle Collision Statistics。
颗粒内碰撞统计表示在单个代表性颗粒上显示的域中所有颗粒的完整瞬态分析。
在仿真期间,相关碰撞数据存储在两个连续的输出时间水平之间。
值得注意的是,每个结果代表当前输出和前一个输出之间的时间平均值。
因此,如果您想要进行跨越整个仿真时间的分析,您需要加入一个新的表达式来计算所有的输出。
另一个要点是颗粒的几何结构分辨率。要实现良好的分析,请确保使用边旁边具有高分辨率三角形的颗粒。
使用下表中的信息来创建这个新的颗粒时间统计属性。
步骤 数据实体 编辑器位置 参数或操作 设置 A 微粒 ﹂Particles <01>
属性 Add and edit time statistics properties(按钮) B Edit time statistics properties(对话框) Add property(按钮) C Add time statistics properties(对话框) Start time 40 [s] Stop time 60 [s] Operations | Average (已启用) Properties | Frequency (已启用) 从Data面板中,在Particles下方选择Particle <01>。
从Data Editors面板中,在Particle选项卡上单击View。
一个新的Particles Details窗口打开了。
从Properties选项卡的Time Analysis下方,选择新创建的Average of Frequency [40s, 60s]属性,然后将其拖放到Particles Details窗口。(结果如下所示。)
在Particle <01>实体的Coloring选项卡上,清除Transparency复选框。
这显示了在颗粒形状的不同区域(三角形)中记录的每个颗粒的平均碰撞频率。
我们可以看到,颗粒的角和边的碰撞次数最多,而平面的碰撞次数最少。
因此,我们可以得出结论,当这种形状的颗粒与其他颗粒和锅筒壁发生碰撞时,最常在边和角上发生碰撞。
之前在本教程的设置部分(第一部分),我们已经启用了收集Inter-particle Collision Statistics。
当需要提取关于说明在两个连续输出时间的间隔内某个颗粒发生的所有碰撞的数据时,这些统计数据会很有用。
例如,使用冲击速度,您可以将该数据与颗粒破碎或导致其解聚的可能性相关联。利用持续时间,您可以将该数据与某个质量或热传递过程、或者某个化学反应相关联。
值得注意的是,每个结果代表在两个连续输出时间的间隔内收集的数据的时间平均值。
在接下来的幻灯片中,我们将分析冲击速度,以显示潜在的高能量力矩(以及可能的断裂)。
从Data面板中,选择Particles。
从Data Editors面板中,选择Properties选项卡。
在Translational Velocity下方,右键单击Velocity : Impact : Normal : Mean,指向3D View,然后单击Show in new 3D View。(结果如图所示。)
提示: 要查看颗粒,您可能需要将Drum几何结构设置为透明。
本教程的目的是对我们在第一部分设置和处理的片剂包衣仿真使用Coating Visibility Wizard,以进一步研究颗粒上的包衣可变性。
该方法使用3D视图窗口的摄像头位置来定义喷雾区。然后,该向导会计算每个颗粒(或颗粒区域)的曝光量,这种方法比我们在第二部分中使用的过程更准确。
您将了解如何:
在PrePost Scripts面板中导入并运行保存的PrePost脚本
使用向导结果来分析可变性系数(CoV)
使用向导结果分析颗粒形状本身的可见性
您将使用这些功能:
PrePost Scripts面板
重要: 与其他Rocky教程相比,本高级教程包含更少的细节、截图和步骤。
高级教程主要面向的用户不仅更熟悉Rocky用户界面(UI),而且已经非常了解常见设置和后处理任务。
如果您还未达到这种熟悉程度,建议您在开始本教程之前至少先完成教程01~05。
如果您完成了本教程的第一部分(和/或第二部分),请确保Rocky项目是打开的。(第三部分将从第一部分和/或第二部分结束的地方继续。)
如果您没有完成第一部分(和第二部分),请执行以下所有操作:
在此处下载
dem_tut09_files.zip文件。将
dem_tut09_files.zip解压缩到您的工作目录。打开Rocky 2025 R1。
重要: 要使用提供的Rocky项目文件,必须要有Rocky 2025 R1或更高版本。如果您有较早版本的Rocky,请将Rocky升级到最新版本或从头完成第一部分。
在Rocky程序中点击Open Project按钮,找到dem_tut09_files文件夹,然后从tutorial_09_A_pre-processing文件夹打开tutorial_09_A_pre-processing.rocky文件。
处理仿真。(从Data面板中选择Solver,然后从Data Editors面板中点击Start按钮。)
处理完成后,我们现在可以开始分析仿真结果。
包衣操作的喷雾区将由摄像头位置、方向和3D视图窗口的缩放水平决定。
窗口的焦点将像一个喷嘴,可见的颗粒将暴露于包衣中。
带喷嘴和喷雾区的片剂包衣过程的示意图:
3D视图窗口应聚焦的目标区域(黄色):
Visibility是给定时间内颗粒(或颗粒区域)在摄像头视图中占据的百分比,通过逐个像素验证来计算。
颗粒可见性(摄像头视图)
颗粒可见性(另一个角度)
可见性计算仅通过Coating Visibility Wizard可用。
Coating Visibility Wizard是一个在Rocky内部运行的完整应用,可帮助您便捷为包衣应用定义喷嘴参数。
向导中提供了预览功能,使您能够在运行向导之前可视化Spray Mask和Nozzle参数。
该向导包括嵌入式后处理功能,使您能够分析包衣可见性结果。
该向导计算每个输出时间的包衣可见性,然后根据这些计算自动创建新属性。
首先,从Tools菜单中选择PrePost Scripts,以显示该面板。
单击此处下载Coating Visibility Wizard,然后将coating_visibility_wizard文件夹从zip文件夹提取到您的计算机。
从coating_visibility_wizard文件夹中,将script_coating_visibility_wizard.py脚本和script_coating_visibility_wizard.py.files文件夹复制到剪贴板。
从Rocky PrePost Scripts面板中,在选定的第一个Scripts shared across projects选项卡上,单击Open Scripts Directory按钮。
在打开的%HOMEPATH%\Documents\Rocky\Scripts文件夹中,粘贴您复制的脚本和文件夹。
新脚本将出现在PrePost Scripts面板的Scripts shared across projects选项卡中。
要运行Coating Visibility Wizard,请执行以下操作:
单击Playback Script按钮。
注意: 该向导计算每个单独输出的可见性。因此,完成计算可能需要一些时间。
因为Coating Visibility Wizard是一个在Rocky内部运行的完整应用,所以在向导运行时,您不能在Rocky中操作。
Coating Visibility Wizard将作为一个显示Setup选项卡的新窗口出现。
该向导使您能够轻松定义喷嘴参数。您可以根据需要添加任意数量的喷嘴,然后进行配置。
注意: 当使用多个喷嘴时,向导将在每个输出时间改变摄像头位置,以便分析每个喷嘴的区域。
按照以下步骤定义您的设置(如图所示)。
在Nozzle Injection子选项卡上,从Axis Direction字段中,将Drum rotation direction定义为+Z。
在Nozzles字段中,单击Add按钮(绿色加号)创建一个喷嘴条目。
对于1个和2个喷嘴,定义Y coordinate、Z coordinate和Orientation angle。
注意: Axis Direction选项将用于定位喷嘴。确保正确定义,并在Nozzles Preview字段中进行检查。
如果您要计算矩形、椭圆形和自定义区域的可见性,此向导支持用于可见性计算的掩膜。
掩膜可以仿真喷嘴的喷雾形状。
选择Spray Mask子选项卡,然后定义以下所有选项(如图所示):
Spray mask type
White core horizontal length
White core vertical length
注意: Mask Preview将帮助您正确定义掩膜(如图所示)。
像素越暗,不透明度越高。因此,摄像头会忽略图像的黑边。下图说明了如何结合摄像头视图和掩膜来计算可见性:
在General子选项卡上,您可以定义Spray Time和Post Processing的选项。
按照下面的步骤继续定义您的向导设置。
选择General子选项卡,将Spray start time定义为3.0(如图所示),并根据屏幕截图检查其他选项。
有关此向导及其参数的更多信息,请从Help菜单选项卡访问Scripts Manual(如图所示)。
现在,您的Coating Visibility Wizard设置完成。从Setup选项卡,单击Calculate按钮:
注意: 该向导计算每个单独输出的可见性。因此,完成计算可能需要一些时间。
向导完成计算后,将出现一条确认消息(如图所示)。
注意: 您可以留在向导中进行某些类型的可见性后处理(如下一节所示)。在向导之外,您还拥有了Rocky中Particles实体的新属性以及位于项目仿真文件夹中的新文件。
向导完成计算后,将指向新的Results选项卡。
该向导自动生成片剂间包衣可变性(CoV)分析。它还对可用数据进行外推。
您可以轻松找到与特定CoV值相关的时间量。
此外,向导还为您提供了更改外推参数的选项。在Results选项卡的Power Law Extrapolation部分,您有以下选项(如图所示):
Initial time(用于定义插值范围的开始)
CoV limit
要生成上一页的CoV图,首先向导需要估计一个颗粒在给定输出间隔内获得的包衣质量:
公式 9–2. |
其中:
是当时间等于
时第
个颗粒的包衣质量。
是喷雾质量流率。
是当时间等于
时第
个颗粒的颗粒可见性。
是输出间隔。
要估计总包衣质量:
公式 9–3. |
其中:
是当时间等于
时第
个颗粒的累积可见性。
片剂间包衣可变性()可定义为给定时间内包衣质量的标准偏差与包衣质量的平均值之比。
公式 9–4. |
它可以重写为:
公式 9–5. |
乘积是常数,因此:
公式 9–6. |
因此,可以通过总累积可见性的标准偏差与总累积可见性的平均值之间的比率来计算。
公式 9–7. |
Coating Visibility Wizard在重对数图中显示了CoV结果(显示垂直和水平比例尺)。
常见的分析是推断CoV结果,以便能够估计特定CoV值所需的时间。
使用外推法,您不需要运行完整的扩展仿真(这可能需要很多个小时来处理)。
向导本身定义了线性区域,该区域位于30秒仿真时间后的重对数图(稳态)的末端,并用作外推的基础。
线性区域可以用幂律方程拟合:
公式 9–8. |
其中:
是CoV。
和
是拟合常数。
是时间。
根据文献(Boehling et al., 2016 [1]),指数常数的值应该接近-0.5。
根据上一张幻灯片上的图表,可以得出以下结论:
通过Coating Visibility Wizard的CoV结果获得的调整值为-0.486,接近期望值。
为了达到期望的6.25% CoV调节限制,您需要大约0.7小时(即2520秒)的仿真时间,这比本教程第二部分中估计的仿真时间要长得多。
在Coating Visibility Wizard中完成分析后,您可以关闭向导并返回到Rocky UI。
向导为每个喷嘴创建了两个新的颗粒属性:
注意: 如果您有一个成形的颗粒,每个颗粒组也有这些属性。在这个案例中,这些属性与颗粒表面的每个三角形相关。
Instantaneous Visibility:返回在当前选定的输出时间每个颗粒暴露的3D视图区域的分数。如果使用多面体颗粒,这将返回每个颗粒组中所有颗粒在当前输出的平均三角形可见性。
Cumulative Visibility:返回从初始输出时间到当前选定输出时间的累积可见性。如果使用多面体颗粒,这将返回每个颗粒组中所有颗粒从初始输出时间到当前选定输出时间的累积三角形可见性。
此外,对于之前的每个属性,向导都创建了一个新属性来评估每个喷嘴的贡献。以下等式适用于每个属性:
公式 9–9. |
其中:
是包衣机的总可见性属性。
是每个喷嘴的可见性属性。
向导为总可见性创建了两个新的颗粒属性:
注意: 如果您有一个成形的颗粒,每个颗粒组也有这些属性。在这个案例中,这些属性与颗粒表面的每个三角形相关。
Instantaneous Visibility Coater
Cumulative Visibility Coater
要访问Particles Visibility属性:
从Data面板中,选择Particles。
从Data Editors面板中,选择Properties选项卡。
要可视化Particles Visibility,请将Instantaneous Visibility Coater拖放到3D View窗口上(结果如图所示)。
要可视化Cumulative Visibility:
从Data面板中,选择Particles。
从Data Editors面板中,选择Properties选项卡,然后将Cumulative Visibility Coater拖放到3D View窗口。(结果如图所示。)
对于本教程,我们主要对累积可见性感兴趣,它与注入质量成正比。
注意: 使用Time滑块查看属性随时间变化的情况。
如下图所示,一些颗粒在喷雾区停留的时间比其他颗粒长。在60秒时,包衣仍然相当不均匀,因为存在不同颜色的颗粒。
要可视化颗粒组上的Cumulative Visibility:
从Data面板中,在Particles下方选择Particle <01>。
从Data Editors面板中,在Particle主选项卡上,单击View按钮。出现了新的Particles Details窗口。
从Data Editors面板中,选择Properties选项卡,然后将Cumulative Visibility Coater拖放到Particles Details窗口。
从Time工具栏中,选择最后的输出时间。
从Coloring选项卡中,清除Transparency复选框(结果如图所示)。
从Data Editors面板中,在Coloring选项卡的Faces下方,启用Show on Node?复选框(如图所示)。
结果表明,在仿真进行到60秒时,颗粒的大部分区域实现了一定量的包衣覆盖,最高值集中在颗粒的角上以及上部和下部的平坦区域。
这样就完成了本教程的第三部分,其中Rocky用于对我们在第一部分设置和处理的片剂包衣仿真的喷雾区和颗粒包衣结果进行分析。
在本教程中,您可以:
导入并运行Coating Visibility Wizard。
分析Coating Visibility Wizard生成的CoV结果,以及颗粒可见性。
下一步是什么?
如果您已成功完成本教程,即可进入下一个教程。

