ドキュメンテーション

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

From Workspace

ワークスペースからの信号データの読み込み

ライブラリ

Sources

説明

From Workspace ブロックは、ワークスペースから信号データを読み取り、データを信号として出力します。

From Workspace アイコンには、[データ] パラメーターに指定した式が表示されます。Simulink® ソフトウェアがこの式を評価する方法の詳細は、「記号の関連付け」を参照してください。

サンプル時間、欠損データ点のデータの処理方法、ゼロクロッシング検出を使用するかどうかを含む、データの読み込み方法を指定できます。詳細については、「From Workspace ブロックを使用したデータの読み込み」を参照してください。

ワークスペース データの指定

From Workspace ブロックの [ブロック パラメーター] ダイアログ ボックスにある [データ] パラメーターで、読み込むワークスペース データを指定します。以下のいずれかに評価される MATLAB® 式 (MATLAB ワークスペースの変数の名前など) を指定します。

  • MATLAB timeseries オブジェクト

  • MATLAB timeseries オブジェクトの構造体

  • 時間付きまたは時間なしの構造体

  • 2 次元行列

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

サポートするデータ型

From Workspace ブロックはワークスペースからのデータを受け入れます。このブロックは、固定小数点データ型と列挙型データを含む、Simulink によってサポートされる任意のデータ型の実数信号または複素数信号を出力します。

また、From Workspace ブロックは、バス オブジェクトもデータ型として受け入れます。バス データを使用するには、MATLAB timeseries オブジェクトの構造体を使用します。詳細は、「最上位の入力端子へのバス データのインポート」を参照してください。

double 型の実数信号は、From Workspace ブロックがサポートする任意のデータ形式にできます。double 以外のデータ型の複素数信号と実数信号には、Array 以外の任意の形式を使用します。

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

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

データ

[データ] パラメーターで、読み込むワークスペース データを指定します。以下のいずれかに評価される MATLAB 式 (MATLAB ワークスペースの変数の名前など) を指定します。

  • MATLAB timeseries オブジェクト

  • MATLAB timeseries オブジェクトの構造体

  • 時間付きまたは時間なしの構造体

  • 2 次元行列

詳細については、「ワークスペース データの指定」を参照してください。

コマンド ライン情報

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

出力データ型

From Workspace ブロックが読み込むワークスペース変数のデータとして要求されるデータ型。非バス型の場合、任意のデータ型検証をスキップするには、[Inherit: auto] を使用できます。詳細は、「信号のデータ型の制御」を参照してください。

バス データを使用するには、MATLAB 時系列オブジェクトの構造体を使用します。詳細は、「最上位の入力端子へのバス データのインポート」を参照してください。

  • 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> — データ型は列挙型です。たとえば、Enum: Basic Colors などです。

  • Bus: <bus_object> — データ型はバス オブジェクトです。

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

コマンド ライン情報

パラメーター: OutDataTypeStr
タイプ: 文字列
'Inherit: auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | 'Bus: <object name>'
既定の設定: 'Inherit: auto'

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

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

モード

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

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

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

    • double — 既定値

    • single

    • int8

    • uint8

    • int16

    • uint16

    • int32

    • uint32

    • boolean

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

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

    • バス — バス オブジェクト。[バス] を選択すると、[バス オブジェクト] パラメーターが有効になり、バスの構造を定義するために使用するバス オブジェクトの名前を入力できます。バス オブジェクトを作成または変更するには、[編集] ([バス オブジェクト] フィールドの右側にある) をクリックして、Simulink バス エディターを開きます。詳細は、「バス エディターによるバス オブジェクトの管理」を参照してください。

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

サンプル時間

読み込まれたデータのサンプルレート。詳細は、「サンプル時間の指定」を参照してください。

コマンド ライン情報

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

[データを内挿する]

ブロックで対応するワークスペース データが存在しない時間ヒットについて線形内挿を行うには、このオプションを選択します。このオプションが無効な場合、現在の出力は、データが存在する最も近い時間での出力に等しくなります。

From Workspace ブロックは、ワークスペースの 2 つの対応するサンプルを使用して内挿を行います。

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

  • Boolean データの場合、2 つの時間値間の最初の半分の時間に false を使用し、残りの半分に true を使用します

  • double または Boolean 以外の組み込みデータ型の場合は次のようになります。

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

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

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

列挙型 (enum) データでは線形内挿は使用できません。

ブロックは、最後の既知のデータ点の値を、その点の後の時間ヒットの値として使用します。

ワークスペース データが入手可能な最後の時間ヒット後のブロック出力を決定するには、以下のパラメーターの設定を組み合わせます。

  • データを内挿する

  • 最後のデータ後の出力フォーム

詳細については、[最後のデータ後の出力フォーム] パラメーターを参照してください。

コマンド ライン情報

パラメーター: Interpolate
タイプ: 文字列
'off' | 'on'
既定の設定: 'on'

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

[ゼロクロッシング検出を有効にする] パラメーターを選択すると、入力配列に同じ時間ヒットのエントリが複数含まれている場合に、Simulink はその時間のゼロクロッシングを検出します。たとえば、入力配列に次のようなデータがあるとします。

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

時間 2 で、入力信号の不連続からゼロクロッシングがあります。詳細は、「ゼロクロッシング検出」を参照してください。

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

