modelicaopenmodelicamat-filejmodelica

How to read .mat output files in JModelica?


To save the time, I'm trying to read the .mat file rather than simulate the model again.

I used scipy.io.loadmat but it didn't work well:

res = loadmat('ChatteringControl_result.mat')
res.keys()

['Aclass', 'dataInfo', 'name', 'data_2', 'data_1', 'description']

The keys are not variable names, and I don't know how to get the variable values.

Then I searched for resolutions, and found DyMat, it works well for other variables but cannot get time.

res1 = DyMat.DyMatFile('ChatteringControl_result.mat')
T = res1['T']
t = res1['time']

KeyError: 'time'

So, how can I get all the results in JModelica?(Without open Matlab of course.)Like, a built-in function in JModelica?

BIG THANKS!


Solution

  • To load the mat file using JModelica you can use this code:

    from pyfmi.common.io import ResultDymolaBinary
    
    res = ResultDymolaBinary("MyResult.mat")
    
    var = res.get_variable_data("myVar")
    
    var.t #Time trajectory
    var.x #Variable trajectory