ドキュメンテーション

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

From File

MAT ファイルからのデータの読み込み

ライブラリ

Sources

説明

From File ブロックは、MAT ファイルからモデルへデータを読み込み、データを信号として出力します。このデータは、一連のサンプルです。各サンプルは、タイム スタンプと関連するデータ値で構成されています。データは配列形式または MATLAB® timeseries 形式で表されます。

From File ブロックのアイコンには、データをブロックに提供する MAT ファイルの名前が表示されます。

同じ 1 つの MAT ファイルからデータを読み込む From File ブロックが複数あってもかまいません。

サポートされる MAT ファイルのバージョンは Version 7.0 以前および Version 7.3 です。From File ブロックは Version 7.3 ファイルからデータをインクリメンタルに読み込みます。

データの読み込み方法として以下を指定できます。

  • サンプル時間

  • 欠損データ点のデータの処理方法

  • ゼロクロッシング検出を使用するかどうか

詳細については、「From File ブロックを使用したデータの読み込み」を参照してください。

コード生成に関する要件

From File ブロックの場合、ERT/GRT ターゲットのビルドまたは SIL/PIL シミュレーション モードの使用を含むコード生成を行うには、以下の要件を満たす必要があります。

  • MAT ファイルに、2 行以上の空でない有限実数行列が含まれている。

    • 行列に double のデータ型を使用する。

    • 行列に NaN、Inf または -Inf 要素は含めない。

  • From File ブロックのパラメーター ダイアログ ボックスで、以下の設定を行います。

    • [最初のデータ点前のデータ外挿] および [最後のデータ点後のデータ外挿] パラメーターを [線形外挿] に設定します。

    • [時間範囲内のデータ内挿] パラメーターを [線形内挿] に設定します。

    • [ゼロクロッシング検出を有効にする] パラメーターをオフにします。

サポートするデータ型

MATLAB timeseries データの場合、From File ブロックは Simulink® がサポートする任意のデータ型の実数信号データまたは複素数信号データを読み込みます。固定小数点データの語長は最大 32 ビットになります。From File ブロックは、timeseries 形式での非バーチャル バス信号の読み込みをサポートします。

配列データの場合、From File ブロックは、double の信号データのみを読み取ることができます。

詳細については、「From File ブロックのデータの作成」を参照してください。

パラメーターとダイアログ ボックス

ファイル名

入力データを含んでいる MAT ファイルのパスまたはファイル名。パスまたはファイル名は次のいずれかの方法で指定できます。

  • 有効な MAT ファイルがあるフォルダーを参照します。

    UNIX® システムでは、ホーム フォルダーを意味するチルダ (~) 文字でパス名を始めることができます。

  • テキスト ボックスにファイルのパスを入力します。

既定のファイル名は untitled.mat です。ファイル名でパスの情報が指定されない場合、Simulink は現在のフォルダーまたは MATLAB パスにあるファイルを読み込みます (現在のフォルダーを確認するには、MATLAB コマンド プロンプトで pwd と入力します)。

[信号のプレビュー] ウィンドウでデータをプレビューするには、[表示] ボタン をクリックします。

[信号のプレビュー] ウィンドウを使用してデータをプロットおよび検証します。

  1. 信号をプロットするには、信号の横にあるチェック ボックスをオンにします。バス形式の場合は、展開記号 ( ) をクリックするとバスの要素が表示されるのでそこから選択できます。

  2. ツールストリップの [測定] セクションと [ズームとパン] セクションを使用してプロットを調べます。

    • [測定] セクションでは、[データ カーソル] ボタンを使用してプロットのカーソルを 1 つまたは 2 つ表示できます。これらのカーソルにプロットのデータ点の T 値と Y 値が表示されます。データ点を表示するには、ライン上の点をクリックします。

    • [ズームとパン] セクションでは、信号のプロットをズームおよび移動する方法を選択できます。ズームは選択した軸についてのみ適用されます。

      ズーム操作ボタン

      時間軸とデータ値軸に沿ってズームインします。

      時間軸に沿ってズーム インします。ボタンをクリックします。グラフ上でカーソルをドラッグして拡大する領域を選択します。

      データ値軸に沿ってズーム インします。ボタンをクリックします。グラフ上でカーソルをドラッグして拡大する領域を選択します。

      グラフからズーム アウトします。

      プロットをグラフ全体に表示します。ボタンをクリックします。グラフをクリックすると、プロットがグラフ全体に拡大されます。

      グラフの視点を上下左右に移動します。ボタンをクリックします。グラフで、表示するグラフの領域にカーソルをドラッグします。

