指定与 FMU 交换的标量值
FMU 模型公开可用于在协同仿真中交换的标量变量。这些变量可以表示输入、输出、参数或局部变量,这是由其因果关系定义的。
在协同仿真过程中,Simcenter STAR-CCM+ 可以:
- 将单值数据导出至 FMU 以用作输入变量
- 导入由 FMU 计算的输出变量,并使用它们在 Simcenter STAR-CCM+ 模拟中设置边界条件
- 设置 FMU 模型中使用的参数
- 跟踪 FMU 局部变量的值
Simcenter STAR-CCM+ 提供两种方法用于与 FMU 交换输入和输出数据 - 协同仿真区域和链接值规范:
- 协同仿真区指定与 FMU 交换数据的一组 Simcenter STAR-CCM+ 模型零部件(边界或区域)。通过协同仿真区从 FMU 导入的值存储为空间均匀场,可用于设置边界和区域。
- 链接值规范通常用于交换不一定应用于边界或区域的一般数据。通过链接规范从 FMU 导入的值存储为单个值。
有关更多信息,请参见 FMU 链接参考。
要在 Simcenter STAR-CCM+ 中定义交换物理量,则导入 FMU 中定义的变量设置。在导入过程中,Simcenter STAR-CCM+ 根据 FMU 输入和输出变量自动填充相关节点(导出的值和导入的场区,或链接导出的值和导入的值)。Simcenter STAR-CCM+ 还会分别根据 FMU 参数和局部变量填充参数和跟踪值节点,这些节点位于 节点下。由于参数和局部变量仅适用于 FMU,因此它们不会通过协同仿真区进行交换。
要确定 Simcenter STAR-CCM+ 是在协同仿真区还是链接下创建导入和导出规范,则指定 Simcenter STAR-CCM+ 用于解析 FMU 变量名称的命名约定:
-
选择
节点,然后将变量命名约定设为以下选项之一:
- 平面 - 变量名称被视为单个平面字符串。根据变量的类型,Simcenter STAR-CCM+ 将创建以下节点:
FMU 变量类型 变量名称示例 Simcenter STAR-CCM+ 导入/导出的值节点 输入 component1.force 输出 component1.displacement 参数 component1.parameter1 局部变量 component1.local1 - 结构化 - 包含分隔符的变量名称被视为分层名称。Simcenter STAR-CCM+ 使用分层名称创建区域(但参数名称始终被视为平面字符串)。根据变量的类型,Simcenter STAR-CCM+ 将创建以下节点:
FMU 变量类型 变量名称示例 Simcenter STAR-CCM+ 导入/导出的值节点 输入 component1.force 输出 component1.displacement 参数 component1.parameter1 局部变量 component1.local1
- 平面 - 变量名称被视为单个平面字符串。根据变量的类型,Simcenter STAR-CCM+ 将创建以下节点:
-
如果选择了结构化选项,则选择[导入的库]节点并设置以下属性:
属性 设置 名称解析方向 要指定在变量名称中确定分层的方向,选择向前(默认)或反转。 分层分隔符 指定定义分层分隔符的字符(默认为 "...")。
要导入 FMU 变量设置:
-
右键单击[链接 1]节点并选择导入设置。
Simcenter STAR-CCM+ 按之前所述填充相关节点。
如果使用协同仿真区交换值,则指定通过该区域与 FMU 交换数据的模型零部件(区域或边界)。将边界和区域分配给某个区的过程类似。例如,要将边界指派给某个区:
- 展开相关的边界节点 。
- 选择 节点,并将外部程序耦合指定设为相关的协同仿真区。
要完成在某个协同仿真区下导入的场的定义:
-
对于
节点下的每个节点:
- 选择[导入的场]节点,并通过设置场模板属性来指定已导入数据的映射位置。
- 选择 节点,并指定恒定的初始化值。
- 对于每个区域导入的场,Simcenter STAR-CCM+ 创建一个场函数,名为 Co-Simulation: [Field Name](协同仿真:[场名称])。使用这些场函数可设置相关的边界条件。例如,可以使用导入的位移来设置边界处的变形规范。
要完成在某个链接下导入的值的定义:
-
对于
节点下的每个节点,选择相应的 节点,并指定恒定的初始化值。Simcenter STAR-CCM+ 使用名称 [链接 1][FMU 变量名称] 来存储导入的值。可以在写入表达式时引用此值。
要完成已导出值的定义:
- 展开导出的值节点(在该链接下或在某个协同仿真区下)。
-
对于每个
节点,将值 设为要导出至 FMU 的单值物理量。根据 FMU 所需的数据类型,使用以下某一方法:
数据类型 在 Simcenter STAR-CCM+ 中设置值的方法 整型 键入整数。不能使用表达式。 理想 提供计算为单个值的任何表达式。由于 FMU 变量为空间不变量,因此 Simcenter STAR-CCM+ 必须导出单值数据。要将空间相关场转换为单值,可以使用报告。在 Simcenter STAR-CCM+ 中,所有报告自动生成在每次迭代时返回报告值的场函数。可以将此单值场函数导出至 FMU 模型。 尽管可以导出 FMU 支持的任何数据类型(实数、整数、布尔、字符串、枚举),但通常会导出类型为实数的标量。
枚举 从下拉菜单中选择一个选项(FMU 模型描述文件包含决定可用方法的枚举类型定义) 字符串 键入字符串。不能使用表达式。 布尔运算 激活复选框为 true,停用复选框为 false。 通过展开已导入库节点下的相关节点,可以将任何 FMU 变量和类型定义的数据类型可视化:
如果 FMU 模型包含可调参数,则可以在 Simcenter STAR-CCM+ 中设置它们。要删除参数:
-
选择相关的
节点,然后设置参数值。根据参数数据类型,可以使用为导出的值概况的相同步骤,以不同的方式指定参数值。
要运行协同仿真:
-
单击 (运行)。
Simcenter STAR-CCM+ 将加载 FMI 库并运行协同仿真。