ドキュメンテーション

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

To Workspace

データをワークスペースに書き込み

ライブラリ

Sinks

説明

To Workspace ブロックは、信号を入力し、信号データをワークスペースに書き込みます。シミュレーション中、ブロックは内部バッファーにデータを書き込みます。シミュレーションが完了するかまたは一時停止した場合、そのデータはワークスペースに書き込まれます。シミュレーションが停止または一時停止するまでデータは使用できません。

  • メニューベースのシミュレーションの場合、データは MATLAB® ベース ワークスペースに書き込まれます。

  • MATLAB 関数の sim コマンドは、To Workspace ブロックで記録されたデータを MATLAB (ベース) ワークスペースではなく呼び出し関数のワークスペースに送信します。ログに記録されたデータをベース ワークスペースに送信するには、関数で assignin コマンドを使用します。次に例を示します。

    function myfunc
        a = sim('mTest','SimulationMode','normal');
        b = a.get('simout')
        assignin('base','b',b);
    end
    

ブロック アイコンは、データが書き込まれる変数名を表示します。To Workspace ブロックがデータを書き込むワークスペース変数の名前を指定するには、[変数名] パラメーターを使用します。

変数のデータ形式を指定するには、[保存形式] パラメーターを使用します。データの保存には、次のいずれか 1 つの形式を指定できます。

  • MATLAB timeseries オブジェクト (またはバス データに対しては MATLAB timeseries オブジェクトの構造体)

  • 配列

  • 構造体

  • 時間付き構造体

これらの形式のいずれかから、データをデータセット形式に変換できます。Dataset 形式に変換すると、同様に Dataset 形式を使用できる他の記録されたデータ (記録された状態など) との事後処理が容易になります。詳細は、「Dataset 形式へのログ データの変換」を参照してください。また、可変サイズの信号例外を使用して信号のログを使用することもできます。

From Workspace ブロックで使用するためのデータの保存

From Workspace ブロックを使用して、以前のシミュレーション時に To Workspace ブロックで保存したサンプルベースのデータを Simulink® に読み込むには、To Workspace ブロックで [時系列] 形式または [時間付き構造体] 形式を使用して時間情報を指定します。

保存したデータ量の制御

[モデル コンフィギュレーション パラメーター][データのインポート/エクスポート][ログ間隔] パラメーターで間隔を指定した場合、ブロックは間隔外のデータを記録しません。たとえば、間隔が空 ([]) の場合、ブロックはデータをログに記録しません。

可変ステップ ソルバーの場合、To Workspace ブロックに利用できるデータ量を制御するには、[モデル コンフィギュレーション パラメーター][データのインポート/エクスポート][追加パラメーター][出力オプション] パラメーターを使用します。たとえば、複数のシミュレーションに対して同一の時点で Simulink にデータを書き込ませる場合は、Produce specified output only オプションを選択します。

その後、To Workspace ブロック パラメーターを使用して、ブロックがこのデータを書き込む時間と量を制御します。

  • [データ点の制限] パラメーターを使用して保存するサンプル点の数を指定します。シミュレーションで指定された最大値以上にデータ点が生成された場合、シミュレーションは最後に生成されたサンプルだけを保存します。すべてのデータを得るには、この値を inf に設定します。

  • [間引き] パラメーターを使用すると、To Workspace ブロックに n 番目のサンプルごとにデータを書き込ませます。n は間引き係数です。既定の間引きは 1 で、すべての時間ヒットごとにデータを書き込みます。

  • サンプル時間パラメーターを使用してデータ点を収集するサンプリング間隔を指定します。このパラメーターは、時間ヒットの間隔が同じでない可変ステップ ソルバーを使用する場合に有効です。既定値は -1 で、その場合は、どの点を書き込むかを決定する際に、接続ブロックからサンプル時間を継承します。詳細は、オンライン ドキュメンテーションの「サンプル時間の指定」を参照してください。

たとえば、[開始時間] が 0、[データ点の制限] が 100、[間引き] が 1、[サンプル時間] が 0.5 のシミュレーションがあるとします。To Workspace ブロックは、0、0.5、1.0、1.5... 秒の時間値で最大 100 点を収集します。[間引き] 値を 1 に指定すると、各ステップでブロックがデータを書き込むように指示します。

同様の例で、[データ点の制限] は 100、[サンプル時間] は 0.5 ですが、[間引き] を 5 とします。この例で、ブロックは、時間列 0、2.5、5.0、7.5... 秒で最高 100 点まで収集します。[間引き] を 5 と指定すると、ブロックは 5 サンプルごとにデータを書き込みます。サンプル時間によりデータはこれらの点で確実に書き込まれます。

