JSON 文件格式参考
涡轮机导入工作流程要求使用其自身的文件格式定义涡轮机几何。此文件格式基于 JSON 标准构造。JavaScript 对象表示法 (JSON) 是一种 XML 精简格式,用于封装字符串数据以便于 Java 应用程序进行处理。
name : value其中名称只是一个字符串关键字或标签,值为对象或表。- 对象可以采用两种形式:
- 原始类型,其中对象是 Java 原始类型,如整数、双精度、字符串或布尔。
- 字符串以双引号括起;例如 ("...")。
- 数值和布尔值不包括在引号中。
- 对象,可以是原始类型的集合和/或表。对象以大括号括起;例如,"objectName" : { "name01" : "string value", "name02" : 5, "name03" : 10.65, "name04" : true}
- 对象中的名称-值对用逗号分隔。
- 原始类型,其中对象是 Java 原始类型,如整数、双精度、字符串或布尔。
- 表是 Java 原始类型数据(通常是数字)的表格化集合,可以是多维的。每个表条目用逗号分隔,表行以方括号括起;例如 [a, b, c, d]。
- 嵌套表的结构如下:"Table01" : [[a1, a2, a3], [b1, b2, b3]]。
- 表还可以包含对象作为表条目。如果对象是表条目,则没有标识名称,例如:"Table02" : [{"entry01" : 1, "entry02" : 2}, {"entry01" : 1.1, "entry02" : 2.1}].
- 对象和表可以彼此深度嵌套。
名称不必唯一,但在包含它的对象或表中应是唯一的,并且名称应具有描述性。读取 JSON 文件时,将提取对象和表及其关联名称,并搜索名称。因此,允许在 JSON 文件中重复使用名称,但使用中应注意确保在对象和表嵌套的层次结构中,可以唯一地定位该名称。
涡轮机数据 JSON 规范
- 叶片几何:一个 JSON 表,其中包含构建涡轮机叶片所需的所有数据,以允许工具正确命名和标记几何。
- JSON 表名称:'bladesets'
- 主气道几何:一个 JSON 对象,其中包含构建轮毂和罩体表面所需的所有数据。
- JSON 对象名称:'flowpath'。
- "machinetype" : "Turbine"
- "machinetype" : "Compressor"
| 注 | 文件中哪个表(flowpath 或 bladesets)在第一个和最后一个不受限制。同样,在任何给定的 JSON 对象中,各种对象的顺序并不重要。 |
主气道(流道)
- 数据插值
- JSON 对象名称:'interpolation'。
- JSON 对象值:字符串值,用于指定应如何对流道分布数据进行插值。该值可以是 "Linear" 或 "Spline"。如果未在 JSON 文件中定义该值,则数据将按样条进行插值。每个轮毂/罩体轮廓截面还可以单独控制其各自的插值。
注 对于轮毂/罩体间隙处理,采用单个样条曲面(基于叶片附近的轮毂/罩体轮廓点)对叶片进行平滑剪切,即使轮毂/罩体本身采用线性插值也是如此。 - 轮毂:轮毂表面的数据。
- JSON 表名称:'hub'。
- 罩体:罩体表面的数据。
- JSON 表名称:'shroud'。
每个表都使用 JSON 对象进行填充。JSON 对象共同定义作为曲面基础的配置文件。
- 旋转速度(此元素不是必须指定的)
- JSON 对象名称:'rpm'。
- JSON 对象值:数字转速。
- 转速按“右手定则”方向给出。
- 坐标类型:如何定向数据点。
- JSON 对象名称:'type'。
- JSON 对象值:字符串值。
- 目前,唯一支持的类型是 "zrpoints",其他坐标类型也可以根据需要支持。
- "zrpoints" 是 Z 坐标和半径值,将在 3D-CAD 中转换为 YZ 坐标。
- 数据插值
- JSON 对象名称:'interpolation'。
- JSON 对象值:字符串值,用于指定应如何插补此截面的坐标数据。该值可以是 "Linear" 或 "Spline"。如果未在 JSON 文件中定义该值,则数据将按样条进行插值。此定义将替代流道截面中的顶层插值定义。
- 坐标数据表
- JSON 表名称(与坐标类型对齐):'zr'(实施其他类型后,可以支持其他标签)。
- JSON 表条目:包含定义该截面样条的 2D 坐标集。
| 注 |
轮毂或罩体表中第一个截面的第一个点假设为流道入口。 轮毂或罩体表中最后一个截面的最后一个点假设为流道出口。 轮毂和罩体数据必须从轴最小值到轴最大值(例如,Z 轴最小值到 Z 轴最大值)。 目前,给定截面的最后一个坐标和后续截面的第一个坐标必须完全相同(不允许在值中引入数字噪声)。只需将前一截面的最后一个坐标复制并粘贴到下一截面的第一个坐标位置即可轻松实现。该工具会评估这些点,以确保它们精确匹配,然后舍弃其中一个点,这样样条就不会包含重复的点。 |
叶片几何体
叶片几何表中每个叶片定义对应一个 JSON 对象。
- 阶段名称
- JSON 对象名称:'label'。
- JSON 对象值:命名对象的字符串值。
- 此标签可以是任何值,但建议将其作为包含叶片的阶段标签(例如,"Stage 01"、"Stage 02" 等)。
- 旋转速度
- JSON 对象名称:'rpm'。
- JSON 对象值:数字转速。
- 转速按“右手定则”方向给出。
- 轮毂间隙值
- JSON 对象名称:'hubclr'。
- JSON 对象值:叶片根部和轮毂之间距离的数值,作为垂直于轮毂表面的偏置。
- 根据以下示例之一输入轮毂安全距离:
"hubclr":0.0005,叶片根部变为尖端,恒定间隙为 0.5 mm。"hubclr":[0.0005, 0.0015],叶片根部变为尖端,其间隙可变,从前缘处的 0.5 mm 线性更改为尾缘处的 1.5 mm。
注 轮毂间隙值或罩体间隙值不得为零。如果在 JSON 文件中定义了这两个值,Simcenter STAR-CCM+ 涡轮空气动力学工作流程插件将忽略这两个值,并在输出窗口中打印一条警告消息。 注 定义任何转子叶片的轮毂间隙值时,轮毂/罩体边界可能不会设为正确的参考坐标系。在运行模拟之前,直接在 Simcenter STAR-CCM+ 中验证并更改这些值。 - 罩体间隙值
- JSON 对象名称:'shroudclr'。
- JSON 对象值:叶片尖端和罩体之间距离的数值(可以为零),作为垂直于罩体表面的偏置。
- 根据以下示例之一输入包覆安全距离:
"shroudclr":0.0005,叶片尖端的恒定间隙为 0.5 mm。"shroudclr":[0.0005, 0.0015],叶片尖端具有可变间隙,该间隙从前缘处的 0.5 mm 线性更改为尾缘处的 1.5 mm。
注 轮毂间隙值或罩体间隙值不得为零。如果在 JSON 文件中定义了这两个值,Simcenter STAR-CCM+ 涡轮空气动力学工作流程插件将忽略这两个值,并在输出窗口中打印一条警告消息。 - 轮毂圆角值
- JSON 对象名称:'hubfillet'。
- JSON 对象值:叶片和轮毂之间的边的圆角半径数值。
- 根据以下示例之一输入轮毂圆角值:
"hubfillet":0.0,无圆角;叶片表面沿压力侧和吸力侧的公共边直接与轮毂表面相接。"hubfillet":0.0005,在叶片和轮毂之间的边上创建恒定半径为 0.5 mm 的圆角。"hubfillet":[0.0005, 0.0015],在叶片和轮毂之间的边上创建可变半径圆角。半径从前缘的 0.5 mm 渐变至尾缘的 1.5 mm。
注 当 JSON 文件中的 'hubfillet' 定义为非零值时,'hubclr' 值必须为零。否则,Simcenter STAR-CCM+ 涡轮空气动力学工作流程插件将忽略 'hubfillet' 值,在输出窗口中打印一条警告消息,并且不会为轮毂侧的该叶片创建圆角。 - 罩体圆角值
- JSON:对象名称:'shroudfillet'。
- JSON:对象值:叶片和罩体之间的边的圆角半径数值。
- 根据以下示例之一输入包覆圆角值:
"shroudfillet":0.0,无圆角;叶片表面沿压力侧和吸力侧的公共边直接与罩体表面相接。"shroudfillet":0.0005,在叶片和罩体之间的边上创建恒定半径为 0.5 mm 的圆角。"shroudfillet":[0.0005, 0.0015],在叶片和罩体之间的边上创建可变半径圆角。半径从前缘的 0.5 mm 渐变至尾缘的 1.5 mm。
注 当 JSON 文件中的 'shroudfillet' 定义为非零值时,'shroudclr' 值必须为零。否则,Simcenter STAR-CCM+ 涡轮空气动力学工作流程插件将忽略 'shroudfillet' 值,在输出窗口中打印一条警告消息,并且不会为罩体侧的该叶片创建圆角。 - 叶片定义数据
- JSON 表名称:'blades'。
- JSON 表条目。
- 叶片定义表包含下一部分中定义的许多不同对象。
叶片定义
由于任何给定叶片排都可能包含具有不同几何的大量叶片,因此叶片几何数据以 JSON 对象表的形式显示。
- 压力侧标识符
- JSON 对象名称:'PS'。
- JSON 对象值:'LS' 或 'TS'。
- 有关叶片轮廓数据的讨论中阐述了这些值的重要性。
- 吸入侧标识符
- JSON 对象名称:'SS'。
- JSON 对象值:'LS' 或 'TS'。
- 有关叶片轮廓数据的讨论中阐述了这些值的重要性。
- 实例标识符(此元素不是必须指定的)
- JSON 对象名称:'instance'。
- JSON 对象值:数字整数。
- 值必须为 1。
- 叶片标签
- JSON 对象名称:'label'。
- JSON 对象值:用于标识此叶片定义的字符串。
- 对于涡轮机叶片,该值不需要唯一,但对于该阶段应该是唯一的。
- 截面数
- JSON 对象名称:'numsections'。
- JSON 对象值:数字整数。
- 此值定义用于定义叶片几何的翼面轮廓数。最小值为 2(叶片根部和叶片尖端)。
- 重复计数
- JSON 对象名称:'repeat'。
- JSON 对象值:数字整数。
- 此值定义此叶片绕叶片排周向重复的次数。如果叶片重复 36 次,则此叶片的各副本之间的夹角为 10 度。此值用于计算周期表面界定的扇区角度。
- 翼面样条点数据
- JSON 表名称:'sections'。
- JSON 表条目:JSON 对象包含翼型点数据表。
叶片轮廓定义
- 前缘定义(可选)
- JSON 表名称:'LE'。
- JSON 表条目:XYZ 坐标数据。
- 这些点定义了构成翼面轮廓前缘的曲线。目前,假设圆弧中心是翼面的前缘点。
- 此为可选块,其信息可以包含在 LS 和 TS 块中。
- 前导面定义
- JSON 表名称:'LS'。
- JSON 表条目:XYZ 坐标数据。
- 前导面是面向旋转方向的表面。
- 尾缘定义(可选)
- JSON 表名称:'TE'。
- JSON 表条目:XYZ 坐标数据。
- 这些点定义了构成翼面轮廓尾缘的曲线。目前,假设圆弧中心是翼面的尾缘点。
- 此为可选块,其信息可以包含在 LS 和 TS 块中。
- 尾随面定义
- JSON 表名称:'TS'。
- JSON 表条目:XYZ 坐标数据。
- 尾随面是背对旋转方向的表面。
| 注 | 与流道数据不同,叶片样条数据始终假设为笛卡尔坐标系。每组 XYZ 数据都作为父表的条目包含在自己的表中。 四条曲线(LE、LS、TE、TS)形成封闭样条。该工具不会试图创建任何附加点来提高样条的光顺性。 LS 和 TS 标签用于叶片制造,对 CFD 并不完全有用,因为前导面和尾随面可能会有所不同,具体取决于叶片是转子还是定子叶片。为了使这些数据对 CFD 更加有用,新增了压力 (PS) 侧和吸力 (SS) 侧标识符,这样无需先确定叶片是转子还是定子以及旋转方向即可识别叶片的压力侧和吸力侧。 翼型样条数据按如下方式排序:
前缘曲线的第一点与前导面曲线的第一点相邻。根据前导面和尾随面的排列方式,点的顺序会有所不同(请参见下图)。该工具需要此变化,并将点安排成连续曲线。必须遵守此排序。 如果不使用前缘或尾缘块,则吸力曲线的第一个点为前缘点,最后一个点为尾缘点。 ![]() 该工具不会选择阶段和叶片标签,因此建议标记阶段和叶片/叶片排,以便轻松识别它们。在 JSON 文件中为每个叶片定义的第一个截面必须靠近轮毂,最后一个截面必须靠近罩体。 |
