【问题标题】:data processing of the .mat result from Dymola simulationDymola 模拟的 .mat 结果的数据处理
【发布时间】:2020-08-01 16:00:24
【问题描述】:

我正在尝试使用 Dymola 的 .mat 结果进行数据处理。我的计划是使用 MATLAB。我有几个关于 .mat 文件的问题:

  1. 如果我直接将.mat文件加载到MATLAB中,数据结构很奇怪,我必须使用Dymola自带的MATLAB脚本来加载.mat文件。是否有关于数据如何存储在 .mat 文件中的说明?
  2. 在绘制带有结果的图表时,我想更改单位,但我不确定如何让 Dymola 以我想要使用的单位输出数据。是否有任何设置可以让我在 Dymola 将数据输出到 .mat 文件时更改单位?

【问题讨论】:

    标签: matlab modelica dymola


    【解决方案1】:

    关于文件格式,请注意,有一个实用程序可以将 MAT 文件转换为简单的基于 HDF5 的格式,如果这样可以更轻松地进行后处理。 MATLAB 和 Python 都有脚本来读取这些文件(扩展 SDF)。

    【讨论】:

    • 将 Mat 文件转换为基于 HDF5 格式的实用程序的名称是什么?
    • dymola/bin/dsres2sdf.exe
    【解决方案2】:

    如果您生成文本结果文件(它也可能在文档中的某处),您可以获得结果文件的基本数据结构的解释,最相关的部分是:

     Matrix with 4 columns defining the data of the signals:
    
     dataInfo(i,1)=    j: name i data is stored in matrix "data_j".
                          (1,1)=0, means that name(1) is used as abscissa
                          for ALL data matrices!
    
     dataInfo(i,2)=    k: name i data is stored in column abs(k) of matrix
                          data_j with sign(k) used as sign.
    

    为了简化:最多有两个数据矩阵,所有数据矩阵的横坐标是“时间”。

    1. 您目前无法以特定单位直接输出 mat 文件。 但是,您可以使用特定单位输出 csv 文件。

    【讨论】:

    • 我找到了一个 Dymola 命令DataFiles.writeCSVmatrix,它允许我将数据写入.CSV 文件,但我google了它,只有一个简单的例子。 Dymola 中的每个命令都有详细的说明吗?
    • 我的意思是在 GUI 中导出结果,不幸的是还没有脚本支持。
    • 您当然可以创建一个 RealOutput 并在您的模型中手动进行任何合适的单位转换。
    • 在 Dymola 发行版中有一个名为 alist.exe 的小实用程序(不要问我为什么),它允许您使用 -e 选项从 Dymola 结果文件中提取 CSV 数据。请alist -h 寻求帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多