我正在运行以下JModelica脚本:
#!/usr/local/jmodelica/bin/jm_python.sh
import pyjmi
op = pyjmi.transfer_optimization_problem("BatchReactor", "model.mop")
opt_opts = op.optimize_options()
opt_opts['n_e'] = 40 # Number of elements
opt_opts['IPOPT_options']['tol'] = 1e-10
opt_opts['IPOPT_options']['print_level'] = 8
opt_opts['IPOPT_options']['output_file'] = '/z/out'
res = op.optimize(options=opt_opts)
我原本希望将结果(例如时间,x1,x2和c。)打印到文件/z/out
。但该文件仅包含IPOPT详细调试/状态信息。
有没有办法将res
中存储的信息直接打印到文件中?要么通过某种方式编写res本身,或者最好是让IPOPT / JModelica编写结果而不必通过Python?
答案 0 :(得分:0)
有一种方法可以将信息直接打印到文件中。以下完成此操作。请注意result_file_name
是实现此目标的关键。
#!/usr/local/jmodelica/bin/jm_python.sh
import pyjmi
op = pyjmi.transfer_optimization_problem("BatchReactor", "model.mop")
opt_opts = op.optimize_options()
opt_opts['n_e'] = 40 # Number of elements
opt_opts['result_file_name'] = '/z/out'
opt_opts['IPOPT_options']['tol'] = 1e-10
opt_opts['IPOPT_options']['print_level'] = 0
res = op.optimize(options=opt_opts)
不幸的是,该文件的内容有些神秘。