ドキュメンテーション

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

モデル データ エディターを使用したデータ プロパティの設定

モデルには、信号、ブロック パラメーター (Gain ブロックの [ゲイン] パラメーターなど) およびデータ ストアなどのデータ項目が含まれます。モデル データ エディターでは、並べ替え、グループ化、フィルター処理が可能なリスト内でデータ項目を検証および編集できます。そして、ブロック線図内の項目の場所を特定しなくても、データ型や次元などのプロパティやパラメーターを設定できます。

モデルの作成とデバッグを行う際に、ブロック線図で対応する信号とブロックを選択することにより複数のデータ項目を同時に設定できます。個々のダイアログ ボックスを開く代わりに、モデル データ エディターで選択した項目を操作します。この手法を使用すると、たとえばサブシステム内など、ブロック線図の中の互いに近くに存在する複数の信号のプロパティをすばやく表示して比較できます。

モデル データ エディターを使用して次を設定します。

  • 信号およびデータ ストアの計測。シミュレーションの値を表示および収集する必要があることを意味します。たとえば、信号をログに記録してシミュレーション データ インスペクターでデータを比較することができます。

  • データ型、最小値および最大値、物理単位などの設計属性。たとえばこれらの属性を次の目的で使用します。

    • 数値ブロック パラメーターの値の指定。

    • Inport ブロックと Outport ブロックおよびデータ ストアを介したコンポーネント間の相互作用 (インターフェイス) の制御 (コンポーネントのデータ インターフェイスの構成を参照)。

    • モデル内の非スカラー信号の次元の指定。

  • ストレージ クラス。モデルから生成するコード (C など) 内のデータの表現を制御します。

モデル内でモデル データ エディターを開くには、[ツール表示][モデル データ エディター] を選択するか、Ctrl+Shift+E キーを押します。

メモ

モデル データ エディターでは、(Model ブロックで参照する) 参照モデル内のデータ項目に関する情報は表示されません。参照モデル内のデータ項目を操作するには、そのモデル内でモデル データ エディターを開きます。

離れたデータ項目の設定

モデル例 sldemo_fuelsys_dd は、自動車のエンジンの燃料供給システムを表しています。参照モデル sldemo_fuelsys_dd_controller はエンジンへの燃料流量の比率を制御します。この例では、モデル データ エディターを使用して異なるサブシステムおよび参照モデルの信号をログに記録し、シミュレーション データ インスペクターを使用してデータを検査できるようにします。

モデル例の確認

  1. sldemo_fuelsys_dd と参照モデル sldemo_fuelsys_dd_controller を開きます。

  2. airflow_calc サブシステムに移動します。

    Pumping Constant ブロックには燃料ポンプの性能を示すルックアップ テーブルが含まれています。このブロックの出力をシミュレーション データ インスペクターにストリーミングできます。

  3. モデルのルートに戻り、fuel_calc サブシステム内に移動します。

  4. feedforward_fuel_rate サブシステム内に移動します。

    ff_fuel_rate という名前の Outport ブロックは燃料比の制御アルゴリズムにフィードフォワード情報を渡します。

  5. fuel_calc サブシステムに戻り switchable_compensation サブシステム内に移動します。

    ff_fuel_rate という名前の Inport ブロックはフィードフォワード情報をもちます。この Inport ブロックの出力をストリーミングできます。

データを検査するための信号のログ記録

  1. sldemo_fuelsys_dd_controller モデルのルートに移動します。

  2. モデル データ エディターの [信号] タブを確認します。

  3. [ビューの変更] ドロップダウンを [計測] に設定します。

  4. [スコープの変更] ボタン を有効にし、サブシステムの内容を表示します。

    モデル データ エディターによってモデル内のすべての信号が特定されます。[Path] 列が表示されます。

  5. [コンテンツのフィルター] ボックスに ff_fuel_rate を入力します。

    モデル データ エディターによって、信号のリストが ff_fuel_rate という名前の信号のみを含むように更新されます。[Path] 列のリンクをクリックすると、信号がモデル内のどの位置にあるかを確認できます。

  6. パスが sldemo_fuelsys_dd_controller/fuel_calc/switchable_compensation である信号の [ログ データ] チェック ボックスをオンにします。

    これにより、ログ信号のデータをシミュレーション データ インスペクターに送信するように Simulink® に指示できます。

  7. テキスト Pumping Constant を使用して信号を再度フィルター処理します。

    テーブルには、Pumping Constant ブロックの出力に対応する 1 行が含まれます。

  8. Pumping Constant 信号の [ログ データ] チェック ボックスをオンにします。

  9. システム モデル sldemo_fuelsys_dd のシミュレーションを実行します。シミュレーション中に Engine Speed Selector などの Manual Switch ブロックをダブルクリックし、燃料制御システムに外乱を適用します。

  10. シミュレーションが終了すると、[シミュレーション データ インスペクター] ボタン が強調表示されます。これは、検査および比較するデータがあることを示しています。[シミュレーション データ インスペクター] ボタンをクリックします。

  11. 左側のペインで、シミュレーションの実行に対応する [実行] ノードを展開し、データを検査および比較する信号のチェック ボックスをオンにします。

    シミュレーション データ インスペクターで、同じグラフ上に選択した信号の値が表示されます。

