Если я установил значение переменной «ncp» в большое число, например 400000 для моделирования_опций и смоделировал его. Я получаю ошибку, как показано в приложении. simulation result with final_time=4.0. Если я дам ncp = 100000, он работает. Мне нужно использовать 400000 для моего скрипта. Я не могу узнать причину ошибки. Спасибо за вашу помощь заранееОпции совместного использования FMU 'ncp'
ответ
Ошибка, которую вы получаете, является проблемой памяти, то есть 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
Спасибо за ваш ответ. Ты прав. Мне нужны только данные из трех переменных. Могу ли я узнать, как использовать параметр «фильтр», который вы упомянули. Я тоже новичок в python –
Не проблема, я обновил свой пост. –
Спасибо @christian –