2

.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 の組み込み関数のように?

本当にありがとう!

4

2 に答える 2

3

https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/technical_details.html#the-matv4-result-file-formatでフォーマットについて説明しています。詳細については、Dymola のマニュアルを参照することもできると思います。

DyMat に関しては、時間の軌跡を取得する理由はありません。これは、通常、特定の時間に変数が持つ値を調べるためです。開始時間と停止時間は、私が覚えている限り、data_1 マトリックスにあります (通常は、data_2 マトリックスの最初の軌跡から取得します)。(data_2 マトリックスは補間される可能性があるため、そこに格納されている時間値は、ソルバーによって内部的に実行された実際のステップを反映していない可能性があります)

于 2019-12-10T07:15:42.407 に答える