Main Content

永続ストレージへのデータの記録

永続ストレージに記録する場合

場合によっては、シミュレーション データのログ記録により、コンピューターを効率的に実行していても、作業メモリの保持には大きすぎる、大量のデータが作成される可能性があります。このような状況は、多数の信号を記録するシミュレーション、多数のタイム ステップで長時間実行されるシミュレーション、並列シミュレーションなどで起こる可能性があります。シミュレーション コンフィギュレーションによって大量のデータが作成される場合、そのデータを作業メモリに記録するのではなく、永続ストレージに記録できます。

ログに記録されたシミュレーション データを MAT ファイルの永続ストレージに保存できます。永続ストレージへのログ記録はモデル レベルで制御できます。1 つのモデル コンフィギュレーション パラメーター ([データセットのデータをファイルにログ]) を変更することで、モデルのレイアウトを変えずにこの機能を有効または無効にできます。

ログ記録に [データセット] 形式を使用する場合、次のような各種のデータを永続ストレージに記録できます。

  • 信号ログ — Dataset 形式のみを使用します。

  • 状態 — 既定の設定は Dataset 形式です。その他の形式を使用できます。

  • 最終状態 — [最終の操作点を保存] パラメーターをオフにしなければなりません。

  • 出力 — 既定の設定は Dataset 形式です。

  • データ ストア — Dataset 形式のみを使用します。

既定では、永続ストレージへのログ記録は無効になっているため、ログ データは MATLAB® ワークスペースに保存されます。ログ ファイルの読み込みと保存を回避できるため、ほとんどのモデルでは、ワークスペースにログ記録する方法がより簡単です。永続ストレージに記録されたデータにアクセスするには、メモリに記録されたデータへのアクセスと比較して、いくつかの追加ステップが必要になります。シミュレーション時間が短い場合、MATLAB ワークスペースへのログ記録時間が短縮され、永続ストレージに記録するよりも使用メモリ量を削減できる可能性があります。

永続ストレージへのログ記録の制限事項

  • Dataset 形式で記録されたデータのみが MAT ファイルに保存されます。その他の形式で記録されたデータは MATLAB ワークスペースに保存されます。

  • 最終状態データのログ記録に永続ストレージを使用する場合、[コンフィギュレーション パラメーター][データのインポート/エクスポート] + [最終の操作点を保存] を有効にすることはできません。

  • シミュレーション ステッパーと高速リスタートは永続ストレージへのログ記録をサポートしていません。

  • シミュレーション中に、永続ストレージ ファイルのデータを直接モデルに記録することはできません。ファイル内のデータを参照するオブジェクトを作成してから、参照オブジェクトを読み込みます。

ログ記録のメモリ使用量を削減する代替方法

大量のデータを作成するモデルのシミュレーションが必要で、シミュレーション データを永続ストレージに記録しない場合は、次のいずれかの代替方法を検討してください。

  • ワークスペースに保存するシミュレーション データの量を制限する。

    ワークスペースに保存するシミュレーション データの量を制限する場合、次の 1 つ以上の手法を使用できます。詳細については、ログに記録する信号値の指定を参照してください。

    手法説明
    間引き係数を指定するデータのエクスポート時にサンプルをスキップします。
    データ点を制限する保存するサンプルの数を最新のサンプルのみに制限します。
    ログ間隔を設定するログのタイム ステップの範囲を指定します。

    ワークスペースに格納されるシミュレーション データの量を制限すると、モデルのテストと解析に不可欠な一部のタイム ステップがログ データに含まれない可能性があります。

  • 記録する各信号に To File ブロックを使用する。

    記録する信号に To File ブロックを接続すると、ログ データは MATLAB ワークスペースではなく、MAT ファイルに保存されます。ただし、この方法には次の特徴があります。

    • 信号ごとのアプローチであり、複数の To File ブロックが個別の信号に付加されている場合、モデルが乱雑になる可能性があります。

    • To File ブロックに対して、永続ストレージに記録すると作成される単一ファイルの代わりに、個別の MAT ファイルを作成します。

