Укажите выходной каталог файла решения в python GEKKO или matlab APM - PullRequest
3 голосов
/ 06 июля 2019

Я решаю задачу оптимального управления с помощью интерфейса 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');

в каталоге файла, который я только что запустил, создается файл с именем solution_test.csv.Как я могу изменить этот выходной каталог?

Ответы [ 2 ]

2 голосов
/ 08 июля 2019

Вы можете указать папку запуска, изменив 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 вы получите сообщение об ошибке, если файл открыт и заблокирован для записи. запрограммируйте снова.

1 голос
/ 07 июля 2019

если я вас правильно понимаю, вы хотите переместить файлы из каталога в новый каталог.Попробуйте включить это в свой код.

#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)
...