Main Content

Simulink.BlockDiagram.getAlgebraicLoops

モデル内の代数ループを特定および解析する

説明

l = Simulink.BlockDiagram.getAlgebraicLoops(mdl) はモデル mdl 内の代数ループを特定し、代数ループ ビューアーを開いて、モデル内の代数ループを強調表示し、モデル内のすべての代数ループに関する情報を 1 つ以上の AlgebraicLoop オブジェクトとして返します。

代数ループ ビューアーを使用して、モデル内でどの代数ループを強調表示するかを制御し、次のような代数ループに関する情報を表示できます。

  • モデル内の代数ループの数

  • 各代数ループが真なのか疑似なのか

  • 各代数ループのループ ID

[l,h] = Simulink.BlockDiagram.getAlgebraicLoops(mdl) は、代数ループ ビューアーの Figure ウィンドウのハンドルを返します。

すべて折りたたむ

モデル ex_sldemo_hydcyl を開きます。

mdl = "ex_sldemo_hydcyl";
open_system(mdl)

The model ex_sldemo_hydcyl.

モデル内で代数ループが検出されたときに代数ループ診断が警告を出すように構成されているか、診断を出さないように構成されているかを確認します。エラーを出すようにモデルを構成した場合、エラーが発生すると、モデルのコンパイルが停止します。

モデルで構成されている診断動作を確認するには、次のようにします。

  1. [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[モデル化] タブの [設定] で、[モデル設定] をクリックします。

  2. [診断] ペインを選択します。

  3. [代数ループ] パラメーター値が none または warning になっていることを確認します。

あるいは、関数 set_param を使用して、パラメーター値を指定します。

set_param(mdl,"AlgebraicLoopMsg","none");

モデル内の代数ループを検出して強調表示できるのは、モデルをコンパイルした後のみです。

関数 set_param を使用して、モデルをコンパイルするコマンドを実行します。

set_param(mdl,"SimulationCommand","update")

関数 Simulink.BlockDiagram.getAlgebraicLoops を使用して、モデル内の代数ループを検出して強調表示します。代数ループ ビューアーが開き、モデルに代数ループが 1 つあることが示されます。

algLoops = Simulink.BlockDiagram.getAlgebraicLoops(mdl);

Figure Algebraic Loops in 'ex_sldemo_hydcyl' contains an object of type uigridlayout.

代数ループはブロック線図で強調表示されます。

The model ex_sldemo_hydcyl has one algebraic loop highlighted in yellow.

関数 Simulink.BlockDiagram.getAlgebraicLoops は、代数ループに関する情報を AlgebraicLoop オブジェクトとして返します。

algLoops
algLoops = 
  AlgebraicLoop with properties:

                   Model: [1x1 Simulink.BlockDiagram]
                      Id: [0 1]
    VariableBlockHandles: [2x1 double]
            BlockHandles: [9x1 double]
            IsArtificial: 0

入力引数

すべて折りたたむ

代数ループの解析を行うモデル。以下として指定します。

  • モデルの名前を定義する string または文字ベクトル

  • モデル ハンドル

現在のモデルのハンドルを取得するには、関数 bdroot を使用します。

指定したモデルはコンパイル済みでなければなりません。

データ型: char | string

出力引数

すべて折りたたむ

モデル内の代数ループに関する情報。AlgebraicLoop オブジェクト、または AlgebraicLoop オブジェクトの配列として返されます。

AlgebraicLoop オブジェクトには次のプロパティがあります。

  • Model — モデルを表す Simulink.BlockDiagram オブジェクト

  • Id — モデル内の代数ループを一意的に識別する数値配列

  • VariableBlockHandles — ループ内の代数変数に関連付けられたブロックのブロック ハンドルの配列

  • BlockHandles — 代数ループ内のすべてのブロックのブロック ハンドルの配列

  • IsArtificial — 代数ループが疑似かどうかを示す logical 値

代数ループ ビューアーの Figure ウィンドウのハンドル。matlab.ui.Figure ハンドルとして返されます。

代数ループ ビューアーのハンドルを使用すると、プログラムによる代数ループ ビューアーの操作ができます。詳細については、Figure のプロパティを参照してください。

バージョン履歴

R2015a で導入