最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

From File ブロックを使用したデータの読み込み

From File ブロックを使用して信号データをモデルに読み込むには、次のようにします。

  1. 読み込む信号データを含む MAT ファイルを作成します。From File ブロックのデータの作成を参照してください。

  2. From File ブロックをモデルに追加します。From File ブロックを From File が入力を提供するブロックに接続します。

  3. From File ブロックをダブルクリックし、次を指定します。

    • データを読み込むファイルのパス

    • From File ブロックの出力のデータ形式

    • サンプル時間、欠損データ点のデータの処理方法、ゼロクロッシング検出を使用するかどうかを含む、データの読み込み方法

データの読み込み

Version 7.0 以前の MAT ファイルの場合、シミュレーション開始時に From File ブロックによって、非圧縮データが完全にファイルからメモリに読み込まれます。Version 7.3 の MAT ファイルの場合、From File ブロックはシミュレーション中にファイルからデータを段階的に読み込みます。

一致するタイムスタンプが MAT ファイルに含まれないシミュレーション時間ヒットごとに Simulink® によって内挿または外挿が行われ、必要なデータが得られます。内挿法および外挿法を指定してください。

シミュレーション中は、To File ブロックがデータをエクスポートしている MAT ファイルから、From File ブロックがデータを読み込むことはできません。

サンプル時間

From File ブロックの [サンプル時間] パラメーターは、MAT ファイルからデータを読み込むためのサンプル時間を指定します。ファイル内のタイムスタンプは単調非減少でなければなりません。詳細については、From File ブロックのドキュメンテーションを参照してください。

対応する時間データがないシミュレーション時間ヒット

シミュレーション時間ヒットに対応する MAT ファイルのタイムスタンプがない場合、From File ブロックの出力は次の条件によって異なります。

  • シミュレーション時間ヒットが最初のタイムスタンプより前、タイムスタンプの範囲の間、最後のタイムスタンプより後のいずれで発生したか

  • 選択した内挿法または外挿法

  • MAT ファイル データのデータ型

内挿と外挿オプションの詳細については、以下の From File ブロック パラメーターのドキュメンテーションを参照してください。

  • 最初のデータ点前のデータ外挿

  • 時間範囲内のデータ内挿

  • 最後のデータ点後のデータ外挿

重複するタイムスタンプ

MAT ファイルに重複するタイムスタンプが含まれている場合があります (同じタイムスタンプをもつ 2 つ以上のデータ値)。そのような場合、From File ブロックのアクションは MAT ファイルの重複するタイム スタンプに対するシミュレーション時間ヒットのタイミングで決まります。

たとえば、MAT ファイルに次のデータが含まれており、3 つのデータ値のタイムスタンプの値が 2 であるとします。

time stamps:    0 1 2 2 2 3 4
data values:    2 3 6 4 9 1 5

次の表で、From File ブロックの出力を説明します。

シミュレーション時間、MAT ファイル内の重複するタイムスタンプ値との位置関係From File ブロックのアクション
重複するタイムスタンプの前

重複するタイムスタンプ値の最初の値を内挿の基準として使用します (この例ではそのタイムスタンプ値は 6 です)。

重複するタイムスタンプと同じ位置かその後

重複するタイムスタンプ値の最後の値を内挿の基準として使用します (この例ではそのタイムスタンプ値は 9 です)。

ゼロクロッシングの検出

ゼロクロッシング検出は、過度に小さいタイム ステップを取ることなく、タイムスタンプの不連続点を特定します。既定では From File ブロックのゼロクロッシング検出は有効ではありません。

From File ブロックについては、ゼロクロッシング検出はファイル内のタイムスタンプでのみ発生します。Simulink はデータ値ではなく、タイムスタンプのみを確認します。

バス信号の場合、Simulink はすべてのリーフ バス要素にわたるゼロクロッシングを検出します。

詳細については、From File ブロックのドキュメンテーションの [ゼロクロッシング検出を有効にする] パラメーターを参照してください。

From File ブロックのデータの作成

NaN 値はサポートされない

From File ブロックに読み込む MAT ファイルには、NaN 値を含めないでください。

To File ブロックによって保存されたデータ

From File ブロックは、To File ブロックによって書き込まれたデータを変更や特別な準備なしで読み込みます。

サポートされている MAT ファイルのバージョン