コマンド ライン情報

パラメーター: FileName
タイプ: 文字列
既定の設定: 'untitled.mat'

出力データ型

From File ブロックが出力するデータのデータ型。非バス型の場合、[Inherit: auto] を使用して任意のデータ型検証をスキップできます。出力データ型を指定する場合、From File ブロックはファイル内のデータが指定したデータ型と一致することを確認します。詳細は、「信号のデータ型の制御」を参照してください。

  • Inherit: auto — 既定の設定

  • double

  • single

  • int8

  • uint8

  • int16

  • uint16

  • int32

  • uint32

  • boolean

  • fixdt(1,16,0) — データ型は固定小数点 (1,16,0) です。

  • fixdt(1,16,2^0,0) — データ型は固定小数点 (1,16,2^0,0) です。

  • Enum: <class_name> — データ型は列挙型です。

  • Bus: <bus_object> — データ型はバス オブジェクトです。詳細は、「バス データの使用」を参照してください。

  • <data type expression>Simulink.NumericType などのデータ型オブジェクトの名前。バス オブジェクトを式として指定しないでください。

[出力データ型] をバス オブジェクトとして設定した場合、そのバス オブジェクトはモデルのコンパイル時に利用可能でなければなりません。バス データの信号ごとに、From File ブロックは、データ型、次元および実数/複素数がデータおよびバス オブジェクトと同じであるか検証します。

>> (データ型アシスタントを表示)

[データ型アシスタント] を表示すると、[出力データ型] パラメーターを設定しやすくなります。

モード

指定するデータのカテゴリ。詳細は、「信号のデータ型の制御」を参照してください。

  • 継承 — データ型の規則の継承。[継承] を選択すると、2 番目のメニューとテキスト ボックスが有効になります (既定)

  • 組み込み — 組み込みデータ型を指定します。[組み込み] を選択すると、2 番目のメニューとテキスト ボックスが有効になります。次の選択肢からいずれかを選択します。

    • double — 既定値

    • single

    • int8

    • uint8

    • int16

    • uint16

    • int32

    • uint32

    • boolean

    • 固定小数点 — 固定小数点データ型

    • 列挙型 — 列挙型のデータ型。列挙型 を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になります。そこにクラス名を入力することができます。

    • バス — バス オブジェクト。[バス オブジェクト] パラメーターを有効にします。このパラメーターでは、バスの構造を定義するバス オブジェクトの名前を入力します。バス オブジェクトを作成または変更する場合は、[編集] をクリックして Simulink バス エディターを開きます。詳細は、「バス エディターによるバス オブジェクトの管理」を参照してください。

    • — データ型に評価する式。[式] を選択すると、右側から 2 番目のメニューとテキスト ボックスが有効になります。そこに式を入力します。バス オブジェクトを式として指定しないでください。

サンプル時間

サンプリング周期とオフセット。

From File ブロックは、次のいずれかのサンプル時間を使用して MAT ファイルからデータを読み込みます。

  • From File ブロックに対して指定したサンプル時間。

  • From File ブロックがデータのフィード先のブロックから継承したサンプル時間。

既定のサンプル時間は 0 で、これは連続サンプル時間の指定となります。MAT ファイルはモデルの基本レート (最速) で読み込まれます。詳細は、「サンプル時間の指定」を参照してください。

コマンド ライン情報

パラメーター: SampleTime
タイプ: 文字列
既定の設定: '0'

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

MAT ファイルの初期のタイム スタンプの前に発生するシミュレーション時間ヒットの外挿法。次の外挿法のいずれかを選択します。