ブロック線図からの複数データ項目の選択

モデル例 sldemo_househeat で、モデル データ エディターを使用して Heater サブシステムの信号をログに記録し、シミュレーション データ インスペクターを使用して検証します。

  1. モデル例 sldemo_househeatHeater サブシステムを開きます。

  2. モデル データ エディターを開き、[信号] タブを選択します。

    モデル データ エディターによってサブシステム内のすべての信号が特定されます。

  3. モデル データ エディターで、[ビューの変更] ドロップダウン リストを [計測] に設定します。

  4. Simulink エディターを使用して、サブシステム内のすべての信号を選択します。シミュレーション中に信号値は変化しないため、オプションで Constant ブロックの出力を選択しません。

    これに対し、モデル データ エディターでは、選択した信号に対応する行が強調表示されます。

  5. モデル データ エディターで、すべての信号について [Log Data] 列のチェック ボックスをクリックします。

    モデル データ エディターは選択したすべての信号についてチェック ボックスをオンにします。

  6. モデルのシミュレーションを実行します。

  7. シミュレーション データ インスペクターを開いて、左端のペインでシミュレーションの実行に対応する [実行] ノードを展開します。値を検査および比較する信号のチェック ボックスをオンにします。

ワークスペース変数を使用するモデルの操作

ワークスペース変数 (数値 MATLAB® 変数や Simulink.AliasType オブジェクトなど) を使用してデータ項目間で設定を共有する場合、これらの変数をモデル データ エディターから操作できます。エディターの外で作業を行ってデータ項目を設定する必要はありません。エディターで [追加情報の表示/更新] ボタン をクリックすると、ブロック線図を更新することによってモデルで使用されている変数が検索されます。

この例では、モデルで使用されているオブジェクトを操作してブロック パラメーター値を設定する方法について説明します。モデル sldemo_fuelsys_dd_controller で使用されている Simulink.Parameter オブジェクトの値を変更します。

  1. モデルを開きます。

    sldemo_fuelsys_dd_controller

  2. モデル データ エディターの [パラメーター] タブを開きます。

  3. モデル データ エディターで [追加情報の表示/更新] ボタンをクリックします。

    モデルで使用されている変数とオブジェクトに対応する行がデータ テーブルに表示されます。

  4. モデルで airflow_calc サブシステム内に移動します。

  5. モデル データ エディターで、[コンテンツのフィルター] ボックスの隣の [選択を使用してフィルター処理します] ボタンを選択します。

    このボタンが選択されていると、ブロック線図内のブロックまたは信号を選択したときに、そのブロックまたは信号に関連するデータ項目とワークスペース変数のみがデータ テーブルに表示されます。

  6. モデルで、Pumping Constant というラベルのルックアップ テーブル ブロックをクリックします。

    このブロックでは 3 つのワークスペース変数が使用されていることがモデル データ エディターによって表示されます。このブロックは Simulink.Parameter オブジェクト SpeedVect からいくつかのブレークポイント値を取得します。

これでモデル データ エディターの列を使用して SpeedVect のプロパティを設定できます。

以下の目的でさらに変数を操作できます。

  • 列に表示されない他のプロパティを設定します。

    1. モデル内でプロパティ インスペクター ([ツール表示][プロパティ インスペクター]) を開きます。

    2. モデル データ エディターでターゲットの変数またはオブジェクトに対応する行を選択します。プロパティ インスペクターが応答しない場合は、他の行を選択してから再びターゲットの行を選択します。

    3. プロパティ インスペクターを使用してターゲットのプロパティを設定します。

  • ワークスペースとデータ ディクショナリの間で変数を移動し、他の変数とともに変数を設定します。モデル エクスプローラーを使用するモデル エクスプローラーを開くには、モデル データ エディターのデータ テーブルで一番左の列のアイコンをダブルクリックします。モデル エクスプローラーの使用方法の詳細については、モデル エクスプローラーを使用したワークスペース変数の編集と管理を参照してください。

  • Simulink モデルのブロックで使用されている変数の名前をすべての場所で変更します。モデル データ エディターで、変数を右クリックし、[すべての名前の変更] を選択します。関数 Simulink.findVars がサポートする変数のみ名前を変更できます。

  • 特定の変数を使用するブロックを検索します。モデル データ エディターで、変数を右クリックして、[使用されている場所の検索] を選択します。

