在python GEKKO或matlab APM中指定解决方案文件的输出目录

2024-04-29 02:56:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python-GEKKO和/或APM-Matlab接口解决一个最优控制问题(两种语言的软件包是相同的)。我可以成功地解决问题,但我不知道如何指定解决方案文件的输出位置。你知道吗

在加载我的文件并使用

% server
s = 'http://byu.apmonitor.com';
% application name
a = 'test';
% load model and data file
apm_load(s,a,'test.apm')
csv_load(s,a,'test.csv')
output = apm(s,a,'solve');

一个名为“解决方案”的文件_测试.csv'是在我刚才运行的文件的目录中创建的。如何更改此输出目录?你知道吗


Tags: 文件csvtest目录语言httpserverload
2条回答

如果我理解正确,您希望将文件从目录移动到新目录。尝试将其合并到代码中。你知道吗

#dirpath = path of current file
#fname = file name

import os
import shutil

dest_dir = 'some new directory path'

shutil.copy(os.path.join(dirpath, fname), dest_dir)

您可以通过更改m._path来指定运行文件夹。如果将其保留为默认临时目录,则可以使用print(m._path)查看该文件夹或使用m.open_folder()打开临时文件夹。下面是使用简单应用程序指定运行目录的示例:

from gekko import GEKKO
m = GEKKO()
m._path = r'C:\test'
x = m.Var()
m.Obj(x**2)
m.solve(disp=False)
print(x.value[0])

您需要确保可以写入此文件夹,在本例中是写入C:\test。如果文件夹不存在或您没有写入该文件夹的权限,则会引发错误。另外,如果您打开该文件夹中的某个文件时使用的程序对该文件进行了锁定(如Microsoft Excel),则如果再次尝试运行Python程序时打开并锁定了该文件进行写入,则会收到一个错误。你知道吗

相关问题 更多 >