コマンド ライン情報

パラメーター: ZeroCross
タイプ: 文字列
'off' | 'on'
既定の設定: 'on'

最終データ後の出力データ

ワークスペース データが入手可能な最後の時間ヒット後のブロック出力を決定するには、以下のパラメーターの設定を組み合わせます。

  • データを内挿する

  • 最後のデータ後の出力フォーム

次の表で、この 2 つのオプションの値に基づくブロック出力を示します。

[最後のデータ後の出力フォーム] の設定内挿データの設定最終データの後のブロック出力

外挿

オン

最終データ値から外挿

オフ

エラー

0 に設定

オン

0

オフ

0

最終値を保持

オン

ワークスペースからの最終値

オフ

ワークスペースからの最終値

周期的に繰り返す

オン

エラー

オフ

ワークスペース データが structure-without-time 形式の場合は、ワークスペースから繰り返します。それ以外の場合はエラーになります。

たとえば、ブロックは最後の 2 つの既知のデータ点を使用して、次を実行した場合に最後の既知のデータ点の後に発生するデータ点を外挿します。

  • [データを内挿する][外挿] に設定する。

  • [最後のデータ後の出力フォーム] を選択する。

このモデルについて考えます。

From Workspace ブロックはワークスペースからデータを読み取ります。データは、1 秒間隔でサンプリングされた Simulink Sine ブロックの出力で構成されます。ワークスペースは、出力の最初の 16 サンプルをもちます。上の X-Y プロット、下の X-Y プロットは、それぞれ、Sine Wave および From Workspace ブロックの出力表示を 0 から 20 秒までプロットします。From Workspace ブロックの出力の直線は、シミュレーションの最後で、欠損データ点の線形外挿を示します。

コマンド ライン情報

パラメーター: OutputAfterFinalValue
タイプ: 文字列
'Extrapolation' | 'Setting to zero' | 'Holding final value' | 'Cyclic repetition'
既定の設定: 'Extrapolation'

From Workspace ブロックにより、1 次元信号および 2 次元信号を Simulink で読み取ることができます。From Workspace ブロックでは、n 次元の信号は Simulink に読み取りません。

配列形式での 1 次元信号の読み取り

2 つの信号 xy を時間ベクトル t で作成します。配列を使用して値を Simulink にインポートします。

  1. MATLAB コマンド ウィンドウで次のように入力します。

    t = 0.2 * [0:49]';
    x = sin(t);
    y = 10*sin(t);

    時間ベクトルは列ベクトルでなければなりません。

  2. From Workspace ブロックをモデルに追加します。

  3. From Workspace ブロックでは、[データ] パラメーターに配列 [t,x,y] を入力します。

構造体形式での 1 次元信号の読み取り

2 つの信号 xy を時間ベクトル t で作成します。構造体を使用して値を Simulink にインポートします。

  1. MATLAB コマンド ウィンドウで次を入力します。

    t = 0.2 * [0:49]';
    x = sin(t);
    y = 10*sin(t);
    wave.time = t;
    wave.signals.values = [x,y];
    wave.signals.dimensions =2;

    時間ベクトルは列ベクトルでなければなりません。信号の signals.dimensions フィールドは signals.values フィールドの列数に対応するスカラーです。

  2. From Workspace ブロックをモデルに追加します。

  3. From Workspace ブロックのパラメーター ダイアログ ボックスで、[データ] フィールドに、構造体名を入力します。

モデルからのサンプル時間の使用

時間ベクトルがない場合、モデルでサンプル時間を定義することができます。

  1. MATLAB コマンド ウィンドウで次を入力します。

    wave.time = [];

  2. From Workspace ブロックのパラメーター ダイアログ ボックスで、[サンプル時間] フィールドに、時間間隔を入力します。たとえば「0.2」と入力します。[データを内挿する] チェック ボックスの選択を解除します。

  3. [最後のデータ後の出力フォーム][0 に設定][最終値を保持] または [周期的に繰り返す] を選択します。[外挿] は選択しないでください。

構造体形式での 2 次元信号の読み取り

MATLAB ワークスペースから Simulink へ 2 次元信号を読み込むには、信号が構造体形式でなければなりません。この例では、関数 magic を使用し、10 行 10 列の行列 (2 次元信号) を作成し、時間ベクトルを追加することにより 3 次元行列を作成します。

  1. MATLAB コマンド ウィンドウで次を入力します。

    t1 = 0.2 * [0:49]';
    m = magic(10);
    M = repmat(m,[1 1 length(t1)]);
    data.time=t1;
    data.signals.values = M;
    data.signals.dimensions=[10 10];

    時間ベクトルは列ベクトルでなければなりません。signals.values field は 3 次元行列で、3 番目の次元は時間に対応します。signals.dimensions フィールドは 2 要素のベクトルです。最初の要素は signals.values フィールドの行数、2 番目の要素は列数です。

  2. From Workspace ブロックのパラメーター ダイアログ ボックスで、[データ] フィールドに、構造体の名前を入力します。

特性

データ型

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

サンプル時間

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

多次元信号

あり

可変サイズの信号

あり

ゼロクロッシング検出

有効な場合、あり

コード生成

なし

R2006a より前に導入

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