协同仿真 FMU 'ncp' 选项

Co-simulation FMU 'ncp' options

如果我将变量 'ncp' 的值设置为大数字,例如 simulation_options 的 400000 并模拟它。如附件所示,我收到错误消息。 simulation result with final_time=4.0。如果我给 ncp=100000 它正在工作。我的脚本需要使用 400000。我不知道错误的原因。 提前感谢您的帮助

您收到的错误是内存问题,即 Python 无法为您的模拟结果分配足够的内存。

在模拟过程中,结果会不断写入文件,在您使用 ncp=400000 的情况下,会写入 400000 个结果点。如果您的模型很大(就变量而言),这相当于要写入大量数据。请注意,虽然模拟成功了,但只有当结果被加载回内存以便 return 它失败时才会失败。您的模拟结果存储在当前目录下的一个文件中。

如果不是您模型中的所有变量都感兴趣,我建议使用 'filter' 选项,以便只存储感兴趣变量的结果。

    opts["filter"] = "*x" #Store all variables that ends with x
    opts["filter"] = ["Myvar1", "Myvar2*"] #Store "Myvar1" and all variables that starts with "Myvar2".

有关选项的更多信息,请参阅http://www.jmodelica.org/assimulo_home/pyfmi_1.0/pyfmi.html#pyfmi.fmi_algorithm_drivers.FMICSAlgOptions