PyFMI Python симуляция различного количества выходных точек - PullRequest
0 голосов
/ 16 ноября 2018

Как точно контролировать количество выходов модели

Я получаю различное количество точек вывода на основе разных входных параметров:

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 - это функция для преобразования параметров вПравильный формат 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

Для вопросов калибровки мне нужно иметь одинаковое количество выходных точек,Если кто-то знает, как это контролировать.

1 Ответ

0 голосов
/ 16 ноября 2018

Как указывает Ганс, дополнительные баллы, вероятно, связаны с событиями, которые хранятся по умолчанию (поверх ncp). Отключение сохранения точек события можно сделать с помощью:

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

res = model.simulate(options=opts)
...