Чтобы сгенерировать выходной файл (формат .rwo), содержащий желаемый результат, нам нужно запустить исполняемый файл программы отчета, которая использует файл параметров (формат .rwd). Выходной файл - ReportBHP1.rwo, этот файл будет содержать экспортированную переменную.
Теперь, чтобы реализовать это в Matlab, ниже приведен небольшой скрипт, дающий представление о том, чего я пытаюсь достичь. Он вызывает CMG (программное обеспечение) для каждой реализации и извлекает данные.
for nr=1:NREAL
dlmwrite(‘PERM.INC’,PERM(:,nr),’delimiter’,’\n’); % Writes the permeability file for each realization
system('mx200810.exe -f ReservoirModel_CMGBulider.dat') % Calls CMG
system('report.exe /f ReportBHP1.rwd /o ReportBHP1.rwo') % Calls Parameter file and generates output file
[TIME(:,j),BHP1(:,j)]=textread('ReportBHP1.rwo','%f\t%f','headerlines',5); % reading the time and BHP from output file generated for well 1
end
Все необходимые для моего программного обеспечения файлы .exe
и .dll
находятся в той же папке, где у меня есть файл ReservoirModel_CMGBulider.dat
. Поэтому я запускаю файл .m
в той же папке, где у меня есть все эти файлы.
Я могу создать выходной файл (.rwo). Однако в отчете моделирования программного обеспечения есть ошибка, которая отображается в командном окне Matlab следующим образом:
"...STOP: Unable to open the following file as data file:
'ReservoirModel_CMGBuilder.dat'
Check path name for spaces, special character or a total length greater than 256 characters
Cannot find data file named 'ReservoirModel_CMGBuilder.dat'
Date and Time of End of Run: .....
ans = 0"
Я думаю, что он читает файл .dat только один раз, а затем перезаписывает первый результат реализации в остальных реализациях. Как следствие этого, результат всех реализаций становится таким же, как и первая реализация. Мне нужна помощь в исправлении этой ошибки.