基于COMSOL的迷宫密封分析软件开发
2023-01-29徐乙人孙楠楠曹恒超赵炬颖李永健
徐乙人, 孙楠楠, 曹恒超, 赵炬颖, 李永健
(1.清华大学 摩擦学国家重点实验室,北京 100084;2.潍柴动力股份有限公司,山东 潍坊 261061)
0 引 言
迷宫密封是一种非接触式密封,其在转子和静子之间设置依次排列环形密封齿,因此产生节流和减漏效果。[1]迷宫密封具有结构简单、工作稳定、成本低、寿命长等优点,不仅在透平机械的流路密封中大量应用,而且常用被用作滑油腔的轴端密封。[2]在迷宫密封设计中,泄漏量计算和流场分析非常重要,早期设计人员一般基于经验公式计算迷宫密封的泄漏量。随着商用计算流体力学(computational fluid dynamics, CFD)软件的发展,越来越多的商用CFD软件可对迷宫密封开展仿真计算,例如:肖芳等[3]基于FLUENT开展迷宫密封的结构优化研究;金秋颖等[4]使用FLOW-3D软件研究液体静压支撑系统中迷宫密封对系统承载能力的影响;IVANOV等[5]使用CFX软件分析涡轮泵迷宫密封的槽形参数对涡流形状、大小和数量的影响。虽然基于通用商业CFD软件能够进行迷宫密封分析计算,但存在建模计算过程费时、结果正确性依赖建模过程等问题,而开发专用的迷宫密封参数化分析计算软件能显著提升仿真计算效率。
1 功能要求
迷宫密封的流体域为轴对称回转结构,因此可采用二维轴对称几何模型对迷宫密封流体域进行几何建模。根据实际需要,迷宫密封参数化软件应具备对直通型、交错型[6]和端面交错型等3类常用迷宫密封进行分析计算的能力。这3种迷宫密封的流体域二维轴对称几何模型见图1,图中各符号的具体含义见表1。
(a)直通型
表 1 3类典型迷宫结构几何参数具体含义
流体力学仿真分析一般包含前处理、求解计算和后处理等3个方面的工作。建立几何模型是前处理中的一项重要工作,要求能够由用户自主地设置流体域的几何参数,以快速生成所需的流体域几何模型。在成功生成流体域几何模型的基础上,软件还应具备识别边界条件类型、划分网格、设置入口出口压力、设置流体介质物性参数等前处理功能。在进行几何建模和网格划分时,用户应能够方便地观察几何建模结果和网格划分结果,以便于修改完善模型。流体物性参数包括密度、温度和黏度等,空气应设为可选介质类型,并且默认的空气物性须满足理想气体状态方程,从而保证流体域压力显著高于标准大气压时仿真计算结果仍然正确。完成上述前处理工作后,软件应能方便地提交计算并获得迷宫密封的泄漏量、压力场和速度场等计算结果。计算结果应进行可视化处理,以便于用户观察压力云图、速度矢量图和速度大小云图等。
此外,迷宫密封几何参数的优化筛选也是迷宫密封设计工作的常见问题。贾文聪等[7]利用Design-Expert和FLUENT软件开展高速齿轮箱迷宫密封的参数优化。软件的参数优化筛选功能要求能够自动对多组几何参数进行计算分析,并能自动筛选最优的一组参数,从而快速确定设计参数。
2 软件开发方案
根据功能要求,软件须具备流体域网格划分和流场求解计算功能。流体域网格划分涉及复杂算法,而流场计算涉及求解大型方程组,因此从底层开发网格划分和流场求解程序的难度极高、工作量极大,有必要借助成熟的流体力学仿真平台开发迷宫密封分析软件。常见的流体力学仿真平台有FLUENT、CFX、FLOW-3D和COMSOL等,这些仿真软件均能实现迷宫密封流场仿真分析。COMSOL是多物理场仿真计算平台[8-9],该平台基于有限元法进行流场求解计算,提供便捷的软件开发环境,使用户能够在仿真模型的基础上快速开发仿真软件,如唐丽媛等[10]利用COMSOL开发主动式声诱饵仿真系统。
作为仿真计算平台,COMSOL包含几何建模、网格划分、边界条件设置、求解计算、可视化显示等一系列功能完备的流场仿真工具,并且集成软件开发功能,提供界面制作和代码编写环境。基于COMSOL进行软件开发时,不需要依赖通用的软件开发平台,可避免多个软件平台之间的程序交互调用和数据传递等工作,因此基于COMSOL进行迷宫密封分析软件开发可显著节约时间。
若迷宫密封流体域几何模型的特征要素保持不变,仅几何尺寸、出入口压力等参数改变,则可基于COMSOL仿真分析平台快速生成计算软件。迷宫密封分析软件涉及3种不同类型的迷宫密封,且迷宫密封的齿数不固定,导致流体域几何模型的特征要素复杂多变,边界条件难以与几何要素保持协调一致。此外,在进行几何建模、边界条件设置和网格划分时,应允许用户分步完成,以便确认模型的正确性。基于上述需求,设计参数化求解计算步骤,见图2。关键步骤被封装在一系列方法中,当操作者点击按钮时,软件调用一个或多个方法完成相应的建模或计算工作。
图 2 参数化求解计算步骤
3 详细设计及实现
按图2流程实现迷宫密封参数化流场仿真计算是软件开发中的关键工作,此外还需完成界面设计、交互设计和数据结果显示等。
3.1 流体域几何建模
几何建模由calculateGeo( )、checkGeo( )和refreshGeo( )等3个方法实现,其中calculateGeo( )方法能够基于用户设置的几何参数计算流体域截面轮廓的顶点坐标。在迷宫密封齿数变化时,流体域几何顶点和线段的数量会相应变化,但更新几何模型时不宜改变顶点和线段的数量,以避免模型边界条件与几何要素的对应关系出现错误。针对该问题,将流体域几何轮廓的顶点给定为较大数值,当齿数较少时,将多余的顶点移动至同一线段上,这时仅有部分顶点直接体现在几何模型中,另一部分顶点被隐藏,从而可在保持线段数量不变的前提下改变齿数。
在本文软件开发过程中,将流体域截面的顶点总数设置为88,对应直通型迷宫密封的最大迷宫齿数为21。当用户设定的迷宫密封齿数为3时,可将其中4×(21-3)=72个顶点放置在同一线段上,最终流体域几何轮廓中仅会出现3个迷宫齿。采用这种方法,迷宫密封流体域几何模型中入口和出口边界对应顶点的序号保持不变,便于设置边界条件。
当直通型迷宫密封齿数为3和5时,几何模型的顶点位置和顶点序号见图3。入口边线对应的顶点均为A0和A1,出口边线对应的顶点均为A86和A87。交错型迷宫密封的几何建模问题按类似方法处理。
(a)3个迷宫齿
在完成顶点坐标计算的基础上,将坐标点依次连接即可获得流体域的轮廓线,通过COMSOL几何建模功能中的“创建多边形”命令创建几何轮廓。创建多边形等关键命令可通过COMSOL中的“代码录制”功能获取,该建模过程通过APP开发器编写在refreshGeo( )方法中,对应的Java代码如下。
model.component("comp1").geom("geom1").create("pol1","Polygon");
with(model.component("comp1").geom("geom1").
feature("pol1"));
set("source", "table");
for (int i = 0; i <= N; i++) {
setIndex("table", Ax[i], i, 0);
setIndex("table", Ay[i], i, 1);}
set("type", "closed");
set("type", "solid");
endwith();
checkGeo( )方法用于检查流体域几何数据的协调性,例如当计算得到的迷宫槽底宽度值小于0时程序将自动报错。
3.2 网格自动划分
使用COMSOL中的“网格划分”命令实现网格自动划分,通过“代码录制”功能获取的网格划分命令代码如下。
model.component("comp1").mesh("mesh1").autoMeshSize(meshSize);//网格尺寸因子设置为meshSize
model.component("comp1").mesh("mesh1").automatic(true);
model.component("comp1").mesh("mesh1").run();//执行划分网格
useGraphics(model.component("comp1").mesh("mesh1"), "");
message("——划分网格完成。");
在软件代码中,迷宫密封网格划分对应的函数名为refreshMesh( ),虽然该方法仅包含5行Java代码,但可实现按用户给定的尺寸要求完成自动网格划分的功能。“meshSize”为网格尺寸设置,其数值越大,则划分的网格越粗大,其数值越小,则网格越细密。
3.3 边界条件施加
平台默认的边界条件为“壁”边界,模型中除入口和出口之外的边界均为“壁”边界条件,因此仅对入口和出口边界条件进行设置即可。程序应识别入口和出口边界对应的线段,并按用户设定的数值定义流场入口和出口的压力或流速。在模型编辑器环境中,可由用户手动选取入口和出口对应的边界线段,但在分析软件中须通过程序代码自动识别入口和出口对应的线段。流体域外轮廓线为封闭的多个线段,COMSOL自动为每个线段赋予整数序号,并且按线段顶点坐标值的大小进行编号。因此,编写线段顶点坐标比较程序,自动获取入口和出口边界线段的序号,实现入口和出口边界条件自动设置。设置边界条件的关键程序代码如下。
if (onBCsPressure == true) //定义入口和出口压力
{
model.component("comp1").physics("spf").feature("inl1"). set("BoundaryCondition", "Pressure");
model.component("comp1").physics("spf").feature("inl1").set("p0", PressureInlet); //入口压力
model.component("comp1").physics("spf").feature("out1").set("p0", PressureOutlet); //出口压力
}
model.component("comp1").physics("spf").feature("inl1").selection().set(inletIndex); //选择入口对应的边
model.component("comp1").physics("spf").feature("out1").selection().set(outletIndex); //选择出口对应的边
message("——边界条件加载完成。");
3.4 流场求解和计算稳定性
迷宫密封分析软件仅需计算稳态条件下的流场,因此在求解计算时采用稳态控制方程。选择常用的k-ε湍流模型,同时在计算稳定性选项中勾选“流线扩散”和“迎风扩散”选项,在求解器设置中选择分离式稳态求解器。经验证,按上述条件设置模型和求解器后,出现计算不收敛的概率很低。上述代码位于analysis( )方法中,运行该方法后模型自动完成前述设置并提交计算。
3.5 迷宫密封参数自动寻优
根据仿真分析工作中的实际需求,软件须具备对多组迷宫密封参数自动寻优的功能。解决方案如下:首先,将用户给出的多组参数存储在二维数组中;然后,依次计算各组参数对应的泄漏量;最后,通过泄漏量数据自动对比,筛选出泄漏量最小的一组参数。在寻优计算完成后,软件自动选定最优的一组参数完成计算,然后将筛选得到的最优参数及相应结果呈现给用户。
3.6 界面设计和云图显示
COMSOL的APP开发器不仅提供窗体、按钮、输入框、复选框、标签、下拉框等常见的软件开发控件,还提供可直接赋值各种数据的显示组件。这些显示组件不仅可对模型的几何、网格、压力云图、速度矢量图进行显示,还能实时显示求解器计算过程信息和自定义提示信息,可为软件界面设计和云图显示功能开发提供极大便利。软件的主界面见图4,主界面的左侧为参数输入区,中间位置为可视化显示区,右侧为信息输出区。
图 4 软件的主界面
4 软件测试和验证
某试验用迷宫密封结构参数见图5,该迷宫密封为直通型,包含3个迷宫齿槽和2个完整的迷宫齿,迷宫齿槽两侧的泄漏间隙与齿顶处间隙相同。在常温下通过试验测量该迷宫密封结构的空气泄漏量,通过调节阀将迷宫密封上游侧压力设置为3 kPa,迷宫密封下游侧的压力为标准大气压,利用涡街空气流量计测量该迷宫密封的空气泄漏量,试验测得的空气体积流量为52.4 m3/h。
图 5 试验用迷宫密封结构参数,mm
按图5所示的几何参数在开发的软件中设置迷宫密封参数,见图6。需要说明的是,迷宫密封的进口段和出口段宽度与密封间隙均为0.75 mm,使得两端的迷宫齿仅体现为斜面,因此虽然图5中仅呈现2个完整的迷宫齿,但须在软件中将齿数设置为4,同时将入口宽度和出口宽度设置为“对齐齿顶”即可。采用多个网格因子进行网格自动划分并对结果进行比较,网格因子设置为8最合适。
图 6 密封参数设置
在完成参数设置后,点击“一键运行”按钮提交计算,计算完成后体积流量和质量流量会自动显示在信息窗口中。该算例计算得到的体积流量值为48.2 m3/h,与试验测量值相差8%,低于一般精度要求(15%)。计算获得的迷宫密封流体域压力云图、速度云图和速度矢量图见图7。这些可视化的计算结果可将迷宫密封的流场特征清晰、直观地呈现给使用者。
(a)压力云图,103 Pa
5 结束语
从迷宫密封分析软件的功能要求出发,制定基于COMSOL的软件开发方案,针对软件开发过程中的几何模型定义、网格划分、计算收敛性和自动参数寻优等问题,给出有效解决方法,充分利用COMSOL平台提供的建模工具、求解器和软件开发环境,高效完成软件开发工作。测试验证结果表明,该软件使用方便、计算结果准确,能够满足迷宫密封分析计算工作的需要。