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

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

データをインポートした後、マップ モードおよびオプションを選択し、データを選択することで、信号データをルート入力端子にマッピングします。

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

マッピング モードの選択

信号データをルートレベルの端子にマッピングするには、[ルート Inport マッパー] ツールストリップの [モデルにマッピング] セクションで次のいずれかのマッピング モードを使用します。[ブロック名][端子の順序] のような、ツールストリップから選択するマッピング モードは、MATLAB® セッションおよびモデル間で維持されます。信号データをルート Inport にマッピングするたびにマッピング モードを選択する必要はありません。

目的マッピング モード

ルート Inport ブロックの名前に基づいて、信号を端子に割り当てます。名前がルート Inport ブロックと一致する信号またはバスの要素が検出されると、そのデータが対応する端子にマッピングされます。

ブロック名

ルート Inport ブロックのブロック パスに基づいて、信号を端子に割り当てます。ブロック パスがルート Inport ブロックと一致する信号が検出されると、そのデータが対応する端子にマッピングされます。

ブロック パス

端子の信号の名前に基づいて、信号を端子に割り当てます。信号名が端子の信号と一致するデータ要素が検出されると、そのデータが対応する端子にマッピングされます。

信号名

インポート データに 1 から始まる端子番号を順番に割り当てます。信号を対応する Inport にマッピングします。

データ数が Inport より多い場合、残りのデータはイネーブル端子、トリガー端子の順にマッピングされます。

データがデータセットの形式でない場合、データ ファイル内の出現順に処理されます。

端子の順序

カスタム ファイルの定義に基づいて、信号を端子に割り当てます。カスタム マッピング モードを作成するには、カスタム マッピング モードの作成と使用を参照してください。

カスタム

マッピングのオプションの設定

マッピング オプションを設定する場合は、[ルート Inport マッパー] ツールストリップの [モデルにマッピング] セクションで [オプション] をクリックします。[モデルの更新][部分指定を許可] のような、ツールストリップから選択するオプションは、MATLAB セッションおよびモデル間で維持されます。信号データをルート Inport にマッピングするたびにオプションを選択する必要はありません。

信号をマッピングするには、データのマッピングを参照してください。

目的オプション

モデルを更新し、ルートレベルの Inport とインポート データのデータ型をレビューします。

モデルの更新。信号データと Inport のパラメーターがルートレベルの端子と比較され、その結果が表示されます。このオプションを選択しない場合、インポート データがルートレベルの Inport にマッピングされますが、モデルの更新は行われません。

スプレッドシートからデータをマッピングする場合は、厳密なデータ型指定を使用します。

スプレッドシートで厳密な型指定を使用。ルート Inport マッパー ツールがスプレッドシートの入力信号を対応するルート Inport のデータ型に自動的に変換できるようにするには、このチェック ボックスをオフにします。ルート Inport マッパー ツールがスプレッドシート データをキャストできるのは次のデータ型のみです。doublesingleint8uint8int16uint16int32uint32。このチェック ボックスをオンにした場合、またはルート Inport がこれらのデータ型のいずれでもなかった場合は、データ型不一致エラーを受け取る可能性があります。

一部のみが定義されたバス データをインポートします。

部分指定を許可。インポートする部分的に指定されたバス データが、ルートレベルの Inport に適切にマッピングされることを確認します。

割り当てられていないルート Inport を特定し、不完全な入力データセットを検出します。

[見つからない信号の通知]。見つからない信号のある入力を表示します。

マッピングするデータの選択

シナリオのサブセットを指定してマッピングするには、[モデルにマッピング] ボタンの上の下矢印をクリックします。シナリオによって、異なるマッピング モードを選択できます。

目的オプション

すべてのシナリオ データセットをマッピングする (既定)。

すべてをマッピング

SCENARIO DATASET セクションで現在選択されているシナリオのデータセットをマッピングする。

選択をマッピング

未接続のデータセットをマッピングする。

未接続のものをマッピング

前にマッピングに失敗したデータセットをマッピングする。

マッピングに失敗

前に警告が発生したデータセットをマッピングする。

マッピングで警告が発生

データのマッピング

