1

我在 Jupyter 笔记本中使用 pyfmi 来运行模拟,我喜欢以交互方式工作并评估参数等的增量变化。很久以前,我发现有必要引入一个字典,作为参数和初始值的“容器”。现在我想知道是否有一种方法可以摆脱这个“容器”,毕竟它在一定程度上是“模型”的平行结构?

典型的工作流程如下所示:

    create a diagram where results from different simulations below should be shown

    model = load_fmu(fmu_model) 
    parDict['model.x_0'] = 1
    parDict['model.a'] = 2
    for key in parDict.keys(): model.set(key,parDict[key])
    sim_res = model.simulate(10)
    plot results...

    model = load_fmu(fmu_model) 
    parDict['model.x_0'] = 3
    for key in parDict.keys(): model.set(key,parDict[key])
    sim_res = model.simulate(10)
    plot results...

有一个函数 model.reset() 可以在编译时将状态恢复为默认值而无需再次加载,但您需要做的不仅仅是以下操作

    model.reset()
    parDict['model.x_0'] = 3
    for key in parDict.keys(): model.set(key,parDict[key])
    sim_res = model.simulate(10)
    plot results...

所以,这是行不通的……在所有参数和初始值都需要恢复之后,我们仍然需要 parDict,但我们可以避免使用 load-command。

4

0 回答 0