もう 1 つの例では、[データ点の制限] が 3 であることを除いてすべてのパラメーターは最初の例で定義したとおりとします。この場合、最後に収集した 3 つの行のみがワークスペースに書き込まれます。シミュレーション停止時間が 100 の場合、データは 99.0 秒、99.5 秒、および 100.0 秒 (3点) の時間に対応します。

MAT ファイルのログ

[コンフィギュレーション パラメーター][すべてのパラメーター][MAT ファイルのログ] パラメーターを有効にすると、To Workspace はそのデータを MAT ファイルに記録します。このパラメーターの詳細は、Simulink Coder™ ドキュメンテーションの「MAT ファイルのログ」を参照してください。

フレームベース信号

既定の設定では、To Workspace ブロックは入力信号をサンプルベースとして扱います。

To Workspace ブロックで入力信号をフレームベースとして扱うには、次のように設定します。

  1. [保存形式][配列] または [構造体] に設定

  2. [2 次元信号の保存形式][2 次元配列 (最初の次元と連結)] に設定

サポートするデータ型

To Workspace ブロックは、バス オブジェクトの他に、固定小数点や列挙型データなど、Simulink がサポートするすべてのデータ型の実数入力または複素数入力を MATLAB ワークスペースに保存できます。

詳細は、「Simulink でサポートされているデータ型」を参照してください。

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

変数名

データを保存する変数の名前を指定します。

データ点の制限

保存される入力サンプルの最大数を指定します。既定の設定は inf です。

間引き

間引き係数を指定します。既定の設定は 1 です。

保存形式

ワークスペースに保存するシミュレーションの出力形式を次から 1 つ指定します。

  • 時系列 (既定の設定)

    非バス信号を MATLAB timeseries オブジェクトとして、また、バス信号を MATLAB timeseries オブジェクトの構造体として保存します。

  • 配列

    N 次元配列として入力を保存します。N は入力信号の次元数よりも 1 大きい数値です。たとえば、入力信号がベクトルである場合、結果のワークスペース配列は 2 次元になります。入力信号が行列である場合、配列は 3 次元になります。

    Simulink がサンプルを配列に格納する方法は、入力信号がスカラー、ベクトルまたは行列のいずれであるかによって異なります。入力がスカラーまたはベクトルの場合、各入力サンプルは配列の行として出力されます。たとえば、出力配列の名前が simout であるとします。すると、simout(1,:) は最初のサンプルに対応し、simout(2,:) は 2 番目のサンプルに対応するなどのようになります。入力信号が行列の場合は、時間が 3 番目の次元に対応します。たとえば、simout が結果のワークスペース配列の名前であることをもう一度思い出してください。simout(:,:,1) は、最初のサンプル点での入力信号の値です。simout(:,:,2) は、2 番目のサンプル点での入力信号の値です。

    [配列] を選択した場合、[2 次元信号の保存形式] がパラメーターとして表示されます。

    入力信号をフレームベースとして扱うには、[保存形式][配列] または [構造体] に設定し、[2 次元信号の保存形式] パラメーターを [2 次元配列 (最初の次元と連結)] に設定します。

  • 構造体

    この形式は、3 つのフィールドから構成されます。

    • time — このフィールドはこの形式の場合は空です。

    • signals — 次の 3 つのフィールドをもつ構造体。valuesdimensions および labelvalues フィールドは、信号値の配列です。dimensions フィールドは、対応する信号の次元を指定します。label フィールドは、入力ラインのラベルです。

    • blockName — To Workspace ブロックの名前

    [構造体] を選択した場合、[2 次元信号の保存形式] がパラメーターとして表示されます。

    入力信号をフレームベースとして扱うには、[保存形式][構造体] または [配列] に設定し、[2 次元信号の保存形式] パラメーターを [2 次元配列 (最初の次元と連結)] に設定します。

  • 時間付き構造体

    この形式は、シミュレーション時間ヒットのベクトルを時間フィールドが含んでいること以外は、[構造体] と同じです。

    From Workspace ブロックで直接 To Workspace ブロック出力を読み取るには、[時系列] または [時間付き構造体] 形式のいずれかを使用します。詳細は、「信号読み込みの手法の比較」を参照してください。

    [時間付き構造体] 形式はフレームベースの信号をサポートしません。代わりに、[配列] または [構造体] の形式を使用してください。

