主要内容

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

ノーマルモードでの複数の参照モデルインスタンスのシミュレーション

ノーマルモードの可視性

ノーマルモードの参照モデルのインスタンスはすべてシミュレーションの一部です。ただし,金宝app仿真软件®ソフトウェアがモデルウィンドウに表示するインスタンスは1つだけです。ノーマルモードの可視性には范围ブロックとデータ端子の値の表示が含まれます。

ノーマルモードの可視性を設定するには,最上位モデルの[シミュレーション]タブにある[準備]セクションの(信号の監視]で,[ノーマルモードの可視性)を選択します。この設定で、Simulink ソフトウェアに表示されるインスタンスが決まります。参照モデルの特定のインスタンスについてノーマル モードの可視性を指定しない場合、Simulink ソフトウェアは参照モデルのインスタンスを 1 つ選択して表示します。

シミュレーションの後,ノーマルモードの可視性のない模型ブロックから参照モデルを開こうとすると,金宝app仿真软件ソフトウェアは警告を表示します。

ノーマルモードで参照モデルのどのインスタンスが表示されるかを制御し,シミュレーションが適切に実行されるようにモデルを設定するには,ノーマルモードの可視性をもつインスタンスの指定を参照してください。

参照モデルの複数のインスタンスを含むモデルの調査

sldemo_mdlref_basicモデルには3つの模型ブロック(CounterACounterBCounterC)があり,いずれもsldemo_mdlref_counterモデルを参照しています。ブロック線図を更新すると、sldemo_mdlref_basicに3つの模型ブロックに別々のアイコンが表示されます。

模型ブロック 角アイコン シミュレーションモードとノーマルモードの可視性設定
CounterA ノーマルモード,ノーマルモードの可視性は有効
CounterB 灰色の角 ノーマルモード,ノーマルモードの可視性は無効
CounterC 黒い角 アクセラレータモード(ノーマルモードの可視性は適用できない)

sldemo_mdlref_basicを開いてシミュレーションを実行します。CounterA模型ブロックをダブルクリックしてScopeAブロックを開きます。

このScopeAブロックは,ノーマルモードの可視性が有効になっているCounterA模型ブロックのシミュレーション結果を反映します。

CounterB模型ブロックをダブルクリックしてsldemo_mdlref_counterモデルを開こうとした場合でも,sldemo_mdlref_counterScopeAにはノーマルモードの可視性が有効になっているCounterA模型ブロックの結果が表示されます。

sldemo_mdlref_basicの詳細については,モデル参照によるコンポーネントベースのモデル化を参照してください。

ノーマルモードで参照モデルの複数のインスタンスを含むモデルの階層構造に依存関係アナライザーを使用する例については,モデルリファレンス構造の可視化を参照してください。

参照モデルの複数のインスタンスを含むモデルの設定

  1. (最上位モデルごとに可能なインスタンスの総数)パラメーターを[複数]に設定します。

  2. ノーマルモードを使用するように参照モデルの各インスタンスを設定します。インスタンスを参照する模型ブロックの[ブロックパラメーター]ダイアログボックスで,[シミュレーションモード]パラメーターを[ノーマル]に設定します。その模型ブロックの階層の上位モデルがすべてノーマルモードになっていることを確認します。

    ノーマルモードの模型ブロックのアイコンの角は白(空白)です。そのブロック線図を更新した後やモデルのシミュレーションを行った後は角が灰色に変わります。

  3. 必要に応じてノーマルモードの参照モデルの複数のインスタンスを使用するように,モデルが使用するs函数を変更します。詳細については,金宝app支持使用处于正常模式的引用模型的多个实例を参照してください。

既定の設定では,金宝app仿真软件はインスタンスの1つにノーマルモードの可視性を割り当てます。構成手順を完了した後で,既定以外のインスタンスがノーマルモードの可視性をもつように指定できます。

参照モデルでの再利用可能なアルゴリズムのカプセル化の詳細については,モデルの再利用を参照してください。

ノーマルモードの可視性をもつインスタンスの識別

どのインスタンスが現在ノーマルモードの可視性をもっているのか識別するには次を行います。

  1. ノーマルモードの可視性の設定を適用するために,ブロック線図を更新し,モデルに他の変更を行わないようにします。

  2. 対象のモデルを参照する模型ブロックを確認します。角が白い模型ブロックはノーマルモードの可視性が有効になっています。モデルの階層構造全体を移動して確認します。

モデルの編集中やコンパイル中には,ブロック線図を更新した後でModelReferenceNormalModeVisibilityBlockPathパラメーターを使用します。結果は,ノーマルモードの可視性が有効になっているモデルを参照している模型ブロックのブロックパスを示す金宝app仿真软件。BlockPathオブジェクトです。以下に例を示します。

