このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
線形化の結果で特定の条件に一致するブロックの検出
Simulink® モデルを線形化する際、線形化アドバイザーを使用して、線形化の結果で特定の条件に一致するブロックを見つけることができます。次のようなブロックを検出するための検索条件を指定できます。
モデルが予想どおりに線形化されない場合、モデル内で線形化の問題を引き起こしている可能性のあるブロック。線形化アドバイザーを使用した線形化の問題の特定と修正の詳細については、一般的な線形化問題の特定と修正を参照してください。
モデルが予想どおりに線形化された場合であっても、モデルの線形化について詳細を理解するのに役立つブロック。
コマンド ラインで関数 find
を使用して線形化アドバイザーをクエリすることもできます。例については、コマンド ラインを使用した線形化の結果のトラブルシューティングを参照してください。
線形化の結果を検索するには線形化の診断情報が必要です。この情報を収集するには、モデルの線形化を行う前に線形化アドバイザーを有効にしなければなりません。
線形化アドバイザーを有効にするには、モデル線形化器の [線形解析] タブで [線形解析アドバイザー] を選択します。
このオプションを選択してモデルを線形化すると、線形化の結果をトラブルシューティングするための [アドバイザー] タブが開きます。その後、線形化アドバイザーを使用してクエリを実行し、線形化の結果から対象のブロックを見つけることができます。
対象のブロックを検出した後、線形化の診断情報を使用して個々のブロック線形化について調査できます。詳細については、ブロック線形化のトラブルシューティングを参照してください。
組み込みクエリの実行
線形化アドバイザーには線形化の結果を検索するための一連の組み込みクエリが用意されています。これらのクエリは線形化で問題を引き起こす可能性のあるブロックを見つけるのに役立ちます。これらのクエリのいずれかを実行するには、[アドバイザー] タブの [クエリ] セクションでクエリをクリックします。
組み込みクエリ | 検出するブロックの特徴 |
---|---|
線形化のアドバイス | 線形化で問題が生じる可能性がある。このクエリは [アドバイザー] タブが開くときに既定で実行されます。 |
パス上の診断 | 線形化パス上にあり、自らの線形化に関する診断メッセージをもつ。このクエリは [線形化のアドバイス] クエリのサブセットです。 |
パス上の置換 | 線形化パス上にあり、カスタムのブロック線形化が指定されている。このクエリは [線形化のアドバイス] クエリのサブセットです。 |
パス上の零点と I/O のペア | 線形化パス上にあり、ゼロに線形化する入力/出力ペアを少なくとも 1 つもつ。 |
パス上のすべてのブロック | 線形化パス上にある (少なくとも 1 つの線形化入力が少なくとも 1 つの線形化出力にブロックを通じて接続されている)。 |
クエリの作成と実行
線形化アドバイザーにはモデルを検索するための一連の単純なクエリも用意されています。これらのクエリは単独で実行するか、複合クエリを作成するために使用することができます。
単純なクエリ | 検出するブロックの特徴 |
---|---|
すべてのブロック | 線形化モデル内にある。 |
0 に線形化 | ゼロに線形化する。 |
ブロック置換 | カスタムのブロック線形化が指定されている。 |
線形化パス上 | 線形化パス上にある。 |
線形化に寄与 | モデルの線形化結果に数値的に寄与する。 |
厳密 | 定義された正確な線形化を使用して線形化される。 |
摂動 | 数値摂動法を使用して線形化される。 |
診断あり | 自らの線形化に関する診断メッセージをもつ。 |
'BlockType' ブロック | 指定されたタイプである。 |
'Nu' 個の入力あり | 指定された数の入力をもつ。 |
'Nx' 個の状態あり | 指定された数の状態をもつ。 |
'Ny' 個の出力あり | 指定された数の出力をもつ。 |
'Ts' のサンプル時間あり | 指定されたサンプル時間をもつ。 |
零点と I/O のペアあり | ゼロに線形化する入力/出力ペアを少なくとも 1 つもつ。 |
単純なクエリを実行するには、モデル線形化器の [アドバイザー] タブで [新しいクエリ] をクリックします。
[クエリ ビルダー] ダイアログ ボックスでクエリを構成します。たとえば、線形化の結果に数値的に寄与するすべてのブロックを検出するクエリを作成します。
[クエリ名] フィールドで、クエリの名前を
Contributes
に指定します。ドロップダウン リストで
[線形化に寄与]
を選択します。次のクエリのいずれかを選択する場合、対応する検索パラメーターを指定します。
クエリ 検索パラメーター 'BlockType' ブロック
ブロック タイプ — このパラメーターはブロックの blocktype
プロパティに対応します。詳細については、linqueryIsBlockType
を参照してください。'Nu' 個の入力あり
入力 — 正の整数を指定します。 'Nx' 個の状態あり
状態 — 正の整数を指定します。 'Ny' 個の出力あり
出力 — 正の整数を指定します。 'Ts' のサンプル時間あり
サンプル時間 — 非ゼロのスカラーを指定します。連続時間ブロックを検出するには 0
を指定します。クエリを作成して実行するには、[クエリの実行] をクリックします。クエリが実行され、[アドバイザー] タブにモデルの線形化に寄与するブロックのリストが表示されます。
クエリが [クエリ] セクションに追加されます。
[And]、[Or]、および [Not] 論理演算子を使ってクエリを論理的に組み合わせることにより、複合クエリを作成することもできます。単純なクエリ、組み込みクエリ、または他の複合クエリを使用して複合クエリを作成できます。
複合クエリを作成するには、[クエリ ビルダー] ダイアログ ボックスで複数の検索条件を使用してクエリを構成します。たとえば、線形化パス上にあるすべての離散時間ブロックを検出するクエリを作成します。
[クエリ名] フィールドで、クエリの名前を
Discrete on Path
に指定します。線形化パス上にあるブロックを検出するには、ドロップダウン リストで
[線形化パス上]
を選択します。別の検索条件を追加するには [クエリに追加] をクリックします。検索条件に 2 行目が追加されます。既定では [And] 演算を使って検索条件が組み合わされます。
離散時間ブロックを検出するには、まず連続時間ブロックを見つける検索条件を追加します。2 行目のドロップダウン リストから、
['Ts' のサンプル時間あり]
を選択します。[サンプル時間] は既定値の0
のままにします。離散時間ブロックを検出するには、2 行目で [Not] を選択します。
[クエリの実行] をクリックします。
カスタム クエリを作成するたびに、[クエリ ビルダー] ダイアログ ボックスの検索条件ドロップダウン リストにそのクエリが追加されます。これらのカスタム クエリを使用して、さらに複雑なクエリを作成することが可能です。たとえば、線形化パス上にある、数値摂動法を使用して線形化される離散時間ブロックを見つけるには、[And] 演算を使って [Discrete on Path]
カスタム クエリと [Perturbed]
単純クエリを組み合わせるクエリを作成します。