我通过将包含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)]
答案 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)]