フィルター、並べ替えおよびグループ化によるデータの検出と整理

モデル例 sldemo_fuelsys_dd_controller では、ワークスペース変数とパラメーター オブジェクトによってブロック パラメーターの値が設定されています。変数とオブジェクトはデータ ディクショナリに存在します。モデル データ エディターを使用して、これらのディクショナリのエントリをグループとしてまとめて表示します。

  1. モデル例でモデル データ エディターを開き、[パラメーター] タブを選択します。

  2. [スコープの変更] ボタンを有効にし、サブシステムの内容を表示します。

  3. [追加情報の表示/更新] ボタンをクリックして、ディクショナリのエントリに関連付けられた行を表示します。

  4. [ソース] 列のヘッダーを右クリックし、[この列でグループ化] を選択します。

    モデル データ エディターによって、リストがブロックまたはワークスペースごとにグループ化されます (ディレクションのエントリのグループを含む)。

  5. [Source: Dictionary] というラベルのグループを見つけます。これでモデル データ エディターを使用して、ディクショナリ内の変数およびオブジェクトの属性を調べたり変更したりできます。

テキスト検索を使用してデータ テーブルをフィルターできます。[コンテンツのフィルター] ボックスを使用してください。

また、モデル内で選択したブロックまたは信号に基づいてフィルター処理することもできます。[コンテンツのフィルター] ボックスの隣の [選択を使用してフィルター処理します] ボタンを選択します。次にモデル内のブロックおよび信号をクリックすると、そのブロックまたは信号に関連する行のみがモデル データ エディターによって表示されます。複数のブロックまたは信号をまとめて選択すると、それらのモデル要素に関連する行のみがモデル データ エディターによって表示されます。

個々のデータ項目の調査

個々のデータ項目に焦点を絞るには、次のいずれかの手法を使用します。

  • モデル データ エディターで、[コンテンツのフィルター] ボックスの隣の [選択を使用してフィルター処理します] ボタンを選択します。次にモデルで、データ項目に関連付けられたブロックまたは信号をクリックします。

    この手法を使用し、データ テーブルの列を使用して項目を設定します。

  • モデル内でプロパティ インスペクター ([ツール表示][プロパティ インスペクター]) を開きます。次にデータ テーブルのターゲット行をクリックします。プロパティ インスペクターにデータ項目のプロパティが表示されます。ターゲット行をクリックしたときにプロパティ インスペクターが応答しない場合は、他の行をクリックしてから再びターゲット行をクリックします。

    この手法を使用してモデル データ エディターからアクセス可能なすべてのプロパティを同時に確認します (言い換えれば、[設計][計測] および [コード] ビューで利用可能な列を合わせたものです)。

  • モデル内でプロパティ インスペクターを開きます。次にデータ テーブルのターゲット行で、一番左の列のセル (アイコン) をダブルクリックします。モデルで強調表示されたブロックまたは信号を選択します。

    この手法を使用して、モデル データ エディターからアクセスできないプロパティを含むすべてのプロパティを調べます。

モデル データ エディターからブロック線図への移動

モデル データ エディターのデータ項目からそのデータ項目を所有するブロック線図内のブロックに移動するには、一番左の列のアイコンをダブルクリックします。すると Simulink エディターは関連付けられたブロックにフォーカスを移します。この手法を使用して、[スコープの変更] を選択したときにブロックに移動し、現在のシステムの下のサブシステムの内容を表示します。

データ テーブルの列

モデル データ エディターにおける列の目的に関する情報については、次の表を参照してください。

列名目的と詳細
Source

データ項目を定義するブロックの名前を表示します。信号の場合、信号を生成するブロック端子の番号も表示します。

ワークスペース変数の場合、その変数を含むワークスペースまたはデータ ディクショナリの名前を表示します。

[信号名] または [名前]

信号、状態またはデータ ストアの名前を設定します。信号の命名の詳細については、信号名とラベルを参照してください。

パラメーターの場合、各パラメーターのプログラム上の名前を表示します。

ワークスペース変数の場合、変数の名前を設定します。

Data Type信号のデータ型の制御およびブロック パラメーターのデータ型の制御
Min および Max信号範囲およびブロック パラメーターの最小値と最大値の指定
Dimensions信号の次元
Complexityデータ項目の実数/複素数を設定します。
Sample Timeサンプル時間とは
UnitSimulink モデルでの単位の指定
Test Pointテスト ポイント
Log Dataシミュレーション データ インスペクターを使用したモデル設計の反復処理
Resolve[信号プロパティ] ダイアログ ボックスの [信号名を Simulink の信号オブジェクトに関連付ける] チェック ボックスや、状態およびデータ ストアのブロック ダイアログ ボックスの同様のチェック ボックスに対応します。信号オブジェクトの使用を参照してください。
Storage Class

