1

我需要一种将模拟中的特定变量写入 .txt 或 .mat 的方法。

指某东西的用途:

Streams.print(Modelica.Math.Vector.toString(resultVector),"filename"); 

与在模拟选项卡上导出变量相比,导致错误的数据没有一致性。.txt 文件中的值完全不同,没有可见的模式。

4

2 回答 2

3

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=1ormatrix={1,2,3,4}会引发错误。

于 2018-10-02T16:57:27.867 回答
2

由于后处理是可以接受的,因此有一些可用选项:

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 有一个类似的选项,如果您想要更少的数据点https://openmodelica.org/doc/OpenModelicaUsersGuide/v1.12.0/scripting_api.html#filtersimulationresultsalist,也可以重新采样信号。

于 2018-10-05T05:33:25.090 回答