Main Content

シミュレーションのための信号データの提供

Simulink® モデルは入力信号データに対してアルゴリズムを実行し、出力信号を生成します。モデルは、シミュレーションの開始時に使用する入力データとシミュレーションの終了時に取得する出力を定義します。モデルの作成とシミュレーションを行うとき、次を実行します。

モデルの作成、デバッグ、テストを行うとき、シミュレーションのためにさまざまな入力信号データセットを使用できます。ログに記録されたシミュレーション データを別のシミュレーションの入力として使用できます。

モデルの信号データ要件の特定

システム生成の信号データを使用するには、Sine Wave ブロックなどのソース ブロックを使用します。ソース ブロックでは、変数や外部データ ソースを使用する必要がありません。モデル化要件を満たすソース ブロックを構成できない場合、信号データを指定します。

信号データ要件を判断する場合、次を特定します。

  • データを提供する必要があるブロック (サブシステムおよび Model ブロックを含む) — 信号のデータ型など、ブロックおよびモデル コンポーネントのインターフェイスを設計します。

  • 信号の範囲特性 (サンプル時間、次元、データ型など)。

  • 各入力信号のデータの保存場所 — 信号データを保存する場所を決定します (ワークスペース変数、MAT ファイル、Microsoft® Excel® スプレッドシートなどの外部データ ファイル)。

方程式の変数と定数係数のリストを作成し、公表されている情報源を使用するか、システムで実験を行うことにより、係数値を特定します。

信号データの保存場所の詳細については、読み込み用の信号データ ストレージを参照してください。

読み込み用の信号データ ストレージ

読み込み用の信号データを以下の場所でモデルに保存します。

  • MATLAB® (ベース) ワークスペースまたは関数ワークスペース

  • モデル ワークスペース

  • 関数ワークスペース

  • マスク ワークスペース

  • ブロック

  • MAT ファイル

  • スプレッドシート

MATLAB (ベース) ワークスペースは、信号データの読み込みに使われる最も一般的なワークスペースです。

信号データ用の MATLAB ワークスペース

以下を行う場合は、MATLAB (ベース) ワークスペースの使用を検討してください。

  • 反復的なシミュレーションに少量の信号データを使用する。

  • シミュレーション中に記録された信号データを、別のシミュレーションの入力として使用する。

  • 複数のモデルで同じ信号データを使用する。

MATLAB ワークスペースでの信号データの作成

  • MATLAB コマンド ラインまたはエディターで、信号データを作成する。

  • 関数 xlsread を使用して、Excel スプレッドシートのデータを MATLAB ワークスペースに読み込む。

  • 関数 csvread を使用して CSV スプレッドシートのデータを MATLAB ワークスペースに読み込む。

  • モデルのコールバックを使用して信号データを読み込む。

  • 以下のいずれかの Simulink ログ手法を使用する。

    • 信号のログ

    • To Workspace ブロック

    • Scope ブロック

    • [コンフィギュレーション パラメーター][データのインポート/エクスポート] ペイン、[出力][状態] または [最終状態] パラメーター

    • データ ストア

    • シミュレーション データを記録するように構成された sim コマンド

MATLAB ワークスペースからの信号データの読み込み-  ワークスペースから信号データを読み込むには、以下のいずれかの手法を使用します。

  • From Workspace ブロックを追加します。

  • ルートレベルの入力端子を使用する。

    • [コンフィギュレーション パラメーター][データのインポート/エクスポート][入力] パラメーターでワークスペース変数を指定する。

    • ルート Inport マッパー ツールを使用して、[入力] パラメーターのデータを指定する。

信号データのソース ブロックと Signal Editor ブロック

Sine Wave ブロックなどのソース ブロックは、他のブロックへの入力として使用できる信号を生成します。ソース ブロックは信号データを保存しません。生成された信号データがモデル化要件を満たす場合、ソース ブロックをモデルの初期プロトタイピングに役立てることができます。

モデルの入力として使用するシナリオを定義する場合、Signal Editor ブロックを使用できます。Signal Editor ブロックにはシナリオの定義が格納されます。

以下のような場合にソース ブロックの使用を検討します。

  • 手動でデータを作成する必要性を回避する場合。

  • メモリ消費量を削減する場合 (ソース ブロックは信号データを格納しない)。

  • 信号データの種類をモデルで視覚的に表す場合。

以下で、Signal Editor ブロックの使用を検討してください。

  • テストで使用するシナリオを作成およびインポートする場合。

    シナリオは Simulink および以下の製品と共に使用できます。

    • Simulink Test™

    • Simulink Coverage™

    • Simulink Design Verifier™

  • シナリオをすばやく切り替える場合。

