メインコンテンツ

Signal From Workspace

MATLAB ワークスペースから信号をインポートする

  • Signal From Workspace block

ライブラリ:
DSP System Toolbox / Sources

説明

Signal From Workspace ブロックは、MATLAB® ワークスペースから Simulink® モデルへ信号をインポートします。[信号] パラメーターは、インポートする信号を含んだ MATLAB ワークスペース変数の名前か、行列または 3 次元配列を定義する任意の有効な MATLAB 式のいずれかを指定します。

Simulink From Workspace (Simulink) ブロックとは異なり、Signal From Workspace ブロックは連続した出力フレーム間の出力値を一定に保持します (つまり、線形内挿が行われません)。また、初期信号値は常に t=0 で直ちに生成されます。

すべて展開する

Signal From Workspace ブロックを使用して、2 チャネル信号 A を MATLAB® ワークスペースから Simulink® モデルにインポートします。To Workspace ブロックを使用して、インポートしたデータを MATLAB ワークスペースに書き込みます。このモデルでは、To Workspace ブロックが、わずかに変更されたデータを MATLAB ワークスペースに書き込みます。

Signal From Workspace ブロックのパラメーターは次のように構成されます。

  • [サンプル時間]1 に設定: このパラメーターによって、出力のサンプル周期 Ts が決まります。

  • [フレームあたりのサンプル数]4 に設定: 各出力フレームにバッファリングするサンプルの数 Mo。出力フレーム周期は MoTs です。

  • [最終値の後の出力フォーム]Setting to zero に設定: ブロックは信号の最後のフレームを生成後、シミュレーションの間、ゼロ値の出力を生成します。

ex_signal_from_workspace_frames.slx モデルを開いてシミュレートします。

Signal From Workspace ブロックは、10 行 2 列の行列である変数 A から信号をインポートします。モデルをシミュレートすると、データ出力のフレーム サイズは 4 になり、フレーム周期 MoTs は 4 秒になります。このモデルでは、[最終データ値の後の出力フォーム] パラメーターが Setting to zero に設定されているため、3 番目のフレーム (t = 8) 以降のすべての出力はゼロになります。To Workspace ブロックは、この変更された出力を MATLAB ワークスペース内の変数 dsp_ex_yout に書き込みます。

次の図は、入力変数 A の信号と、このデータがどのように出力配列 dsp_ex_yout に書き込まれるかを示しています。

Signal From Workspace ブロックを使用して、MATLAB® ワークスペースから 3 次元配列 A を Simulink® モデルにインポートします。To Workspace ブロックを使用して、インポートしたデータを MATLAB ワークスペースに書き込みます。このモデルでは、To Workspace ブロックによってデータがわずかに変更されます。

Signal From Workspace ブロックのパラメーターは次のように構成されます。

  • [サンプル時間]1 に設定: このパラメーターによって、出力のサンプル周期 Ts が決まります。

  • [フレームあたりのサンプル数]1 に設定: 各出力フレームにバッファリングするサンプルの数 Mo。出力フレーム周期は MoTs です。

  • [最終データ値の後の出力フォーム]Setting to zero に設定: ブロックは信号の最後のフレームを生成後、シミュレーションの間、ゼロ値の出力を生成します。

ex_signal_from_workspace_3d.slx モデルを開いてシミュレートします。

Signal From Workspace ブロックは、2×2×3 の配列である変数 A から信号をインポートします。モデルをシミュレートすると、3 つのページ (2 行 2 列の行列) がそれぞれ周期 Ts で順番に出力されます。このモデルでは、[最終データ値の後の出力フォーム] パラメーターが Setting to zero に設定されているため、3 ページ目はゼロの行列になります。"To Workspace" ブロックは、これらの行列のシーケンスを MATLAB ワークスペースの変数 dsp_ex_yout に書き込みます。

次の図は、入力変数 A の信号と、このデータがどのように出力配列 dsp_ex_yout に書き込まれるかを示しています。

端子

出力

すべて展開する

ワークスペースからインポートされた信号。スカラー、ベクトル、行列または 3 次元配列として指定します。

[信号] パラメーターが MN 列の行列 (M≠1) を指定する場合、N 列のそれぞれが異なるチャネルとして扱われます。フレーム サイズは [フレームあたりのサンプル数] パラメーター Mo で指定します。出力は各信号チャネルからの Mo 連続サンプルを含む MoN 列の行列です。[サンプル時間] パラメーターで出力サンプル周期 Ts を指定すると、出力フレーム周期は MoTs になります。便宜上、インポートされた行ベクトル (M=1) は単一チャネルとして扱われ、出力次元は Mo 行 1 列になります。

[信号] パラメーターで M x N x P の配列を指定すると、P ページのそれぞれ (MN 列の行列) が周期 Ts のシーケンスで出力されます。[フレームあたりのサンプル数] パラメーターは 1 に設定しなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

パラメーター

すべて展開する

信号のインポート元となる MATLAB ワークスペース変数の名前、または信号を指定する有効な MATLAB 式です。

出力のサンプル周期 Ts。スカラーとして指定します。出力のフレーム周期は MoTs です。

各出力フレームにバッファリングする、サンプル数 Mo。正の整数スカラーとして指定します。[信号] パラメーターで 3 次元配列を指定する場合、この値は 1 でなければなりません。

指定したすべての信号サンプルが生成されてから、出力を指定します。

  • [Setting To Zero] を指定すると、ブロックは信号の最後のフレームを生成後、シミュレーションの間、ゼロ値の出力を生成します。

  • [Holding Final Value] を指定すると、ブロックは信号の最後のフレームを生成後、シミュレーションの間、最後のサンプルを繰り返します。

  • [Cyclic repetition] を指定すると、ブロックは信号の最後のサンプルに到達後、最初から信号を繰り返します。[フレームあたりのサンプル数] パラメーターで指定するフレーム サイズで入力長を等分割できない場合、バッファー ブロックが Signal From Workspace サブシステムに挿入されてモデルがマルチレートになります。モデルをマルチレートにしない場合、必ず入力信号長がフレーム サイズで等分割されるようにしてください。

ブロックは、最後のサンプルを超えてインポートした信号を外挿しません。

[入力長がフレーム サイズで均等に分割されない場合は警告] パラメーターをオンにすると、入力長がフレーム サイズの整数倍でない場合に、警告されるようになります。入力長がフレーム サイズの整数倍でない場合、モデルがマルチレートになります。モデル エクスプローラーを使用して、これらの警告をモデル全体でオンまたはオフにするには、次のようにします。

  1. [モデル化] タブの [モデル エクスプローラー] をクリックします。

  2. モデル エクスプローラー[検索] バーで、[ignoreOrWarnInputAndFrameLengths] プロパティの [プロパティ名] を探索します。各ブロックが [入力長がフレーム サイズで均等に分割されない場合は警告] チェック ボックス付きで [コンテンツ] ペインのリストに表示されます。

  3. 警告パラメーターを切り替える各ブロックを選択し、[ignoreOrWarnInputAndFrameLengths] 列でチェック ボックスをオンまたはオフにします。

依存関係

このパラメーターを有効にするには、[最終データ値の後の出力フォーム][Cyclic repetition] に設定します。

ブロックの特性

データ型

double | fixed point | integer | single

直達

なし

多次元信号

なし

可変サイズの信号

なし

ゼロクロッシング検出

なし

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入