【发布时间】:2010-07-11 22:40:56
【问题描述】:
要生成包含所需结果的输出文件(.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 文件一次,然后覆盖第一个实现导致其余实现。因此,所有实现的结果都与第一个实现相同。我需要帮助来纠正这个错误。
【问题讨论】:
-
不知道如何解决这个问题,但是如果你找到一些好的油袋请告诉我:-)
-
我没听懂你说的“油袋”。
-
必和必拓、渗透率、井、储层...
-
你能在这个目录中从命令 shell 手动多次运行这些命令吗? (另外,我没有看到循环的重点,PERM.INC 会被您的软件自动选择吗?)
-
我这里展示的基本上只是代码的一部分。有不同的 .INC 文件,我在这里只显示 1 个。 PERM.INC 文件基本上存储了由软件的“ReservoirModel_CMGBuilder.dat”文件自动提取的渗透率值(通过在.dat 文件中添加一个命令行)。
标签: matlab