メインコンテンツ

Simulink.sdi.save

シミュレーション データ インスペクター セッションの保存

説明

Simulink.sdi.save(fileName) はすべての実行、信号および可視化設定をシミュレーション データ インスペクター セッションとしてファイル fileName に保存します。

セッション ファイルにはデータと可視化情報が含まれます。関数 Simulink.sdi.load を使用して、シミュレーション データ インスペクターでセッション ファイルを開きます。セッション ファイルが開くと、シミュレーション データ インスペクターで既存のデータにデータを追加するか、あるいは既存のデータを消去するかを選択できます。

Simulink.sdi.save 関数を使用してシミュレーション データ インスペクター セッションを保存すると、サムネイル プレビュー イメージが作成されないため、ユーザー インターフェイスから保存する場合に比べてファイル サイズが小さくなります。

その他の一連のデータに適用するために可視化情報のみを保存することもできます。ビュー ファイルで再利用するための可視化情報を関数 Simulink.sdi.saveView を使用して保存します。

Simulink.sdi.save(fileName,Name=Value) は、名前と値のペアで指定されたオプションに従って、実行、信号、および可視化の設定をセッション ファイルに保存します。 (R2024b 以降)

すべて折りたたむ

この例では、シミュレーション データ インスペクター セッションを作成、保存、および読み込みます。この例では、データをモデル slexAircraftExample に記録し、ログ データをシミュレーション データ インスペクター セッションで可視化します。シミュレーション データ インスペクターを使用するたびに、セッションを作成および変更します。関数 Simulink.sdi.save を使用して、セッションのデータおよび関連する可視化設定を MLDATX ファイルに保存できます。後でデータを確認する場合は、関数 Simulink.sdi.load を使用してセッションを読み込むことができます。

シミュレーション データ インスペクターへのデータのログ記録

この例では、モデル slexAircraftExample のシミュレーションのデータをシミュレーション データ インスペクターに記録します。モデルはデータを記録するように設定されていません。モデルを読み込み、Stick 信号、alpha, rad 信号、および q, rad/sec 信号をログ記録するようマークします。

load_system('slexAircraftExample')

Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot',1,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',3,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

この例では、モデルの 2 つのシミュレーションを実行します。最初のシミュレーションでは、Pilot ブロックからの正弦波出力を使用し、2 番目のシミュレーションでは矩形波出力を使用します。

set_param('slexAircraftExample/Pilot','WaveForm','sine')
sim('slexAircraftExample')
ans = 
  Simulink.SimulationOutput:

                logsout: [1x1 Simulink.SimulationData.Dataset] 
                   tout: [1235x1 double] 
                   xout: [1x1 Simulink.SimulationData.Dataset] 
                   yout: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

set_param('slexAircraftExample/Pilot','WaveForm','square')
sim('slexAircraftExample')
ans = 
  Simulink.SimulationOutput:

                logsout: [1x1 Simulink.SimulationData.Dataset] 
                   tout: [1381x1 double] 
                   xout: [1x1 Simulink.SimulationData.Dataset] 
                   yout: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

ログ データの可視化

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、シミュレーションのログ データにアクセスできます。シミュレーション データ インスペクターのプログラムによるインターフェイスを使用してデータにアクセスするときに、関数を使用してシミュレーション データ インスペクターでプロットを作成できます。

まず、最新の 2 つの実行の実行 ID にアクセスしてから、対応する Simulink.sdi.Run オブジェクトを取得します。Run オブジェクトを使用することで、シミュレーションのログ データにアクセスできます。

runIDs = Simulink.sdi.getAllRunIDs;
sineRunID = runIDs(end-1);
squareRunID = runIDs(end);

sineRun = Simulink.sdi.getRun(sineRunID);
squareRun = Simulink.sdi.getRun(squareRunID);

モデルの入力と出力間の関係を解析するとします。2 つのシミュレーション実行から入力信号と出力信号の Simulink.sdi.Signal オブジェクトを取得します。

sineOut = getSignalByIndex(sineRun,1);
sineIn = getSignalByIndex(sineRun,3);

squareOut = getSignalByIndex(squareRun,1);
squareIn = getSignalByIndex(squareRun,3);

シミュレーション データ インスペクターでのサブプロットのレイアウトを 21 列に変更し、最初のシミュレーション実行の信号を上部のプロットに、2 番目の実行の信号を下部のプロットにプロットします。

Simulink.sdi.setSubPlotLayout(2,1)

plotOnSubPlot(sineIn,1,1,true)
plotOnSubPlot(sineOut,1,1,true)

plotOnSubPlot(squareIn,2,1,true)
plotOnSubPlot(squareOut,2,1,true)

シミュレーション データ インスペクター セッションの保存

プロットされたデータをシミュレーション データ インスペクターで表示するには、コマンド ウィンドウに Simulink.sdi.view と入力します。

次に、シミュレーション データ インスペクター セッションを MLDATX ファイルとして保存します。

Simulink.sdi.save('myData.mldatx')

シミュレーション データ インスペクター セッションの読み込み

シナリオを再現して後で同じデータを参照するには、シミュレーション データ インスペクターからデータをクリアして、サブプロットのレイアウトを 11 列にリセットします。

Simulink.sdi.clear
Simulink.sdi.setSubPlotLayout(1,1)

セッション ファイルを読み込み、データの操作を再開します。シミュレーション データ インスペクターを開いて、関数 Simulink.sdi.view を使用して結果を表示することができます。

Simulink.sdi.load('myData.mldatx');

シミュレーション データ インスペクター セッションを MLDATX 2.0 ファイルに保存し、ファイル サイズを可能な限り小さくします。

Simulink.sdi.save("mySession.mldatx",Version="2.0",Compression="compact")

入力引数

すべて折りたたむ

セッション ファイルの名前。

例: 'myData.mldatx'

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: Simulink.sdi.save("mySession.mldatx",Version="1.0",Compression="none")

R2024b 以降

セッション ファイルのバージョン。"2.0" または "1.0" として指定します。

例: Simulink.sdi.save(mySession.mldatx,Version="2.0")

R2024b 以降

圧縮オプション。次のオプションのいずれかとして指定します。

  • "fastest" — 保存速度は圧縮しないファイルと同等で、ファイル サイズはそれよりも小さい

  • "balanced" — ファイル サイズと保存速度のバランスが図られる

  • "compact" — ファイル サイズは最も小さく、保存速度は最も遅い

  • "none" — ファイル サイズは最も大きく、保存速度は最も速い

セッション ファイルを version 2.0 で保存するときの既定の圧縮オプションは "fastest" です。セッション ファイルを version 1.0 で保存するときの既定の圧縮オプションは "none" です。

例: Simulink.sdi.save(mySession.mldatx,Compression="balanced")

バージョン履歴

R2011b で導入

すべて展開する