相互交換可能なシナリオでのデータの読み込み
モデル内でシナリオを簡単に交換するには、Signal Editor ブロックを使用します。このブロックは、シナリオの表示、作成、編集、切り替えを行います。シナリオには、以下のような信号のグループに関する情報が含まれます。
信号ファイル (MAT ファイルまたは Microsoft® Excel® ファイル) の場所
関連付けられたモデルの場所
マッピング モード
マッピング オプション
マッピング状態
複数のシミュレーションを実行したりテスト ハーネスを操作したりするときは、シナリオを使用してモデル内の信号のグループを交換します。
ヒント
Signal Editor は相互交換可能なシナリオを表示、作成、編集し、MAT ファイルの単位、信号や、信号編集および作成などの他の Simulink® 機能とより適切に統合します。Signal Builder ブロックを使用しているモデルでは Signal Editor ブロックを使用することを検討してください。Signal Builder ブロックは、信号グループの操作には推奨されません。Signal Editor ブロックの利点の詳細については、Replace Signal Builder Block with Signal Editor Blockを参照してください。
Signal Editor ブロックを使用した相互交換可能なシナリオでのデータの読み込み
Signal Editor ブロックでは、信号のグループ (シナリオ) を MAT ファイルから取得します。
このブロックには次のセクションがあります。
シナリオ — シナリオのリストを含む MAT ファイルの指定やアクティブな (現在の) シナリオの選択など、シナリオのセットアップを行います。
信号プロパティ — 信号エディター ユーザー インターフェイスを使用して次を行います。
シナリオとそれに関連する信号の調査、作成、編集。信号エディター ユーザー インターフェイスでは、シナリオごとにそれに含まれる信号が整理されます。
単位、サンプル時間、線形内挿などの特性を出力および設定するアクティブな信号の選択。アクティブな信号を変更するには、ドロップダウン リストを使用します。
Signal Editor ブロックの確認
この例では、Parallel Computing Toolbox™ を使用してモンテカルロ法の複数のシミュレーションを並列実行するParsim を使った並列シミュレーション: ノーマル モードでのパラメーター スイープの例で Signal Editor ブロックを使用する方法を示します。並列実行はホスト マシンの複数のコアを活用して多くのシミュレーションの実行を高速化します。Parallel Computing Toolbox がない場合はシミュレーションを逐次実行します。このモデルでは、さまざまな路面凹凸に対する路面とサスペンションの間の交互作用に基づいた車両運動のシミュレーションを実行します。この例の路面凹凸のシナリオは sldemo_suspn_3dof_sigData.mat
ファイルに保存されています。
sldemo_suspn_3dof
モデルで Signal Editor ブロック (Road Profiles という名前) を開きます。Signal Editor ブロックの [ファイル名] パラメーターは MAT ファイル
sldemo_suspn_3dof_sigData.mat
になっています。以下を確認します。
[アクティブなシナリオ] は、最初のシナリオ
Road1
に自動的に設定されます。この設定により、そのシナリオの信号に残りのブロック パラメーターが適用されることになります。アクティブなシナリオを変更するには、シナリオのリストから新しいシナリオを選択します。[アクティブな信号] は、アクティブなシナリオ
Road1
の最初の信号Left tire
に自動的に設定されます。この設定により、アクティブなシナリオに [パラメーター] セクションの残りの設定が適用されることになります。アクティブな信号を変更するには、信号のリストから新しい信号を選択します。
MAT ファイルでシナリオを調べて編集します。 をクリックします。
信号エディター ユーザー インターフェイスに MAT ファイルに格納されているシナリオのリストが表示されます。シナリオとそれに関連する信号を調べて変更します。変更を行った場合は、[保存] をクリックしてその内容を MAT ファイルに保存できます。
ブロックからの出力はアクティブな信号のデータです。それぞれのシナリオと信号を使用してモデルを順次シミュレートするには、関数 parsim
を使用します。この関数は、動的システムを並列または逐次で複数回シミュレートします。parsim
を使用する方法の例については、Parsim を使った並列シミュレーション: ノーマル モードでのパラメーター スイープを参照してください。
シナリオと信号の数の取得
Signal Editor ブロックに含まれるシナリオと信号の合計数をプログラムで取得するには、get_param
の NumberOfScenarios
プロパティと NumberOfSignals
プロパティを使用します。これらのプロパティの値は文字ベクトルです。これらの値を double に変換するには、関数 str2double
を使用します。
NumberOfScenarios
と NumberOfSignals
は get_param
を通じてのみ使用可能な読み取り専用プロパティです。これらの値はブロック ダイアログ ボックスには表示されません。