次の表は、各シミュレーション モードでサポートされる [保存形式] の値をまとめたものです。

シミュレーション モード時系列配列構造体時間を含む構造体
ノーマルサポートサポート
アクセラレータサポート参照モデルではなく最上位モデルでのみサポート
ラピッド アクセラレータサポートなし。参照モデルではなく最上位モデルでのみサポート
ソフトウェアインザループ (SIL) サポートなし。MAT ファイルのログが有効になっている場合に参照モデルではなく最上位モデルでのみサポート
プロセッサインザループ (PIL)サポートなし。MAT ファイルのログが有効になっていて利用可能な場合に参照モデルではなく最上位モデルでのみサポート
エクスターナルサポートなし。参照モデルではなく最上位モデルでのみサポート
Simulink Coder ターゲットサポートなし。MAT ファイルのログが有効になっている場合に参照モデルではなく最上位モデルでのみサポート

2 次元信号の保存形式

[保存形式][配列] または [構造体] に設定した場合、[2 次元信号の保存形式] パラメーターが表示されます。

2 次元信号をワークスペースに保存する形式として次のいずれかを指定します。

  • 3 次元配列 (3 番目の次元に沿って連結) (既定の設定)

    この設定はサンプルベースの信号に適しています。データは 3 番目の次元に沿って連結されます。たとえば、2 行 4 列の 10 個のサンプルの入力行列は 2 x 4 x 10 の配列として格納されます。

  • 2 次元配列 (最初の次元に沿って連結)

    この設定はフレームベースの信号に適しています。データは最初の次元に沿って連結されます。たとえば、2 行 4 列の 10 個のサンプルの入力行列は 20 行 4 列の配列として格納されます。

  • 入力から継承 (この選択肢は今後削除されます — リリース ノートを参照してください)

    これは下位互換性のための設定です。入力信号を将来のリリースでフレームベースとして扱うようにこのブロックを設定するには、このパラメーターを [2 次元配列 (最初の次元と連結)] に設定します。入力信号を将来のリリースでサンプルベースとして扱うようにこのブロックを設定するには、このパラメーターを [3 次元配列 (3 番目の次元と連結)] に設定します。

[保存形式][配列] または [構造体] に設定されている場合、出力の次元は入力次元と [2 次元信号の保存形式] パラメーターの設定で決まります。次の表は、さまざまな条件下での出力次元をまとめています。この表で、K は [データ点の制限] パラメーターの値を表しています。

入力信号次元[2 次元信号の保存形式] の設定信号からワークスペースへの出力次元

M 行 N 列の行列

2 次元配列 (最初の次元に沿って連結)

K 行 N 列の行列。

[データ点の制限] パラメーターを inf に設定した場合、K はシミュレーションの終わりまでに各列で取得されたサンプルの合計数を表します。これは、入力フレーム サイズ (M) とブロックによって取得された M 行 N 列の入力の合計数を乗算した値と等価になります。

M 行 N 列の行列

3 次元配列 (3 番目の次元と連結)

M x N x K の配列。

[データ点の制限] パラメーターを inf に設定した場合、K はシミュレーションの終わりまでに取得された M 行 N 列の入力の合計数を表します。

長さ N の方向性をもたないベクトル

任意の設定

K 行 N 列の行列

N 次元配列 (N > 2)

任意の設定

N+1 次元の配列。ここで、最後の次元のサイズは K と等しくなります。[データ点の制限] パラメーターを inf に設定した場合、K はシミュレーションの終わりまでに取得された M 行 N 列の入力の合計数を表します。

fi オブジェクトとして固定小数点データのログを記録する

To Workspace ブロックは、既定の設定では、固定小数点データを Fixed-Point Designer™ の fi オブジェクトとして MATLAB ワークスペースに記録します。このパラメーターをオフにすると、固定小数点データが double としてワークスペースに記録されます。

サンプル時間

データを収集するサンプリング間隔とオフセットを指定します。このパラメーターは、時間ヒットの間隔が一定でない可変ステップ ソルバーを使用する場合に有効です。既定の設定は -1 で、接続ブロックからサンプル時間を継承します。詳細は、「サンプル時間の指定」を参照してください。

To Workspace ブロックの使用方法については、sldemo_varsize_basic の例を参照してください。

特性

データ型

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

サンプル時間

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

多次元信号

あり

可変サイズの信号

あり

コード生成

なし

R2006a より前に導入

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