如何合理控制模型输出的数量
我根据不同的输入参数得到不同数量的输出点:
model = load_fmu("Trial.fmu") # 64 Bit generated FMU with Dymola+Buildsyspro
tstart = model.get_default_experiment_start_time() #### START TIME
tstop = model.get_default_experiment_stop_time() #### STOP TIME
opts = model.simulate_options () # Setting the output number of outputs
opts['ncp']=194 ## Want to have exactly 194 data points
foo是一个将参数转换为righ格式的函数,thetaInit是参数的初始值。
results=model.simulate(input=foo(thetaInit),options=opts, start_time=tstart, final_time=tstop)
len(results['DC_Power')
267
通过将初始参数值乘以0.9更改它们的初始参数值
results2=model.simulate(input=foo(thetaInit*0.9),options=opts, start_time=tstart, final_time=tstop)
len(results['DC_Power')
263
对于校准问题,我需要有相同数量的输出点。如果有人知道怎么控制这件事。
发布于 2018-11-16 12:58:54
正如Hans指出的那样,额外的分数很可能是由于默认情况下存储的事件(在ncp之上)造成的。禁用事件点存储可以使用以下方法完成:
model = load_fmu(...)
opts = model.simulate_options()
opts["CVode_options"]["store_event_points"] = False
res = model.simulate(options=opts)
https://stackoverflow.com/questions/53339436
复制相似问题