サポートされている MAT ファイルのバージョンは以下のとおりです。

  • Version 7.0 以前

  • Version 7.3

Version 7.0 以前の MAT ファイルの場合、シミュレーションの開始時に From File ブロックは非圧縮データを完全にファイルからメモリに読み込みます。Version 7.3 の MAT ファイルの場合、From File ブロックはシミュレーション中にファイルからデータを段階的に読み込みます。

MAT ファイルについての詳細は、MAT ファイルのバージョンを参照してください。

Version 7.0 以前の MAT ファイルの変換-  From File ブロックで使用する MAT ファイルのバージョンが Version 7.0 以前の場合、ファイルを Version 7.3 に変換することを検討してください。シミュレーション中に From File ブロックにデータを段階的に読み込むか、MATLAB® timeseries データを使用するには、Version 7.3 の MAT ファイルを使用してください。たとえば、変数 var を含んでいる my_data_file.mat という名前の Version 7.0 ファイルを変換するには、MATLAB コマンド プロンプトで次のように入力します。

load('my_data_file.mat')
save('my_data_file.mat', 'var', '-v7.3')

格納形式

From File ブロックが MAT ファイルのデータを読み込む場合、そのデータは配列形式で保存されるか、MATLAB timeseries オブジェクトとして保存されなければなりません。

配列データ-  ベクトル、double、非複素数の信号データに対してのみ、配列形式を使用できます。

Version 7.0 の MAT ファイルの場合、From File ブロックは配列データを読み込みますが、MATLAB timeseries データは読み込みません。

格納されたデータの配列の形式は、行数が 2 行以上の行列です。MAT ファイル内の行列は、次のような形式でなければなりません。

[t1t2tfinalu11u12u1finalun1un2unfinal]

各列の最初の要素には、タイムスタンプが含まれます。各列の残りには、対応する出力値のデータが含まれます。各要素は double でなければなりません。要素に NaNInf-Inf を含めることはできません。

MATLAB 時系列データ-  From File ブロックでバス データを使用するには、MATLAB timeseries 形式を使用します。

MATLAB timeseries 形式のデータは、次の値をもつことができます。

  • 任意の次元および実数/複素数

  • Boolean などの任意の組み込みデータ型

  • 最大 32 ビットの語長をもつ固定小数点データ型

  • 列挙データ型

配列形式を使用して格納されたデータの場合、From File 出力の幅は、行列の行数で決まります。ある行列の行数が m である場合、ブロックは長さが m–1 のベクトルを出力します。

MATLAB の timeseries 形式は、以下のシミュレーション モードとコード生成モードをサポートします。

  • ノーマル

  • アクセラレータ

  • ラピッド アクセラレータ

  • モデル参照アクセラレータ

From Workspace ブロックを使用した MATLAB timeseries データの読み込みで MAT ファイルを作成する例については、From File ブロックのドキュメンテーションを参照してください。

タイムスタンプ

ファイル内のタイムスタンプは単調非減少でなければなりません。

バス データ

From File ブロックは、非バーチャル バス信号の読み込みをサポートします。

データは、バス階層に一致する MATLAB 構造体内になければなりません。構造体の各リーフは MATLAB timeseries オブジェクトでなければなりません。

構造体はバス信号を指定不足にすることはできますが、バス信号を過剰指定にしてはなりません。構造体は、バス内に対応する信号がない要素をもつことはできません。

構造体では、バス階層のすべての要素に timeseries オブジェクトが必要なわけではありません。ただし、バス内の少なくとも 1 つの信号に対応する timeseries オブジェクトがなければなりません。データを指定しない信号に対して、From File ブロックはグラウンド値を出力します。

MAT ファイルの変数

MAT ファイルに変数が 1 つだけ格納されている場合、From File ブロックではその変数が使用されます。MAT ファイルに変数が 1 つを超えて格納されている場合は次のようになります。

  • Version 7.3 の MAT ファイルの場合、From File ブロックではアルファベット順の最初の変数が使用されます。

  • Version 7.0 以前の MAT ファイルの場合、From File ブロックでは最初の変数が使用されます。ただし、これらのバージョンでは、変数の並べ替えアルゴリズムが複雑です。From File ブロックで読み込むデータの変数だけを格納した MAT ファイルを使用してください。

参考

ブロック

関連するトピック