为了节省时间,我尝试读取.mat文件,而不是再次模拟模型。

我使用了scipy.io.loadmat,但效果不佳:

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

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

键不是变量名,并且我不知道如何获取变量值。

然后,我搜索了分辨率,并发现DyMat可以很好地用于其他变量,但无法获得time
res1 = DyMat.DyMatFile('ChatteringControl_result.mat')
T = res1['T']
t = res1['time']

KeyError: 'time'

那么,如何在JModelica中获得所有结果?(当然不打开Matlab。)就像JModelica中的内置函数一样?

非常感谢!

最佳答案

要使用JModelica加载mat文件,可以使用以下代码:

from pyfmi.common.io import ResultDymolaBinary

res = ResultDymolaBinary("MyResult.mat")

var = res.get_variable_data("myVar")

var.t #Time trajectory
var.x #Variable trajectory

关于modelica - 如何在JModelica中读取.mat输出文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59253157/

10-11 12:11