0

如果我为simulation_options 将变量'ncp' 的值设置为400000 之类的大数字并对其进行模拟。我收到如附件所示的错误。 final_time=4.0 的模拟结果。如果我给 ncp=100000 它正在工作。我的脚本需要使用 400000。我无法知道错误的原因。提前感谢您的帮助

4

1 回答 1

0

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

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

如果不是模型中的所有变量都感兴趣,我建议使用“过滤器”选项,以便只为感兴趣的变量存储结果。

    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

于 2016-01-20T07:57:59.807 回答