メソッド説明
線形外挿

(既定)

MAT ファイルに 1 つのサンプルしか含まれていない場合は、From File ブロックは対応するデータ値を出力します。

MAT ファイルに 1 つを超えるサンプルが含まれている場合は、From File ブロックは最初の 2 つのサンプルを使用して線形外挿します。

  • double データの場合、最初の 2 つのサンプルを使用して値を線形外挿します

  • Boolean データの場合、最初のデータ値を出力します

  • double または Boolean 以外の組み込みデータ型の場合、From File ブロックは以下のようにします。

    • データを double にアップキャストする

    • 線形外挿を実行する (double データの説明を参照)

    • 外挿データ値を元のデータ型にダウンキャストする

列挙型 (enum) データでは、[線形外挿] オプションは使用できません。バス内のすべての信号は同じ外挿設定を使用します。バス内のすべての信号は enum データを使用しているため、[線形外挿] オプションを使用できません。

最初の値をホールド

ファイル内の最初のデータ値を使用します

Ground の値

MAT ファイルのサンプル データ値のデータ型によって異なる値を使用します。

  • 固定小数点データ型 — グラウンド値を使用します

  • 固定小数点以外の数値型 — 0 を使用します。

  • Boolean — は、以下を使用します。 false

  • 列挙型データ — 既定値を使用します

コマンド ライン情報

パラメーター: ExtrapolationBeforeFirstDataPoint
タイプ: 文字列
値: 'Linear extrapolation' | 'Hold first value' | 'Ground value'
既定の設定: 'Linear extrapolation'

時間範囲内のデータ内挿

Simulink が MAT ファイルの 2 つのタイム スタンプ間のシミュレーション時間ヒットに使用する内挿法。次の内挿法のいずれかを選択します。

メソッド説明
線形内挿

(既定)

From File ブロックは次の 2 つの MAT ファイル サンプルを使用して内挿を行います。

  • double データの場合、2 つの対応するサンプルを使用して値を線形内挿します

  • Boolean データの場合、最初の半分のサンプルに false を使用し、残りの半分に true を使用します

  • double または Boolean 以外の組み込みデータ型の場合、From File ブロックは以下のようにします。

    • データを double にアップキャストする

    • double データの説明に従って線形内挿を実行する

    • 内挿値を元のデータ型にダウンキャストする

列挙型 (enum) データでは、[線形内挿] オプションは使用できません。バス内のすべての信号は同じ内挿設定を使用します。バス内のいずれかの信号が enum データを使用する場合は、[線形内挿] オプションを使用できません。

ゼロ次ホールド

2 つのサンプルのうち最初のサンプルのデータを使用します

コマンド ライン情報

パラメーター: InterpolationWithinTimeRange
タイプ: 文字列
'Linear interpolation' | 'Zero order hold'
既定の設定: 'Linear interpolation'

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

MAT ファイルの最後のタイム スタンプ後に発生するシミュレーション時間ヒットの外挿法。次の外挿法のいずれかを選択します。

メソッド説明
線形外挿

(既定)

MAT ファイルに 1 つのサンプルしか含まれていない場合は、From File ブロックは対応するデータ値を出力します。

MAT ファイルに 1 つを超えるサンプルが含まれている場合は、From File ブロックは最後の 2 つのサンプルのデータ値を使用して線形外挿します。

  • double データの場合、最後の 2 つのサンプルを使用して値を外挿する。

  • Boolean データの場合、最初のデータ値を出力する。

  • double または Boolean 以外の組み込みデータ型の場合:

    • データを double にアップキャストする

    • double データの説明に従って線形外挿を実行する

    • 外挿値を元のデータ型にダウンキャストする

列挙型 (enum) データでは、[線形外挿] オプションは使用できません。バス内のすべての信号は同じ外挿設定を使用します。バス内のすべての信号は enum データを使用しているため、[線形外挿] オプションを使用できません。

最後の値をホールド

ファイル内の最後のデータ値を使用します

Ground の値

