Search code examples
matlabmodelicadymola

data processing of the .mat result from Dymola simulation


I am trying to do data processing with the .mat result from Dymola. My plan is to use MATLAB. I got a few questions about the .mat file:

  1. If I load the .mat file into MATLAB directly, the data structure is very strange, I have to use the MATLAB scripts shipped with Dymola to load the .mat file. Is there an explanation about how the data is stored in the .mat file?
  2. when plotting the diagram with the result, I wanna change the unit, but I am not sure how to make Dymola output the data with the unit I want to use. Is there any setting that allows me to change the unit when Dymola output data into the .mat file?

Solution

    You can get an explanation for the basic data-structure of the result file if you generate a textual result file (it might also be somewhere in the documentation), and the most relevant part is:

     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.
    

    And to simplify things: there are at most two data-matrices, and the abscissa used for ALL data matrices is "Time".

    1. You cannot currently directly output mat-files in specific units. However, you can output csv-files using specific units.