Main Content

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

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

この例では、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 をダブルクリックします。