信号またはバスをインポートした後で、データをマッピングできます。

  1. [ルート Inport マッパー] ツール バーの [モデルにマッピング] をクリックします。

    信号マッピングの結果は [シナリオ データセット] タブに表示されます。

  2. [ファイル] セクションで、マッピング結果を表示するデータセットをクリックします。

    • [シミュレーションの準備状態] セクションには、入力データとマッピング ステータスのリストが表示されます。

      メモ

      マッピング結果の理解を参照してください。

    • 入力データのマッピング定義はモデルに適用されます。

モデルを保存して閉じた後で、同じシナリオの入力データをワークスペースに読み込むと、そのシナリオ用に定義されたマッピングがモデルで使用されます。

信号データのルートレベルの入力へのマッピングの例については、ハーネス駆動型のモデルからハーネスのない外部入力の使用への変換を参照してください。

モデルのマッピング定義を保存したら、データの読み込みを自動化できます。詳細については、マッピング データ読み込みの代替ワークフローを参照してください。

マッピング結果の理解

インポートとマッピングのプロセスが完了すると、[シミュレーションの準備状態] セクションのステータス領域に結果が表示されます。結果は、マッピングを設定するときに [モデルの更新] オプションを選択したかどうかによって変わります。

状態モデルの更新モデルを更新せずに続行

マッピングされた Data と Inport のプロパティはシミュレーションに適しています。

Data と Inport のデータ型、次元、信号タイプのプロパティには互換性があります。

該当なし

データとルートレベルの端子のデータ型、次元、信号タイプのプロパティの比較では、一致するかどうかを判定できません。マッピングの前にモデルを更新しなかった場合、Inport のデータ型を明示的に指定しない限り、すべてのデータ型が一致しているかどうかを評価できません。次のブロック パラメーターが正しく設定されていることを確認してください。

Inport ブロック パラメーターの [データ型][Inherit:auto] に設定されていない。

Inport ブロック パラメーターの [次元][-1] に設定されていない。

Inport ブロック パラメーターの [信号タイプ][自動] にすることはできない。

マッピングされた Data と Inport のプロパティはシミュレーションに適していません。

信号データのデータ型、次元、信号タイプの 1 つ以上がルートレベル Inport と互換性がありません。

モデルでシミュレーションを有効にするには、ルート Inport マッパーがマッピングする入力信号を検出しない場合、これらの Inport をマッピングして接地し、マッピングされた信号を空 ([]) として表示します。

次の図は、成功したマッピング、失敗したマッピング、接地割り当てを示しています。問題がある場合、ステータス列に推奨される解決策が表示されます。解決策を読み、問題の診断を行います。

[シミュレーションの準備状態] セクションに警告やエラーが表示された場合でも、要素を調べた結果、データのマッピングには問題がないこともあります。その場合は、[オプション] メニューの [モデルの更新] チェック ボックスをオンにしていなければオンにして、[モデルにマッピング] を再度クリックします。

ルート Inport マッパー ツールの [シミュレーション用にマーク] をクリックすると、モデルの [コンフィギュレーション パラメーター] ダイアログ ボックスの [データのインポート/エクスポート] ペインにある [入力] チェック ボックスがオンになります。また、値がインポートしたデータ変数に設定されます。変更内容をモデル コンフィギュレーションに適用するには、[データのインポート/エクスポート] ペインで [OK] をクリックします。

コンフィギュレーション参照を使用してコンフィギュレーション セットを参照しているモデルは、シミュレーション用にマークできません。このデータをルート Inport マッパー ツールでモデルをシミュレートするために使用するには、先に、モデル エクスプローラーを使用してコンフィギュレーション セットを有効にします。

次のグラフィックスは、データのマッピングのモデルについて、変更内容のモデル コンフィギュレーションへの適用を示しています。

インポートしたデータを検証するには、以下を行います。

  • 出力をスコープに接続し、モデルをシミュレーションして、データを観察します。

  • 信号のログを作成し、シミュレーション データ インスペクター ツールを使用してデータを観察します。

信号に関連付けられている Inport ブロックを強調表示するには、[シミュレーションの準備状態] セクション内の項目を選択します。選択された Inport ブロックは、青で縁取りされています。

メモ

入力がバスの場合、バス オブジェクトのレベルをクリックすると、バスの個々の要素が表示されます。

ハーネス駆動型のモデルからハーネスのない外部入力の使用への変換