個別の信号、状態、およびパラメーター データ要素へのストレージ クラスの適用 (Simulink Coder)

作成するパッケージからカスタム ストレージ クラスを適用するには、Apply Storage Class from Specific Package to Signal, State, or Data Store Memory Block Using the Model Data Editor (Embedded Coder)を参照してください。

Header File

Definition File

Get Function

Set Function

Struct Name

[ストレージ クラス] で選択する、カスタム ストレージ クラスのカスタム属性を設定します。Apply Built-In and Customized Storage Classes to Data Elements (Embedded Coder)を参照してください。

共有Data Store Memory ブロックの [モデル インスタンス間で共有する] パラメーターに対応します。Data Store Memory を参照してください。
Initial Value状態またはデータ ストアの初期値を設定します。信号値の初期化を参照してください。
Valueブロック パラメーター値の設定
Argumentモデル ワークスペース内の変数をモデル引数として設定します。再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。
Path

モデル内のブロックの位置を示し、Simulink エディター内のブロックへのリンクを提供します。[スコープの変更] ボタンをクリックすると表示されます。

データ テーブルの 1 つのセルに対する 2 つのエントリ

セルに 2 つのエントリが含まれる場合 ([データ型] 列など)、セルの右側のエントリは "コンパイルされた情報" を示します。コンパイルされた情報は、データ項目がシミュレーションで使用する値を示します。

たとえば、モデル内のほとんどの信号の既定のデータ型設定は [継承: 内部ルールによる継承] に設定されます。この設定ではブロック線図を更新した後に、Simulink によって、信号に対して single などの特定のデータ型がシミュレーションで使用するために選択されます。モデル データ エディターの [Data Type] 列のセルには、左側に Inherit: Inherit via internal rule、右側に single が表示されます。

モデル データ エディターの制限

  • モデル データ エディターを使用して以下の属性にアクセスすることはできません。

    • パラメーター値以外の調整可能なマスク パラメーターの任意の設定。一部の組み込みブロックはマスクされた状態で、調整可能なマスク パラメーターをもちます。

    • 調整不可能なマスク パラメーターの任意の設定。一部の組み込みブロックはマスクされた状態で、調整不可能なマスク パラメーターをもちます。

    • Simscape™ ブロックのパラメーターの任意の設定。

    • 参照モデル内のデータ項目の任意の設定。代わりに、モデル データ エディターを参照モデルで開きます。

    • ベース ワークスペース、モデル ワークスペース、データ ディクショナリで定義されていない変数の任意の設定。たとえば、マスク初期化コードで作成された変数の属性にはアクセスできません。

    • Simulink.LookupTable オブジェクトおよび Simulink.Breakpoint オブジェクトの設計属性。ただし、プロパティ インスペクターを開いてオブジェクトに対応する行をクリックし、プロパティ インスペクターを使用してオブジェクトのプロパティを設定できます。

      またはモデル データ エディターで一番左の列のアイコンをダブルクリックしてモデル エクスプローラーを開き、これを使用してオブジェクトのプロパティを設定します。

    • [パラメーター] タブの Constant ブロックのデータ型、最小値、最大値。代わりに [信号] タブを使用します。

    モデル データ エディターでアクセスできない一部の設定については、代わりにプロパティ インスペクターを使用できます (Simulink のブロックのパラメーターとプロパティを参照)。インスペクターを開き、ターゲットのデータ項目をモデル データ エディターではなくモデルで選択します。マスク パラメーターについては、マスクの基礎の説明に従ってマスク ダイアログ ボックスまたはマスク エディターを使用します。

  • モデル データ エディターは Stateflow® データは表示しません。ただし、モデル データ エディターは Stateflow チャート内で定義した Simulink 関数のデータを表示します。

    チャート内で Stateflow データ、イベント、メッセージを管理する場合の詳細については、[シンボル] ウィンドウでのデータ、イベントおよびメッセージの管理 (Stateflow)を参照してください。

  • モデル データ エディターを使用しているときに、信号のストレージ クラスを指定して信号名を指定しなかった場合、信号名が生成されます。生成された名前は信号を生成するブロックから派生した名前になります。ブロックの名前の一部に非 ASCII 値が含まれる場合または無効な C の変数名が含まれる場合、ブロック名の中の ASCII 値のみを使用して信号名が生成されます。2 つの ASCII ブロック名が一意でない場合、この問題によってコード生成中に信号名の競合が発生します。

  • [パラメーター] タブで、以下の変数は使用できません。

    • 調整不可のブロック パラメーターで使用されている変数。Gain ブロックまたは Constant ブロックの Sample time の最小および最大パラメーターなどです。

    • バリアント制御変数

    • シンボリック次元に使用される変数

関連するトピック