Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pyFMI Python模拟不同数量的输出点_Python_Optimization_Modelica_Dymola_Fmi - Fatal编程技术网

pyFMI Python模拟不同数量的输出点

pyFMI Python模拟不同数量的输出点,python,optimization,modelica,dymola,fmi,Python,Optimization,Modelica,Dymola,Fmi,如何精确控制模型输出的数量 我根据不同的输入参数获得不同数量的输出点: 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 op

如何精确控制模型输出的数量

我根据不同的输入参数获得不同数量的输出点:

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格式的函数 Tainit是参数的初始值

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

对于校准问题,我需要有相同数量的输出点。如果有人知道如何控制它

正如Hans指出的,额外的分数可能是由于默认情况下存储在ncp顶部的事件造成的。禁用事件点存储可以使用以下方法完成:

model = load_fmu(...)
opts = model.simulate_options()
opts["CVode_options"]["store_event_points"] = False

res = model.simulate(options=opts)

我认为加分的原因是事件。我假设有一种方法可以关闭pyFMI中事件的值存储;但还没有调查过。这正是我要找的!