无法找出哪个FMU在fmpy中有错误

时间:2020-07-29 13:09:05

标签: python fmi

我通过将包含fmpy模拟的函数放在一个循环中,模拟了5个FMU的批次。 其中有4个模拟正确。第五个参数错误导致显示错误。

我的问题是,有什么方法可以找出模拟过程中错误来自哪个FMU

理想情况下,输出应如下所示: FMU1:好的 FMU2:好的 FMI3:“错误”等等

def wf(i):
    result = simulate_fmu(
        fmupath[i],
        validate=False,
        start_time=0,
        stop_time=endtime,
        solver='CVode',
        output_interval=stepsize,
        record_events=False,
        start_values = parameters[i],
        output = resultvariables,
    )
    dfindres = pd.DataFrame.from_dict(result)
    return dfindres

results = [wf(i) for i in range(5)]

1 个答案:

答案 0 :(得分:0)

您可以捕获异常并返回状态消息以及结果,就像这样

def wf(i):
    try:
        result = simulate_fmu(
            fmupath[i],
            validate=False,
            start_time=0,
            stop_time=endtime,
            solver='CVode',
            output_interval=stepsize,
            record_events=False,
            start_values=parameters[i],
            output=resultvariables,
        )
    except Exception as e:
        return None, "FMU%d: Error" % i

    dfindres = pd.DataFrame.from_dict(result)
    return dfindres, "FMU%d: OK" % i

# list of tuples (result, status)
results = [wf(i) for i in range(5)]