1

(この質問は私が投稿した以前の質問に似ていますが、状況は変わりました...)

Dymola/Simulink インターフェイス用の Modelon FMI ツールボックスを使用して、Model-Exchange タイプの fmu ファイル (バージョン 1.0) を Simulink モデルにインポートしています。モデルをプログラムで順次シミュレートし、次のシミュレーションでの初期化のためにモデルの最終的な内部状態を保存する Matlab m ファイルがあります。

m ファイルのシミュレーション呼び出しは次のとおりです。

simOut_itr = sim(model, model_cs);

ここで、「model」は Simulink .slx モデル ファイルで、「model_cs」は Simulink 構成設定変数です。モデルがワークスペースから初期状態を読み込むように構成を設定し、以前の反復の最終状態をそのワークスペース変数に保存しました。

しかし、コードを実行すると、初期化値がモデルに設定されず、シミュレーションの結果は、シミュレーションが実行されるたびにモデル出力が初期値にリセットされることを示しています。この動作は、状態がワークスペース変数の値を使用して初期化されていないことを示していますが、シミュレーション中にエラーは設定されていません。イテレーションごとにモデルをロードおよびアンロードしても効果がないことを確認しました。

Matlab/Simulink の fmu ファイルのシステム状態の初期化に関する提案は大歓迎です。ありがとうございました。

4

2 に答える 2

0

fmuSetValueSimulink() は使用する関数です。これは、状態変数のパラメーター値と開始値の両方を設定するために使用されます。関数のヘルプ セクションは非常に有益なので、ここでは詳しく説明しません。

于 2013-05-07T08:12:50.100 に答える
0

Simulink の FMI ツールボックス ブロックは、モデル (sim) の呼び出しから初期化値を設定するのではなく、FMI ツールボックスに固有の別の関数セットから設定します。FMI ツールボックスのマニュアルに詳細があります。

于 2013-05-02T23:44:51.907 に答える