使用 Dymola 将特定变量写入 .txt 或 .mat
Writing specific variable to .txt or .mat with Dymola
我需要一种方法来将模拟中的特定变量写入 .txt 或 .mat。
使用:
Streams.print(Modelica.Math.Vector.toString(resultVector),"filename");
与通过模拟选项卡导出变量相比,导致数据错误,因为没有一致性。 .txt 文件中的值完全不同,没有可见的模式。
Modelica.Utilities.Streams.writeRealMatrix
会做您需要的吗?
对我来说
Modelica.Utilities.Streams.writeRealMatrix(
fileName="C:/temp/test.mat",
matrixName="testMatrix",
matrix=[1,2;4,5],
append=false,
format="7")
生成预期的 .mat 文件。
为了能够在 .mat
文件中写入变量,您必须将变量转换为(二维)矩阵 - 如果它还不是一个。这可以通过使用方括号转换标量或向量来完成。这将为标量提供 matrix=[1]
或为矢量提供 matrix=[{1,2,3,4}]
。使用 matrix=1
或 matrix={1,2,3,4}
会报错。
由于 post- 处理是可以接受的,因此有一些可用的选项:
Dymola 包含工具 alist
:
alist -e var1 [-e var2 ...] inputFile outputFile
export data for var... as comma-separated values, suitable
for importing into Microsoft Excel.
Options: -a write in ASCII format (default)
-b write in Matlab binary format
https://www.j-raedler.de/projects/DyMat/ 可用于读取结果文件并生成您喜欢的任何格式的文件(使用 Python)。
OpenModelica 有一个类似于 alist
的选项,如果您想要更少的数据点,它也可以重新采样信号 https://openmodelica.org/doc/OpenModelicaUsersGuide/v1.12.0/scripting_api.html#filtersimulationresults。
我需要一种方法来将模拟中的特定变量写入 .txt 或 .mat。
使用:
Streams.print(Modelica.Math.Vector.toString(resultVector),"filename");
与通过模拟选项卡导出变量相比,导致数据错误,因为没有一致性。 .txt 文件中的值完全不同,没有可见的模式。
Modelica.Utilities.Streams.writeRealMatrix
会做您需要的吗?
对我来说
Modelica.Utilities.Streams.writeRealMatrix(
fileName="C:/temp/test.mat",
matrixName="testMatrix",
matrix=[1,2;4,5],
append=false,
format="7")
生成预期的 .mat 文件。
为了能够在 .mat
文件中写入变量,您必须将变量转换为(二维)矩阵 - 如果它还不是一个。这可以通过使用方括号转换标量或向量来完成。这将为标量提供 matrix=[1]
或为矢量提供 matrix=[{1,2,3,4}]
。使用 matrix=1
或 matrix={1,2,3,4}
会报错。
由于 post- 处理是可以接受的,因此有一些可用的选项:
Dymola 包含工具 alist
:
alist -e var1 [-e var2 ...] inputFile outputFile
export data for var... as comma-separated values, suitable
for importing into Microsoft Excel.
Options: -a write in ASCII format (default)
-b write in Matlab binary format
https://www.j-raedler.de/projects/DyMat/ 可用于读取结果文件并生成您喜欢的任何格式的文件(使用 Python)。
OpenModelica 有一个类似于 alist
的选项,如果您想要更少的数据点,它也可以重新采样信号 https://openmodelica.org/doc/OpenModelicaUsersGuide/v1.12.0/scripting_api.html#filtersimulationresults。