get_param (“sldemo_mdlref_basic”...“ModelReferenceNormalModeVisibilityBlockPath”
ans =仿金宝app真软件。BlockPathPackage: Simulink Block Path: 'sldemo_mdlref_basic/CounterA'

シミュレーション中またはコンパイル済み状態の最上位モデルに対しては,CompiledModelBlockInstancesBlockPathパラメーターを使用できます。以下に例を示します。

一个= get_param (“sldemo_mdlref_depgraph”...“CompiledModelBlockInstancesBlockPath”
a = sldemo_mdlref_F2C: [1x1 金宝appSimulink. txt]BlockPath]sldemo_mdlref_heater: [1x1 Simulink.BlockPath] sldemo_mdlref_outdoor_temp: [1x1 Simulink.BlockPath]

ノーマルモードの可視性を指定する金宝app仿真软件。BlockPathオブジェクトを作成する場合,以下が適用されます。

  • 最初の文字ベクトルは,モデル参照階層の最上位モデルにある1つのブロックを示していなければなりません。

  • 各文字ベクトルは,ノーマルモードにある模型ブロックを示していなければなりません。

  • バリアントモデルまたはバリアントサブシステムを示す文字ベクトルは,アクティブなバリアントを参照していなければなりません。

ノーマルモードの可視性をもつインスタンスの指定

メモ

シミュレーション中はノーマルモードの可視性を変更できません。

現在ノーマルモードの可視性をもつインスタンス以外に,参照モデルの別のインスタンスに対してノーマルモードの可視性を有効にするには,次を行います。

  1. 最上位モデルに移動します。

  2. [シミュレーション]タブの[準備]セクションで,(信号の監視]の下で[ノーマルモードの可視性)を選択します。

    (模型ブロックのノーマルモードの可視性]ダイアログボックスが開きます。たとえば,sldemo_mdlref_basicモデルのダイアログボックスは,階層ペインが拡張されると次のように表示されます。

    モデル階層ペインには,そのダイアログボックスを呼び出したモデルのモデル階層の一部が表示されます。階層はノーマルモードではない最初の模型ブロックで止まります。モデル階層ペインには参照保護されているモデルの模型ブロックは表示されません。

    ダイアログボックスには最上位モデルのモデルの階層構造全体が表示されます。参照モデルのノーマルモードインスタンスには,チェックボックスが付いています。

    ヒント

    (模型ブロックのノーマルモードの可視性]ダイアログボックスの[モデルの階層構造]ペインに現在のモデルの階層構造が反映されるようにするには,[更新]をクリックします。

  3. ノーマルモードの可視性をオンにするモデルのインスタンスを選択します。

    金宝app仿真软件によってそのモデルのすべての上位モデルがオンになり,モデルの他のインスタンスはすべてオフになります。モデルをオフにすると,金宝app仿真软件によってそのモデルの子モデルがすべてオフになります。

    ヒント

    (模型ブロックのノーマルモードの可視性]ダイアログボックスからモデルを開くには,[モデルの階層構造]ペインでモデルを右クリックして[開く]をクリックします。

  4. ノーマルモードの可視性の設定を適用するには,モデルの階層構造の最上位モデルのシミュレーションを実行します。

(模型ブロックのノーマルモードの可視性]ダイアログボックスを使用するのとは別の方法として,MATLAB®コマンドラインでModelBlockNormalModeVisibilityパラメーターを使用できます。次のいずれかの値を入力として指定できます。

  • 金宝app仿真软件。BlockPathオブジェクトの配列。以下に例を示します。

    bp1 =仿金宝app真软件。BlockPath ({“mVisibility_top /模式”...“mVisibility_mid_A /模式”});bp2 =仿金宝app真软件。BlockPath ({“mVisibility_top / Model1”...“mVisibility_mid_B / Model1”});BPS = [bp1, bp2];set_param (topMdl“ModelBlockNormalModeVisibility”个基点);
  • 文字ベクトルの细胞配列の细胞配列。文字ベクトルは個々のブロックとモデルのパスです。次の例は,オブジェクト配列の例と同じ効果があります。

    p1 = {“mVisibility_top /模式”“mVisibility_mid_A /模式”};p2 = {“mVisibility_top / Model1”“mVisibility_mid_B / Model1”};set_param (topMdl“ModelBlockNormalModeVisibility”, {p1, p2});
  • 空の配列。ノーマルモードの可視性をもつインスタンスについての仿真金宝app软件の既定の選択を使用するように指定します。以下に例を示します。

    set_param (topMdl“ModelBlockNormalModeVisibility”[]);

    空の配列を使用すると,[模型ブロックのノーマルモードの可視性]ダイアログボックスですべてのチェックボックスをクリアするのと同じ結果になります。

関連する例

詳細