この例では、Signal Builder ブロックを入力として使用するハーネス モデルを、ルート Inport をもつ、ハーネスのないモデルに変換する方法を示します。この例では、ハーネスのないモデル用に、ハーネス モデルからデータを収集してそのデータを MAT ファイルに保存します。データを保存した後に、ハーネス モデルから Signal Builder ブロックを削除し、ルート Inport を追加してハーネスのないモデルを作成します。その後、MAT ファイル内のデータをモデルのルート Inport にマッピングします。

ハーネス データを MAT ファイルに保存

ハーネスのないモデルに変換する前に、ハーネスのテスト ケースを収集します。

この例では、オートマチック トランスミッション コントローラーのモデル化の例に含まれているモデル「sldemo_autotrans」に変更を加えます。

モデル例を開きます。MATLAB コマンド ウィンドウに「sldemo_autotrans」と入力します。

Signal Builder ブロック グループのエクスポート

Signal Builder ブロック信号グループを定義するデータを、Signal Builder ウィンドウから MAT ファイルにエクスポートします。Signal Builder 信号データを Simulink.SimulationData.Dataset の形式で、MAT ファイルにエクスポートするには、Signal Builder ウィンドウを開き、[ファイル][データのエクスポート][MAT ファイルへ] を選択します。ダイアログで、データを含む MAT ファイルの名前とエクスポートするグループの番号を入力します。この例では、ファイル名が slexAutotransRootInportPassingManeuver.mat で、Passing Maneuver グループに対するグループ番号は 1 です。

Signal Builder ブロックの削除

ManeuversGUI という名前の Signal Builder ブロックを削除し、それを 2 つの入力端子で置き換えます。

  1. ManeuversGUI という名前の Signal Builder ブロックを削除します。

  2. Simulink/Commonly Used Blocks ライブラリから、2 つの inport ブロックをモデルにドラッグします。

  3. 入力端子を、それまで Signal Builder ブロックに接続されていたラインに接続します。

  4. 入力端子の名前を変更します。Throttle ラインに接続されている入力端子に Throttle という名前を付けます。BrakeTorque ラインに接続されている入力端子に Brake という名前を付けます。

モデルを slexAutotransRootInportsExample1.slx という名前で保存します。または、slexAutotransRootInportsExample.slx サンプルを使用します。

この例における次の手順では、slexAutotransRootInportsExample.slx モデルを使用します。モデルを別の名前で保存した場合、以下の手順のモデル名は保存した名前で読み替えてください。

ハーネスのない入力の設定

モデルがハーネスなしになったので、保存済みの入力を設定します (「ハーネス データを MAT ファイルに保存」を参照)。

[モデル化] タブで [モデル設定] を選択します。[データのインポート/エクスポート] ペインで、[入力の接続] ボタンをクリックします。

信号をルート Inport にマッピング

ルート Inport マッパー ツールが開きます。

この例では、このツールを使用して MAT ファイルからモデルの入力を設定し、マッピング アルゴリズムに基づいてそれらの入力を入力端子にマッピングします。入力データを含む MAT ファイルを選択するには、[ルート Inport マッパー] ツール バーの [MAT ファイルから] ボタンをクリックします。リンク ダイアログが表示されたら、[参照] ボタンをクリックします。ブラウザーにて、保存済みの MAT ファイルを選択します。

マッピング モードの選択

入力データを含む MAT ファイル slexAutotransRootInportPassingManeuver.mat を選択したら、入力データを送信するルート入力端子を決定します。Simulink は、以下の 5 つの基準のいずれかに基づいて、入力データと入力端子を対応させます。

  • 端子の順序 - ファイルに出現する順序で、対応する端子番号にマッピングします。

  • ブロック名 - 変数名を使用して、ブロック名が一致するルート Inport にマッピングします。

  • 信号名 - 変数名を使用して、信号名が一致するルート Inport にマッピングします。

  • ブロック パス - BlockPath パラメーターを使用して、ブロック パスが一致するルート Inport にマッピングします。

  • カスタム - MATLAB 関数を使用してマッピングします。

