作者: 香港

  • Simulation der Entgasung von Flüssigkeiten mit OpenFOAM

    使用OpenFOAM模拟液体脱气

    空间不足和高成本压力最终导致液压油箱变得越来越复杂和小型化。这导致油箱中的空气分离量急剧减少——从而增加了液压系统中空气的含量。.

    在液压系统中,自由空气直到今天仍然是一个技术挑战。只要空气溶解在油中,就不会改变其性质。.

    未溶解的空气,即气泡,会引起:

    泵和控制装置的腐蚀
    泵和液压马达的效率降低,可压缩性增加,从而可能导致驱动中的颤振运动。此外,还导致 

    • 加速的油老化
    • 噪音增加
    • 组件损坏(例如气蚀)
    • 等等.

    在安装过程中、由于负压区域的泄漏以及油回流到容器中,空气会进入循环。根据过滤器-罐体系统的分离能力,空气在容器中缓慢上升,然后被泵重新吸入。.

    液-液罐模拟

    Silentdynamics 使用 InsightCAE 对脱气罐中的分散气泡进行一系列模拟。求解器的应用 twoPhaseEulerFoam 实现了气相、入口处空气的积分值以及整个脱气装置总质量的非稳态追踪。. 

    下面将介绍一个简单的气液分离示例。一个入口和两个出口,中间带有一挡板。油气混合物经过挡板进行气液分离。.

     

    在设置了气体-油分散的边界条件,如气泡大小、混合系数、相属性等之后,模拟可以继续进行 twoPhaseEulerFoam 启动.

    借助InsightCAE中的高级求解器设置,可以实现较大的时间步长,以便在合理的时间内完成模拟。.

    当气相分数为1%时的等温面。.


    通过数值模拟改变脱气罐的几何形状,可以实现液压油充分脱气。.

  • Simulation Elektronik Kühlung mit OpenFOAM

    使用 OpenFOAM 进行电子设备冷却仿真

    有限的空间和高功耗最终导致了适用于各种印刷电路板的创新散热设计。电源的布局、散热器的尺寸和外部外壳的设计变得越来越重要。在印刷电路板设计过程中进行热模拟有助于避免后期生产阶段过热问题。. 

    不同的材料,以及固体和空气中导热、对流和辐射的组合,会导致相当复杂的传热模拟。设置材料特性、边界条件、求解器设置和耦合区域通常需要大量的时间。.

    示例中将介绍一块典型的印刷电路板及其组件。.

    热模拟 

    Silentdynamics 已经成功地使用 OpenFOAM 热求解器完成了仿真设置chtMultiRegionFoam, chtMultiRegionSimpleFoam) 将其打包到 InsightCAE 框架内,以实现快速预处理。.

    导入每个零件的CAD文件以及区域并行网格划分的优化过程 snappyHexMesh 对于保守的热耦合,是必不可少的。.

    请注意,在仿真模型中必须考虑使用不同的过孔 (VIA)、铜线、导热层或其他与热相关的点。通过区域建模、CellSet 和为每个组件定义的层,可以考虑所有必需的热特性。.

    通过定义特殊占位符的可能性,CHT仿真几乎可以自动化地构建。. 

    此外,改进的热辐射处理和优化的求解器设置是稳定和收敛仿真的基础。. 

  • Electronic cooling simulation using OpenFOAM

    使用 OpenFOAM 进行电子冷却模拟

    空间限制和高功率供应最终导致了各种印刷电路板(PCB)的创新散热设计。电源的布局、散热器的尺寸和外壳的设计变得更加重要。在 PCB 设计过程中进行热模拟有助于克服后期生产阶段的过热问题。. 

    不同的材料,固体和空气内部的传导、对流和辐射热传递的组合,会产生相当复杂的传热模拟。设置材料属性、边界条件、求解器设置、耦合区域通常需要大量的时间。.

    下面以一块典型的印刷电路板(PCB)及其组件为例进行说明。.

    热模拟 

    Silentdynamics 推出的 OpenFOAM 热求解器模拟设置包chtMultiRegionFoamchtMultiRegionSimpleFoam)在其框架 InsightCAE 内,以实现快速预处理。.

    导入各组件的CAD文件及其优化的并行区域网格划分过程,使用 snappyHexMesh 对于不同加热区的保守通量耦合至关重要。.

    请注意,在仿真模型中需要解决不同过孔、铜线、导热层或其他与热相关的点的使用问题。通过使用区域建模、cellSet 和每个组件的层定义,可以考虑所有必需的热性能。.

    在允许定义特殊通配符的情况下,CHT 模拟设置几乎是自动化的。. 

    此外,改进的散热处理和优化的求解器设置是稳定且收敛仿真的基础。. 

  • Degassing simulation using OpenFOAM

    使用OpenFOAM进行脱气模拟

    空间限制和高成本压力最终导致液压油箱变得越来越复杂和小型化。这导致油箱中的空气分离大大减少,从而使液压系统中的游离空气量增加。.

    在液压系统中,游离空气至今仍是一项技术挑战。只要空气溶解在油液中,就不会改变其性能。.

    另一方面,未溶解的空气,即气泡,会导致:

    • 泵和控制器的腐蚀
    • 降低泵和液压马达的效率,增加可压缩性,从而可能导致输出件运动卡顿。
    • 加速机油老化
    • 清漆噪音
    • 组件损坏(例如空蚀)
    • 等等.

    空气在装配过程中通过负压区域的泄漏以及油回流到油箱时进入回路。根据滤油器-油箱系统的分离能力,油箱中的空气上升缓慢,并被泵再次吸入。.

    气液装置仿真

    Silentdynamics 使用 InsightCAE 对脱气罐中的分散气体气泡进行多项模拟。求解器的应用 twoPhaseEulerFoam 启用气体相的瞬态跟踪、出口处空气的积分值以及脱气装置的整体质量。. 

    这里提出了一个简单的脱气示例。一个入口和两个出口,中心有一个磨损。油气混合物越过磨损进行脱气。.

     

    设置气液(燃油)分散边界条件,例如气泡尺寸、混合系数、相属性等,模拟使用 twoPhaseEulerFoam 可以启动。.

    在 InsightCAE 框架内使用高级求解器设置,可以启用大时间步长以在合理的时间内管理仿真。.

    本文展示了1%气体的等值面。. 


    通过数值模拟改变脱气罐几何形状,可实现液压油充分脱气。.

  • Bash脚本中的向量微积分

    在进行 CFD 或 FEM 分析等准备工作时,通常需要指定矢量参数。矢量常数易于处理:

    DIR="1 0 0"
    
    myMesh --direction "$DIR""

    然而,如果必须对向量进行运算,例如进行标量乘法或旋转,情况会迅速变得复杂。.

    一个强大的解决方案是使用 Matlab 的 Octave 克隆来进行操作。Octave 的两个特性在这种情况下很有用:

    • 命令行选项“–eval”用于指定要处理的表达式
    • 函数`disp`以单行纯文本格式输出结果

    一个例子:

    DIR="1 0 0"
    VELOCITY=$(octave --eval "disp( 11.*[$DIR] )")
    
    myMesh --direction "$DIR"
    mySolver --velocity "$VELOCITY""

    更复杂的操作也是可能的。虽然需要注意产生线矢量作为结果。例如旋转:

    DIR="1 0 0"
    ANG=45
    
    DIR_ROT=$(octave --eval "pkg load linear-algebra; disp( (rotv([0 0 1], $ANG*pi/180)*[$DIR]')' )")
    
    myMesh --direction "$DIR_ROT""

     

  • Exporting a STEP file with named surfaces from PTC Creo

    从PTC Creo导出带有命名曲面的STEP文件

    在准备用于数值模拟的几何体时,通常需要标记模型中的各个表面。这些表面随后可用作入口,或者可以在结构模拟中施加载荷和压力。.

    STEP 格式支持命名实体。问题是:如何在 CAD 程序中设置名称?以及如何确保它们实际存储在 STEP 文件中?下文将针对 PTC Creo 软件解答这些问题。.

    为曲面指定名称

    选择“文件”>“准备”,然后选择“打开模型属性”,接着在模型属性对话框中选择“名称”:

      

    然后,您可以通过单击来选择人脸,并在对话框中输入姓名:

    PTC Creo assign name to face or surface

    导出 STEP 文件中的名称

    如果以默认设置导出STP文件,文件中的名称将不会被保存。您需要更改导出设置才能保留它们。.

    通过“文件”>“选项”打开设置对话框。然后转到“配置编辑器”。在此,您需要添加选项“intf_out_assign_names”并将其设置为“user_name”。.

    PTC Creo STEP export settings

    访问 ISCAD 中的命名实体

    现在可以通过已命名的名称访问这些面,例如在 ISCAD 中。导入 STEP 文件后,按 Ctrl-I 即可浏览其子实体(见下文)。这些已命名的面在层次结构中显示为“face_”:

    InsightCAE ISCAD import STP with named faces

  • Importing IGES File (*.IGS) from FreeShip to OpenCASCADE

    从 FreeShip 导入 IGES 文件 (*.IGS) 到 OpenCASCADE

    FreeShip软件是设计船体的一个方便的工具。.
    FreeShip的功能基本上仅限于船体的外部设计。对于其他所有方面,则需要一个真正的CAD系统。它有一个IGES导出功能用于传输。.
    还有一个后续版本:DelftShip。DelftShip 的免费版本已删除 IGES 导出功能,该功能仅在商业版本中可用。我没有此版本,因此无法对其进行测试。.
    我想在我司的工具 ISCAD 中使用几何体。它基于 OpenCASCADE。.
    FreeShip 2.6 中建模的船体几何形状如下所示:
    导出到 IGES 文件并不令人惊奇,并且创建了 40 个单独的面。.
    下一步是导入OpenCASCADE。但这里有一个问题。OpenCASCADE (v7.2.0) 报告:

    报告:40个未知实体。.

    已加载实体总数 41。.

    没有任何显示。尽管有报道称较早的版本可以导入(https://forum.freecadweb.org/viewtopic.php?t=1670),该导入在当前 OCC 版本以及不同旧版本的 Salome(和 OpenCASCADE)中均无法正常工作。另一方面,该导入在商业 CAD 软件 Creo 等中可以正常工作。.

    最后,一项研究表明 FreeShip 导出的文件仅包含类型为 128(样条曲面)的实体。此外,文件开头有一个颜色定义。在 128 曲面的参数块的末尾(参见例如. https://wiki.eclipse.org/IGES_file_Specification#Rational_B-Spline_Surface_.28Type_128.29) 是曲面的起点和终点参数(U 和 V 的最小值/最大值)。这些条目会被 FreeShip 忽略,而对于 OpenCASCADE 来说,这是一个错误。.

    一种解决方法是修补OpenCASCADE的IGES导入。相应的代码位于IGESGeom/IGESGeom_ToolBSplineSurface.cxx文件的第188行开始。我移除了错误消息并插入了默认参数限制:

      如果 (!PR.ReadReal(PR.Current(), aUmin) || !PR.ReadReal(PR.Current(), aVmin)){
        //Message_Msg Msg106("XSTEP_106");
        //PR.SendFail(Msg106);
        aUmin=0.0;
        aVmin=0.0;
      }
    
      如果 (!PR.ReadReal(PR.Current(), aUmax) || !PR.ReadReal(PR.Current(), aVmax)){
        //Message_Msg Msg107("XSTEP_107");
        //PR.SendFail(Msg107);
        aUmax=1.0;
        aVmax=1.0;
      }

    有了这些修改,导入就可以正常工作了: