协同仿真FMU'ncp'选项

时间:2016-01-19 12:38:19

标签: python-2.7 simulation fmi

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

1 个答案:

答案 0 :(得分:0)

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

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

如果不是模型中的所有变量都有意义,我建议使用'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