永続ストレージへのログ記録

  1. 実行するログ記録の種類 (信号のログや出力のログなど) とログ データの変数名を指定します。

  2. モデル ブロック線図で、選択した信号を信号ログ用にマークします。

  3. データのログ記録に Dataset 形式を使用します。それ以外の形式でログ記録されるデータはワークスペースに保存されます。

    • 信号ログとデータ ストア ログは Dataset 形式のみを使用します。ログに記録された出力、状態、最終状態の既定の形式は Dataset です。

    • 最終状態のログ記録で、[最終の操作点を保存] コンフィギュレーション パラメーターをオフにします。

  4. 永続ストレージへのログ記録を有効にし、出力 MAT ファイル名を指定します。

    • [データセットのデータをファイルにログ] コンフィギュレーション パラメーターを選択します。

    • 使用する MAT ファイルを指定します。別のロケールにあるロケールのファイル名を使用しないでください。

  5. 記録された Dataset データに timeseries 要素または timetable 要素を使用して保存するには、[データセットの信号形式] コンフィギュレーション パラメーターを設定します。既定の形式は timeseries です。timetable 形式は、複数のシミュレーションでログ記録されたデータと MATLAB を組み合わせて使用するのに役立ちます。timetable 形式の詳細については、データセットの信号形式を参照してください。

  6. モデルのシミュレーションを実行します。

永続ストレージへのプログラムによるログ記録の有効化

プログラムを使用して永続ストレージに記録できます。永続ストレージへのログ記録を有効にするには、LoggingToFileLoggingFileName の名前と値のペアを、sim コマンドまたは set_param コマンドのいずれかと共に使用します。

使用するログ記録手法を有効にするには、状況に応じて以下のパラメーターを 'on' に設定します。

  • SignalLogging

  • SaveState

  • SaveFinalState

  • SaveOutput

  • DSMLogging

出力、状態、最終状態のデータを永続ストレージに記録するには、SaveFormat パラメーターを 'Dataset' に設定します。

最終状態データを永続ストレージに記録するには、SaveOperatingPoint'off' に設定します。

シミュレーション データの保存方法

永続ストレージにログ記録すると、ログ記録されたシミュレーション データは指定された MAT ファイルに保存されます。データは、Dataset 形式を使用する各ログ タイプの Simulink.SimulationData.Dataset オブジェクトとして保存されます。Dataset 要素は、[データセットの信号形式] パラメーターの設定に応じて、timeseries オブジェクトまたは timetable オブジェクトのいずれかとして保存されます。[timetable] 形式の詳細については、データセットの信号形式を参照してください。

ファイルの Dataset オブジェクト名はログ記録に使用した変数の名前です。たとえば、既定の信号のログ変数 logsout を使用すると、MAT ファイルの Dataset オブジェクトは logsout になります。

連続シミュレーションからのログ データの保存

連続シミュレーションから記録されたデータの保存に使用する方法は、並列シミュレーションを実行するかどうかによって異なります。

並列シミュレーションを使用しない

並列シミュレーションを使用せずにモデルをシミュレートするたびに、シミュレーション後にファイル名を変更しない限り、Simulink® は MAT ファイルのコンテンツを上書きします。MAT ファイルでデータを参照する Simulink.SimulationData.DatasetRef オブジェクトを使用してファイルのデータを取得する場合、最新バージョンのデータが取得されます。以前のシミュレーションのデータを保存する場合、以下のいずれかの手法を使用します。

  • シミュレーションごとに [コンフィギュレーション パラメーター][データのインポート/エクスポート] ペインを使用して、ログ記録用の MAT ファイルに異なる名前を指定する。

  • シミュレーションごとに、MAT ファイルのコピーを保存する。永続ストレージ用の MAT ファイルとして指定した名前とは異なるファイル名を使用するか、MAT ファイルを移動する。

  • 各シミュレーションを実行するたびに新しいファイル名をプログラムで指定する。

時間がオーバーラップする複数のシミュレーションを実行する場合、永続ストレージにログを記録するモデルごとに一意の MAT ファイルを使用します。

永続ストレージへのログ記録に使用されるファイル名を変更した場合、ログ記録されたデータにアクセスするには、以下のいずれかの手法を使用します。

  • Simulink.SimulationData.DatasetRef オブジェクトを作成する。

  • 新しいファイル名に一致させるには、DatasetRef オブジェクトの Location プロパティを変更する。

DatasetRef オブジェクトを使用してログ データにアクセスする方法の詳細については、シミュレーションのためのビッグ データの読み込みを参照してください。

並列シミュレーションの使用

入力オブジェクトの配列を指定する並列シミュレーションでは、ファイルにログ記録した場合、Simulink は次を行います。

  • シミュレーションごとに MAT ファイルを作成する

  • MAT ファイル内の出力データにアクセスする Simulink.SimulationData.DatasetRef オブジェクトを作成し、SimulationOutput オブジェクト データにそれらのオブジェクトを含める

  • シミュレーション用に CaptureErrors 引数を有効にする

並列シミュレーションの詳細については、Running Multiple Simulationsを参照してください。

参考

関数

モデル設定

関連するトピック