MAT ファイルのサンプル データ値のデータ型によって異なる値を使用します。

  • 固定小数点データ型 — グラウンド値を使用します

  • 固定小数点以外の数値型 — 0 を使用します。

  • Boolean — は、以下を使用します。 false

  • 列挙型データ — 既定値を使用します

コマンド ライン情報

パラメーター: ExtrapolationAfterLastDataPoint
タイプ: 文字列
'Linear extrapolation' | 'Hold last value' | 'Ground value'
既定の設定: 'Linear extrapolation'

ゼロクロッシング検出を有効にする

ゼロクロッシング検出を有効にします。

「ゼロクロッシング検出」パラメーターは、サンプル時間 パラメーターが 0 (連続) に設定されている場合のみ適用されます。

Simulink はゼロクロッシング検出という技法を使用することで、小さいタイム ステップを過度に取ることなくタイム スタンプの不連続を特定します。"ゼロクロッシング" は不連続を表します。

From File ブロックの場合、ゼロクロッシング検出はファイル内のタイム スタンプのみで発生します。Simulink はタイム スタンプのみを調べ、データ値は調べません。

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

入力配列に重複するタイム スタンプが含まれている (同一のタイム スタンプのエントリが 1 つを超える) 場合、Simulink はそれらのタイム スタンプのゼロクロッシングを検出します。たとえば、入力配列に次のようなデータがあるとします。

time:     0 1 2 2 3
signal:   2 3 4 5 6

時間 2 で、入力信号の不連続からゼロクロッシングがあります。

重複しないタイム スタンプがある場合、ゼロクロッシング検出は次のパラメーターの設定によって変わります。

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

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

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

ゼロクロッシングが発生するするかどうかの From File ブロックの判定は、タイム スタンプに応じて変わります。

タイム スタンプ設定

1 次

[最初のデータ点前のデータ外挿][Ground の値] に設定されます。

最初と最後の間

[時間範囲内のデータ内挿][ゼロ次ホールド] に設定されます。

最後

次の設定の両方またはどちらかが発生します。

  • [最後のデータ点後のデータ外挿][Ground の値] に設定されます。

  • [時間範囲内のデータ内挿][ゼロ次ホールド] に設定されます。

次の図は、次の設定になっている From File ブロックによってアクセスされるデータのゼロクロッシング検出を示しています。

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

  • 時間範囲内のデータ内挿 (内部点の場合) — ゼロ次ホールド

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

次の図は、From File ブロックによってアクセスされるデータのゼロクロッシング検出の別の例を示します。ブロックには、タイム スタンプ (点) 用の次の設定があります。

  • 最初のデータ点前のデータ外挿最初の値をホールド

  • 時間範囲内のデータ内挿ゼロ次ホールド

  • 最後のデータ点後のデータ外挿最後の値をホールド

時系列データを読み込む From File ブロック

時間値と信号値を使用して MATLAB timeseries オブジェクトを作成します。timeseries オブジェクトを MAT ファイルに保存し、From File ブロックを使用してモデルに読み込みます。

10 のタイム ステップの時間データと信号データを含む配列を作成します。

t = .1*(1:10);
d = .2*(1:10);
x = [t;d];
x =

    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000    1.0000
    0.2000    0.4000    0.6000    0.8000    1.0000    1.2000    1.4000    1.6000    1.8000    2.0000

MATLABtimeseries オブジェクトを作成します。

ts = timeseries(x(2:end,:),x(1,:))

timeseries オブジェクトを Version 7.3 の MAT ファイルに保存します。

save('mySignals','ts','-v7.3')

From File ブロックを追加し、そのブロックの [ファイル名] パラメーターを mySignals.mat に設定します。

モデルのシミュレーションを実行します。Scope ブロックには、mySignals.mat ファイルから読み込まれたデータが反映されます。

特性

データ型

double | single | boolean | 整数 | 固定小数点 | 列挙型 | バス

サンプル時間

[サンプル時間] パラメーターで指定

多次元信号

あり

可変サイズの信号

なし

ゼロクロッシング検出

有効な場合、あり

コード生成

あり

R2006a より前に導入

この情報は役に立ちましたか?