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

2024-09-28 20:39:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过将包含fmpy simulate的函数放在一个循环中,模拟了一批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)]

Tags: 函数falseoutput参数time过程错误result
1条回答
网友
1楼 · 发布于 2024-09-28 20:39:58

您可以捕获异常并返回状态消息以及结果,如下所示

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)]

相关问题 更多 >