2016-01-19 2 views
0

Если я установил значение переменной «ncp» в большое число, например 400000 для моделирования_опций и смоделировал его. Я получаю ошибку, как показано в приложении. simulation result with final_time=4.0. Если я дам ncp = 100000, он работает. Мне нужно использовать 400000 для моего скрипта. Я не могу узнать причину ошибки. Спасибо за вашу помощь заранееОпции совместного использования FMU 'ncp'

ответ

0

Ошибка, которую вы получаете, является проблемой памяти, то есть Python не может выделить достаточное количество памяти для ваших результатов моделирования.

Во время моделирования результат записывается в файл и в вашем случае с ncp = 400000, записываются 400000 точек результата. Если ваша модель большая (с точки зрения переменных), это составляет огромное количество данных, которые записываются. Обратите внимание, что симуляция завершается успешно, и только тогда, когда результаты загружаются обратно в память, чтобы вернуть ее пользователю, что она терпит неудачу. Результаты моделирования сохраняются в файле в текущем каталоге.

Если не все переменные в вашей модели представляют интерес, я бы рекомендовал использовать параметр «фильтр», чтобы сохранить только результаты для интересующих переменных.

opts["filter"] = "*x" #Store all variables that ends with x 
    opts["filter"] = ["Myvar1", "Myvar2*"] #Store "Myvar1" and all variables that starts with "Myvar2". 

Для получения дополнительной информации о параметрах см http://www.jmodelica.org/assimulo_home/pyfmi_1.0/pyfmi.html#pyfmi.fmi_algorithm_drivers.FMICSAlgOptions

+0

Спасибо за ваш ответ. Ты прав. Мне нужны только данные из трех переменных. Могу ли я узнать, как использовать параметр «фильтр», который вы упомянули. Я тоже новичок в python –

+0

Не проблема, я обновил свой пост. –

+0

Спасибо @christian –