ドキュメンテーション

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

相互交換可能なシナリオでのデータの読み込み

シナリオには信号のグループに関する次のような情報が格納されます。

  • 信号ファイル (MAT ファイルまたは Microsoft® Excel® ファイル) の場所

  • 関連付けられたモデルの場所

  • マッピング モード

  • マッピング オプション

  • マッピング状態

複数のシミュレーションを実行したりテスト ハーネスを操作したりするときは、シナリオを使用してモデル内の信号のグループを交換します。それらのモデル内でシナリオを簡単に交換するには、Signal Editor ブロックを使用します。このブロックでシナリオの表示、作成、編集、および切り替えが可能です。

ヒント

Signal Builder ブロックを使用しているモデルでは Signal Editor ブロックを使用することを検討してください。

Signal Editor ブロックを使用した相互交換可能なシナリオでのデータの読み込み

Signal Editor ブロックでは、信号のグループ ("シナリオ") を MAT ファイルから取得します。

このブロックには 3 つのセクションがあります。

  • シナリオ — シナリオのリストを含む MAT ファイルやアクティブなシナリオ (現在のシナリオ) の指定など、シナリオのセットアップを行います。

  • 信号プロパティ — シナリオとそれに関連する信号の調査、作成、編集を信号エディター ユーザー インターフェイスを使用して行います。信号エディター ユーザー インターフェイスでは、シナリオごとにそれに含まれる信号が整理されます。

  • パラメーター — 単位、サンプル時間、線形内挿などの特性を出力および設定するアクティブな信号を選択します。アクティブな信号を変更するには、ドロップダウン リストを使用します。

この例では、Parallel Computing Toolbox™ を使用してモンテカルロ法の複数のシミュレーションを並列実行するParsim を使った並列シミュレーション: ノーマル モードでのパラメーター スイープの例で Signal Editor ブロックを使用する方法を示します。並列実行はホスト マシンの複数のコアを活用して多くのシミュレーションの実行を高速化します。Parallel Computing Toolbox がない場合はシミュレーションを逐次実行します。このモデルでは、さまざまな路面凹凸に対する路面とサスペンションの間の交互作用に基づいた車両運動のシミュレーションを実行します。この例の路面凹凸のシナリオは matlab\toolbox\ssldemo_suspn_3dof_sigData.mat ファイルに保存されています。

  1. sldemo_suspn_3dof モデルで Signal Editor ブロックを開きます。

  2. Signal Editor ブロックの [ファイル名] パラメーターは MAT ファイル sldemo_suspn_3dof_sigData.mat になっています。

    以下を確認します。

    • [アクティブなシナリオ] は、最初のシナリオ Road1 に自動的に設定されます。この設定により、そのシナリオの信号に残りのブロック パラメーターが適用されることになります。アクティブなシナリオを変更するには、シナリオのリストから新しいシナリオを選択します。

    • [アクティブな信号] は、アクティブなシナリオ Road1 の最初の信号 Left tire に自動的に設定されます。この設定により、アクティブなシナリオに [パラメーター] セクションの残りの設定が適用されることになります。アクティブな信号を変更するには、信号のリストから新しい信号を選択します。

  3. MAT ファイルでシナリオを調べて編集します。 をクリックします。

    信号エディター ユーザー インターフェイスに MAT ファイルに格納されているシナリオのリストが表示されます。シナリオとそれに関連する信号を調べて操作します。変更を行った場合は、その内容を MAT ファイルに保存できます。

ブロックからの出力はアクティブな信号のデータです。それぞれのシナリオと信号を使用してモデルを順次シミュレートするには、関数 parsim を使用します。この関数は、動的システムを並列または逐次で複数回シミュレートします。parsim を使用する方法の例については、Parsim を使った並列シミュレーション: ノーマル モードでのパラメーター スイープを参照してください。

Signal Builder ブロックを Signal Editor ブロックで置き換える

Signal Editor は、機能的には Signal Builder ブロックと同様ですが、柔軟性に優れています。Signal BuilderSignal Editor ブロックに置き換えます。Signal Editor ブロックには次のような利点があります。

  • モデルの外部の MAT ファイルへの信号データの保存

  • 信号の編集と作成

  • 次元や実数/複素数などの Simulink® 信号属性のサポート

  • バスや固定小数点などの標準の Simulink データ型のサポート

  • 固有の信号レベルのデータ型での出力

  • 複数のレートでの出力

  • Simulink の単位のサポート

  • 各信号に固有のゼロクロッシングの検出とデータの内挿

信号のデータやプロパティを Signal Builder ブロックから Signal Editor ブロックに移植するには、関数 signalBuilderToSignalEditor を使用します。この関数は、信号のデータとプロパティを既存の Signal Builder ブロックから MAT ファイルに保存し、現在のモデルに Signal Editor ブロックを追加し、新しい MAT ファイルを参照するように Signal Editor ブロックを変更します。

例については、Signal Builder ブロックを Signal Editor ブロックで置き換えるを参照してください。

考慮事項

Signal Builder ブロックから Signal Editor ブロックへの変換は、関数 signalBuilderToSignalEditor を使用すると比較的簡単です。ただし、次の考慮事項に注意してください。

  • データの内部ストレージ形式と前処理は Signal Builder ブロックと Signal Editor ブロックとで異なります。可変ステップ ソルバーを使用すると、シミュレーションのタイム ステップが異なるものになり、2 つのブロックの出力が一致しません。両方のブロックの出力の違いを最小限にするには次の方法があります。

    • 可変ステップ ソルバーの [最大ステップ サイズ] の値を小さくします。

    • Signal Editor ブロックの入力信号の形状がより明確になるようにデータ点を追加で挿入します。

    • 固定ステップ ソルバーを使用するか、両方のブロックのサンプル時間を同じ離散サンプル時間 (0 より大きい値) に設定します。離散サンプル時間の詳細については、離散サンプル時間を参照してください。

  • Signal Builder ブロックでサポートされるのは double のみです。データ型を変更する場合や変換後に信号についてのその他の変更を行う場合は、Signal Editor ブロックの ボタンをクリックして信号エディター ユーザー インターフェイスにアクセスします。

シナリオと信号の数の取得

Signal Editor ブロックに含まれるシナリオと信号の合計数をプログラムで取得するには、get_paramNumberOfScenarios プロパティと NumberOfSignals プロパティを使用します。これらのプロパティには値が文字ベクトルとして含まれます。これらの値を double に変換するには、関数 str2double を使用します。

NumberOfScenariosNumberOfSignals は読み取り専用のプロパティであり、get_param でのみ使用できます。これらの値はブロックのダイアログ ボックスには表示されません。

参考

| |

関連するトピック