You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FMU模型内置唯一实例ID及多实例文件命名技术问询

FMU多实例唯一ID与文件命名解决方案

内置唯一实例ID说明

FMU标准并未强制模型内置全局唯一的实例ID参数,但可以通过两种可靠方式实现需求:

1. 利用Python实例的内存标识传递ID

通过pyfmi.load_fmu()创建的每个FMU实例,在Python层面都有唯一的内存地址,可通过id()函数获取作为临时唯一ID,再传递给模型内部:

# 创建多个FMU实例
model_inst1 = pyfmi.load_fmu("D:/path/model.fmu", log_level=6)
model_inst2 = pyfmi.load_fmu("D:/path/model.fmu", log_level=6)

# 获取实例唯一内存ID
inst_id_1 = id(model_inst1)
inst_id_2 = id(model_inst2)

# 将ID传入模型(需模型预留对应输入参数)
model_inst1.set("instance_id", inst_id_1)
model_inst2.set("instance_id", inst_id_2)

GCC编译的模型代码可读取该instance_id参数,拼接生成唯一文件名(如log_{inst_id}.txt)。

2. 自定义可控唯一ID

如果需要更规整的ID格式(如自增整数、业务标识字符串),可在建模阶段为FMU添加一个输入参数(例如custom_instance_id),创建实例时手动分配唯一值:

# 自增ID示例
for idx in range(5):
    model_inst = pyfmi.load_fmu("D:/path/model.fmu", log_level=6)
    model_inst.set("custom_instance_id", idx + 1)
    # 后续运行模型逻辑

模型内部直接使用该自定义ID生成唯一命名的文本文件即可。

关键注意点

  • 内存地址ID仅在实例生命周期内唯一,若实例被回收后新实例可能复用地址,需确保实例存活周期覆盖文件生成过程。
  • 自定义ID方式需提前在FMU模型中定义对应输入接口,保证参数能被GCC代码读取。

内容的提问来源于stack exchange,提问作者Abhijit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:33:25