この例の最初の方で、ハーネス信号 Throttle および Brake と同じ名前をもつ変数に入力データを保存し、それらの変数に対応する名前をもつ入力端子を追加しました。入力データおよびモデルの入力端子に関する条件を考慮すると、マッピングの基準として [ブロック名] を選択するのが最適です。この基準を使用すると、Simulink は入力データの変数名と入力端子の名前を対応させようと試みます。このオプションを選択するには、以下のようにします。

  1. [ブロック名] ラジオ ボタンをクリックします。

  2. [オプション] ボタンをクリックし、[モデルの更新] を選択します。これによりマッピングが検証されます。

  3. [マップ] ボタンをクリックします。

Simulink は、データのコンパイル時に以下の基準に基づいて入力端子を評価し、互換性に関する問題を判断します。この互換性に関するステータスは、テーブルの色 (緑、オレンジ、赤) で示されます。警告とエラーには診断メッセージのフラグが付きます。[オプション]、[モデルの更新] オプションを選択しない場合、これらのブロック パラメーターと割り当てられた信号を評価することにより、ルート Inport マッパーで互換性ステータスが決定されます。

  • データ型 - 倍精度、単精度、列挙、....

  • 実数/複素数 - 実数または複素数

  • 次元 - 信号の次元と端子の次元の比較

モデルへの入力を確定

マッピング互換性の結果を確認します。シナリオ データセット リストのシナリオ データセット [PassingManeuver] をクリックします。シミュレーションの準備をするには、[シミュレーション用にマーク] をクリックします。このアクションにより、マッピング変数がコンフィギュレーション パラメーター [データのインポート/エクスポート]、[外部入力] テキスト ボックスに適用されます。このテキスト ボックスに内容がある場合は、上書きされます。

モデルのシミュレーション

変更内容を適用したら、モデルのシミュレーションを実行してその結果を見ることができます。モデルを実行します。シミュレーションの結果を確認するには、Scope ブロックの PlotResults をダブルクリックします。

マッピング データ読み込みの代替ワークフロー

マッピング定義をモデルに保存したら、データの読み込みとシミュレーションを自動化できます。次のいずれかの方法を検討してください。

コマンド ラインまたはスクリプト

MATLAB コマンド ラインでデータを読み込んでモデルのシミュレーションを実行するには、次のようなコマンドを使用します。

load('signaldata.mat');
simout = sim('model_name');

異なる信号グループのテストおよび読み込みを自動化するには、スクリプトの使用を検討してください。

次のコード例では、時系列データを作成して、各信号グループの読み込み後にモデルのシミュレーションを実行します。具体的には、以下のとおりです。

  • 変数名 In1、In2、In3 で信号グループを作成して、各変数を MAT ファイルに保存します。

  • 各信号グループの読み込み後にモデルのシミュレーションを実行します。

メモ

変数名は、[コンフィギュレーション パラメーター][データのインポート/エクスポート][入力] パラメーターのインポート データ変数と一致しなければなりません。

% Create signal groups
fileName = 'testCase';
for k =1 :3
    
    % Create the timeseries data
    var1 = timeseries(rand(10,1));
    var2 = timeseries(rand(10,1));
    var3 = timeseries(rand(10,1));
    
    %create a dataset
    ds = Simulink.SimulationData.Dataset();
    ds = ds.addElement( var1, 'var1');
    ds = ds.addElement( var2, 'var2');
    ds = ds.addElement( var3, 'var3');
    
    % Save the data 
    save([fileName '_' num2str(k) '.mat' ],'ds');
end
clear all
 
% After mapping and saving the model loop over signal groups and simulate
% Set the filename to append testcase # to
fileName = 'testCase';
% Loop backwards to preallocate
for k=3:-1:1
   % Load the MAT-file.
   load([fileName '_' num2str(k) '.mat']);
   
   % Simulate the model
   simOut{k} = sim('model_name');
end

PreLoadFcn モデル コールバックの使用

データとマッピングに満足したら、信号グループが含まれる MAT ファイルを MATLAB ワークスペースに読み込むようにモデルを構成できます。関数 load をモデルの PreLoadFcn コールバックで呼び出します。

  1. MAT ファイルを保存した後、[モデル化] タブで、[モデル設定] ドロップダウンをクリックし、[モデル プロパティ] を選択します。

  2. モデル プロパティ ウィンドウで、[コールバック] タブ、PreLoadFcn ノードの順に選択します。

  3. 信号データが含まれる MAT ファイルを読み込むコマンドを入力します。以下に例を示します。

    load d_signal_data.mat;
  4. [OK] をクリックし、モデルを保存します。

関連する例

詳細