信号データ用の MAT ファイル

以下のような場合に信号データを MAT ファイルに保存することを検討します。

  • 大量の信号データを効率的に読み込む場合。

  • 同じ信号データを異なるモデルで再利用する場合。

  • モデルの必要メモリ量を減らす場合。

  • 最小のモデル更新で、同じモデルに異なる信号データのセットを使用する場合。

信号データの MAT ファイルへの保存-  MAT ファイルを作成してインポートする信号データを保存する場合、次を使用できます。

  • To File ブロック

  • 信号エディター ユーザー インターフェイス

  • MATLAB で MAT ファイルに保存する信号データを作成する

  • 関数 Simulink.saveVars で、Simulink がワークスペース変数として格納するシミュレーション信号データを MAT ファイルに保存する

MAT ファイルからの信号データの読み込み-  MAT ファイルから信号データをモデルに読み込むために、From File ブロックを使用できます。

信号データ用のスプレッドシート

以下のような場合に Excel または CSV スプレッドシートの使用を検討します。

  • 必要な信号データが既に含まれているか、更新すれば簡単に信号データを追加できる既存のスプレッドシートを使用する場合。

  • 大量の信号データを効率的に読み込む場合。

  • モデルの必要メモリ量を減らす場合。

  • 最小のモデル更新で、同じモデルに異なる信号データのセットを使用する場合。

  • Simulink をインストールしていない他のユーザーと信号データを共有する場合。

スプレッドシートへの信号データの保存-  次のいずれかの方法を使用します。

  • 信号データをスプレッドシートに直接作成する。スプレッドシートの要件については、格納形式を参照してください。

  • 関数 xlswrite または関数 csvwrite を使用して、MATLAB 信号データを Excel または CSV スプレッドシートにエクスポートする。

スプレッドシートからの信号データの読み込み-  From Spreadsheet を使用します。

From Spreadsheet ブロックは、Microsoft Excel をすべてのプラットフォームに読み込みます。このブロックは、CSV スプレッドシートを Microsoft Windows® プラットフォームにのみ読み込みます。

From Spreadsheet ブロックはスプレッドシートから直接データを段階的に読み込み、メモリ消費量を最小限に抑えます。

入力信号データの読み込み

モデルのシミュレーションを行うために、さまざまなソースの入力信号データを使用できます。次のようにして実行できます。

  • ファイル (スプレッドシートなど) の既存のデータを使用する。

  • MATLAB スクリプトを記述して、信号データの変数を定義する。たとえば、すべての信号読み込み手法で使用できる Dataset 形式のデータを作成できます。

  • 前のシミュレーションでログ記録されたデータを使用する。

データをモデルに読み込むために、以下のようないくつかの方法を使用できます。

  • ルートレベルの入力端子 — 信号データをワークスペースからインポートし、[入力] コンフィギュレーション パラメーターを使用して InportEnable または Trigger ブロックのルートレベルの入力端子にそれをインポートします。入力データは [入力] パラメーターで直接指定できます。多くの信号をルートレベルの入力端子にインポートする場合は、ルート Inport マッパー ツールの使用を検討してください。このツールは、インポートしてルートレベルの入力端子にマップする信号データに基づいて [入力] パラメーターを更新します。

  • ソース ブロック — Sine Wave ブロックなどのソース ブロックを追加して、別のブロックに入力する信号を生成します。

  • From File ブロック — MAT ファイルからデータを読み取り、信号としてそのデータを出力します。

  • From Spreadsheet ブロック — Microsoft Excel スプレッドシートまたは CSV スプレッドシートからデータを読み取り、1 つ以上の信号としてそのデータを出力します。

モデルの入力信号データ要件を満たす方法を判断するには、信号読み込みの手法の比較を参照してください。

出力信号データのログ記録

シミュレーション中に信号値を MATLAB ワークスペースまたは MAT ファイルに保存し、取得してから後処理をすることができます。シミュレーション データの保存は、シミュレーション データのログ記録またはエクスポートとも呼ばれています。

信号データのログ記録に使用する方法を決定するには、シミュレーション データのエクスポートを参照してください。

シミュレーション データを Dataset 形式で保存すると、さまざまなログ手法の結果に共通の形式が提供されるため、後処理が簡略化されます。Dataset 形式を使用すると、データが MATLAB timeseries オブジェクトとして保存されます。このオブジェクトは、MATLAB によって処理できます。Simulink には、他の形式でログに記録されたデータを Dataset 形式に変換するツールが用意されています。

出力信号データのログ記録の詳細については、シミュレーションのランタイム データの保存を参照してください。

参考

ブロック

関連するトピック