Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ルート Inport のマッピングの信号データの作成

ルート Inport マッパー ツールを使用する最初のステップは、インポートおよびマッピングする信号データのソースを特定することです。既存のデータ (たとえば Microsoft® Excel® スプレッドシート内の) を使用して MAT ファイルにデータを作成することも、信号エディターのインターフェイスを使用して信号データを作成することもできます。

ルート Inport マッパー ツールの使用に関連するその他のステップの概要については、インポートおよびマッピングのワークフローを参照してください。

インポートしてマッピングするデータのソースの選択

データは次のソースからインポートできます。

  • ベース ワークスペース — ベース ワークスペースからデータを選択してインポートできます。サポートされているデータ形式の詳細については、ベース ワークスペースと MAT ファイルの形式の選択を参照してください。

  • データ ファイル — MAT ファイルと Microsoft Excel ファイルに含まれている信号を選択してインポートできます。ファイルの内容をインポートするたびに、この内容によってルート Inport マッパー ツールで既に読み込まれているファイルのデータがオーバーライドされます。

    詳細については、ベース ワークスペースと MAT ファイルの形式の選択サポートされている Microsoft Excel のファイル形式を参照してください。

    ヒント

    シミュレーションの入力データを Microsoft Excel スプレッドシートから読み込む場合は、From Spreadsheet ブロックの使用を検討してください。シミュレーション中に、From Spreadsheet ブロックはスプレッドシートのデータを段階的に読み込みます。From Spreadsheet ブロックを使用する場合、シートの値への変更を処理するために何もする必要はありません。

信号エディターのインターフェイスを使用して信号データを作成および編集することもできます。詳細については、信号データの作成と編集を参照してください。

信号およびバスの命名規則の選択

インポートする信号を識別するときは、このデータのグループ化 (シナリオ) が相互交換可能になるような信号およびバスの命名規則の使用を検討してください。たとえば、命名規則に従って名付けられた同じ変数セットを持つ 2 つの MAT ファイルは、異なるデータ値を持つことができます。そして、モデルへの入力データおよびモデルからの入力データのシナリオを簡単に切り替えることができます。

ベース ワークスペースと MAT ファイルの形式の選択

ルート Inport マッパー ツールは MATLAB® データ型またはインポートされた信号データのテーブルで説明されている形式をサポートしています。各データ型について、表で示されているマッピング モードを使用できます。

データ形式ブロック名ブロック パス信号名端子の順序カスタム

Simulink.SimulationData.Dataset

MATLAB timeseries

 

MATLAB timetable

 

Simulink.SimulationData.Signal

Stateflow.SimulationData.State

時間付き構造体と時間なし構造体

    

データ配列

    

バス配列

 

非同期関数呼び出し信号

 

メモ

ルート Inport マッパー ツールでサポートされない形式のデータが MAT ファイルまたはベース ワークスペースに含まれている場合、データは無視されます。

メモ

ルート Inport マッパー ツールがこれらの形式を受け入れたとしても、Simulink.SimulationData.Dataset オブジェクトでリンクするだけの場合があります。MAT ファイル内のデータを Simulink.SimulationData.Dataset オブジェクトに変換するには、[ルート Inport マッパー] ダイアログ ボックスで [信号をシナリオ データセットに変換して MAT ファイルに保存] チェック ボックスをオンにします。あるいは、関数 convertToSLDataset を使用してデータを変換します。

メモ

timetableDataset またはバスの要素として指定するとき、timetable には 1 つの信号のみのデータを含めなければなりません。

データセットの信号データ

データセットに一意ではない要素名が付けられている場合、[端子の順序] マッピング モードを使用します。

MATLAB 時系列信号データ

列挙型データを含む MATLAB timeseries データがあり、列挙型クラスが MATLAB パス上にない場合、その timeseries データは無視されます。

構造体の信号データ

構造体信号データをデータセットに変換する場合、信号の名前は、構造体信号の信号フィールドのラベル フィールドに含まれる値を使用して付けられます。

配列の信号データ

ルート Inport マッパー ツールは、データ配列を単一の入力端子にマッピングしようとします。この場合、どのマッピング モードでも選択できます。

ルート Inport のマッピング用のバスの信号データ

