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