我正在使用FMPy来模拟一些具有String输出变量的FMU,但是这些在模拟结果中不可用(simulate_fmu(filename)返回的对象)。
这些变量是否以其他方式处理?如果是这样,我该如何访问它们?
谢谢。
我使用values.fmu运行了一个模拟,该模拟具有String输出变量(string_out
)。
import fmpy
# fmu path
fmu_name = "C:\\fmusdk\\fmu20\\fmu\\cs\\x64\\values.fmu"
# Simulate
res = fmpy.simulate_fmu(fmu_name, stop_time=2., debug_logging=False)
# Results
print('Results names and types: ' + str(res.dtype))
注意:要运行该示例,您必须下载并安装fmusdk,它需要Microsoft Visual Studio 2005(VS8),2008(VS9),2010(VS10),2012(VS11),2013(VS12)或2015中的一种(VS14)。
Results names and types: [('time', '<f8'), ('int_out', '<i4'), ('bool_out', '?')]
我希望res
包含输出变量string_out
。
我意识到fmi2GetString
不会被调用,因此输出不可能具有string_out
的值。 因此,我不确定FMPy是否支持TypeDefinitions String。
Python version: 3.7.3
FMPy version: 0.2.10
答案 0 :(得分:1)
仅支持将字符串作为参数使用(从FMPy 0.2.10开始)。如果您需要字符串作为输入或输出,则可以构建一个自定义的模拟循环并直接使用fmu.setString()
和fmu.getString()
函数。
您可以使用custom_input.py example作为起点。