ルートレベルの Inport ブロックにインポートおよびマッピングする信号データには、バス データを含めることができます。バス信号をルートレベルの Enable ブロックまたは Trigger ブロックにマッピングすることはできません。

  1. MATLAB ワークスペースで、インポートおよびマッピングするバス データのバス オブジェクトを作成するか読み込みます。

  2. バス オブジェクトをベース ワークスペースに作成する場合は、バス オブジェクトの定義を MAT ファイルに保存します (d_myBusObj.mat など)。

  3. バス オブジェクトに対し、インポートするバス データを含む別の MAT ファイルを作成します。次のいずれかの方法を使用します。

    • MATLAB 構造体または Simulink.SimulationData.Dataset オブジェクトが既に含まれている既存の MAT ファイルを使用します。

    • ベース ワークスペース内でバスを作成して、それを MAT ファイルに保存します。

  4. バス オブジェクトを読み込むようにモデルを設定します。

    • 信号のマッピング先のルートレベルの Inport ブロックの場合は、[データ型] フィールドを [バス] に設定します。信号のマッピングに使用するバス オブジェクトの変数の名前を指定します。

    • マッピングに使用するバス オブジェクトを含む MAT ファイルをモデルに読み込みます。たとえば、コールバック関数 PreLoadFcn を使用します。詳細については、マッピング データ読み込みの代替ワークフローを参照してください。

ルート Inport のマッピング用の信号データの MAT ファイルでの作成

信号データを MAT ファイルで作成して、ルート Inport のマッピングで使用できます。たとえば、3 つの信号 (signal1signal2 および signal3) をインポートして、信号を MAT ファイルで保存できます。Simulink.SimulationData.Signal オブジェクトには、信号名、ブロック名、ブロック パスおよび端子の順序インデックス値が含まれます。

関数 convertToSLDataset を使用して MAT ファイルの内容を Simulink.SimulationData.Dataset オブジェクトに変換できます。

  1. MATLAB で、3 つの Simulink.SimulationData.Signal オブジェクトを作成して信号名、ブロック パスおよび端子の順序インデックス値を指定します。

    signal1 = Simulink.SimulationData.Signal;
    signal1.Name = 'signal1';
    signal1.BlockPath = Simulink.SimulationData.BlockPath('Out1');
    signal1.PortType = 'inport';
    signal1.PortIndex = 1;
    
    signal2 = Simulink.SimulationData.Signal;
    signal2.Name = 'signal2';
    signal2.BlockPath = Simulink.SimulationData.BlockPath('Out2');
    signal2.PortType = 'inport';
    signal2.PortIndex = 2;
    
    signal3 = Simulink.SimulationData.Signal;
    signal3.Name = 'signal3';
    signal3.BlockPath = Simulink.SimulationData.BlockPath('Out3');
    signal3.PortType = 'inport';
    signal3.PortIndex = 3;
    
  2. MATLAB ワークスペースで、signal1signal2 および signal3 を選択します。選択を右クリックして、コンテキスト メニューで [名前を付けて保存] をクリックします。ファイルを mySigData.mat として保存します。

  3. MAT ファイルを開きます。

    open mySigData.mat
    ans = 
    
        signal1: [1x1 Simulink.SimulationData.Signal]
        signal2: [1x1 Simulink.SimulationData.Signal]
        signal3: [1x1 Simulink.SimulationData.Signal]

この MAT ファイルでは、[信号名][ブロック名][ブロック パス] または [端子の順序] マッピング モードを使用できます。マッピング モードに基づいて、ルート Inport マッパー ツールは MAT ファイルの信号データを対応する端子にマッピングします。

サポートされている Microsoft Excel のファイル形式

ルート Inport マッパー ツールを使用して、データを Excel スプレッドシートからインポートできます。またルート Inport マッパー ツールを使用して、Microsoft Office がインストールされている Windows® システムで CSV ファイルの信号データをインポートすることもできます。ルート Inport マッパー ツールでは、Excel スプレッドシートのチャートはサポートされません。

  • MATLAB 変数名規則に従うシート名を使用します。規則に従っていない名前のシートからインポートした場合、ルート Inport マッパー ツールはシート名を変更して使用します。変更後のシート名は、MATLAB の変数名規則に従います。たとえば、シート名が Group Name の場合、ルート Inport マッパーは名前を GroupName に変更して使用します。

  • シートの最初の行を使用して信号名を指定します。すべての信号について信号名を指定するか、信号名を指定しないでください。信号名を指定しない場合、ツールが Signal# の形式を使用して信号名を割り当てます。

  • 時間値については、残りの行の最初の列を使用します。行ごとに、時間値が増加しなければなりません。

  • 信号値を残りの列に設定します。

  • インポート中、ルート Inport マッパー ツールは、フォーマットされた数値を Excel スプレッドシートから double に変換します。

  • ルート Inport マッパー ツールはスプレッドシートのブロック パス マッピング モードをサポートしません。

Microsoft Excel スプレッドシートの例がルート Inport のマッピング用に設定されています。

  • シート名は sigData です。これは有効な MATLAB 変数名です。

  • 最初の行には信号名 signal1signal2 および signal3 が含まれます。

  • 最初の列には各行で増加する 6 つの時間値があります。

  • 時間値をもつ各行の、最初の列の右側にある列には各信号の信号データの値が含まれます。

関連するトピック