Main Content

モデル線形化器での線形化結果のトラブルシューティング

この例では、モデル線形化器アプリ内で線形化アドバイザーを使用して、Simulink® モデルの線形化を対話的にデバッグする方法を説明します。線形化の結果をプログラムでトラブルシューティングすることもできます。詳細については、コマンド ラインを使用した線形化の結果のトラブルシューティングを参照してください。

モデルを開く

この例では、振子 Simulink モデルを使用して、線形化のトラブルシューティングを説明します。

モデルを開きます。

openExample("scdpendulum")

scdpendulum model screenshot, which contains a pendulum subsystem. Th output of the pendulum subsystem connected to an angle_wrap subsystem.

振子角度の初期条件は、垂直の不安定な平衡状態 0 度から反時計回りに 90 度です。振子角速度の初期条件は 0 deg/s です。この状態を維持するための定格トルクは -49.05 N m です。この構成はモデルの初期条件として保存されています。

モデル線形化器を開いてモデルを線形化する

モデル線形化器を開くには、Simulink モデル ウィンドウの [アプリ] タブで [モデル線形化器] をクリックします。

モデルの初期条件でモデルを線形化するには、モデル線形化器[線形解析] タブで [ボード線図] をクリックします。モデルが線形化され、その周波数応答がプロットされます。

Model Linearizer app showing the Bode Plot 1 document, which does not contain any plotted data.

ボード線図から、システムはゼロに線形化され、トルクは角度や角速度に影響を与えないことがわかります。その理由を調べるには、線形化アドバイザーを使用することができます。

アドバイザーを有効にした状態でのモデルの線形化

モデルを再度線形化してアドバイザーを生成するには、[線形化アドバイザー] を選択してから [ボード線図 1] をクリックします。

Linear Analysis tab showing the selected Linearization Advisor parameter in the Options section and Bode Plot 1 highlighted on the left side of the Linearize gallery.

モデルが線形化されて linsys2_advisor ドキュメントが作成され、[アドバイザー] タブが開きます。

Advisor document for linsys2. The document contains a table of blocks that are potentially problematic for linearization.

線形化パスの強調表示

現在の線形化の線形化パスを表示するには、[アドバイザー] タブで [線形化パスの強調] をクリックします。Simulink モデルで、ブロックが次のように強調表示されます。

  • 青はモデルの線形化に数値的な影響を与えます。

  • 赤は線形化パス上にありますが、現在の操作点とブロック パラメーターではモデルの線形化に影響しません。

便宜上、振子サブシステムの下にあるブロックのみが表示されています。

Pendulum subsystem with linearization path highlighted. All elements are highlighted in red.

Linearization path dialog box, which the model highlighting colors.

この場合はモデルがゼロに線形化されているため、線形化に寄与するブロックはありません。

アドバイザーを使用した問題が生じる可能性のあるブロックの調査

linsys2_advisor ドキュメントには、線形化で問題が生じる可能性のあるブロックの一覧表が含まれています。特定のブロック線形化に関する詳細を表示するには、表の対応する行の [ブロック情報] をクリックします。

In the advisor document, the rightmost column of the block information table contains Block Info links for more detailed block diagnostics.

この場合、1 つの Saturation ブロックと 2 つの Trigonometric Function ブロックの合計 3 つのブロックがアドバイザーによって報告されています。診断されている Saturation ブロックを最初に調べます。そのためには、表の最初の行にある [ブロック情報] をクリックします。

Advisor document highlighting the Saturation block in the tree list on the left. On the right, the document shows the diagnostic information for this block.

Saturation ブロックには 2 つの診断メッセージがあります。最初のメッセージは、入力操作点が -49.05 なので、ブロックがその飽和の下限 -49 の外で線形化されていることを示します。このメッセージには、ブロックをゲインとして線形化できることも述べられています。こうすると入力操作点に関係なく、ブロックは 1 として線形化されます。これを行うには、まず [ブロックをゲインとして線形化] をクリックして、ブロック ダイアログ ボックスの対応するパラメーターを強調表示します。その後、[線形化時にゲインとして扱う] パラメーターを選択します。

Saturation block parameters showing the Treat as gain when linearizing parameter highlighted and selected.

2 番目のメッセージは、このブロックの線形化によってモデルがゼロに線形化されることを示しています。[線形化] セクションからわかるように、ブロックはゼロに線形化されます。したがって、ブロックの線形化の変更は、非ゼロのモデル線形化を取得するための最初のステップとして良い方法です。

モデルの再線形化

Saturation ブロックをゲインとして扱うよう設定した後、モデルを再度線形化します。ここでは 2 つの Trigonometric Function ブロックに関する診断は無視することにします。

モデルを再線形化するには、[線形解析] タブで [ボード線図 1] をクリックします。[ボード線図 1] ドキュメントが更新されて、linsys3 の非ゼロの応答が表示されます。

Bode Plot 1 document showing the frequency response for linearization result linsys3.

対応する linsys_advisor3 ドキュメントには Saturation ブロックがリストされなくなります。ただし、2 つの Trigonometric Function ブロックは引き続き表示されています。

Advisor document for linsys3. The saturation block is no longer present in the block information table.

線形化パスを強調表示します。

Highlighted linearization path, with contributing blocks now highlighted in blue.

この時点では、リストされた Trigonometric Function ブロックを通過するパスを除いて、大半のブロックがモデルの線形化に寄与しています。

これらのブロックが線形化に寄与しない理由を調べるため、linsys3_advisor ドキュメントからこれらのブロックに移動します。たとえば、表の 2 行目にある [ブロック情報] をクリックします。

Advisor document highlighting the Trigonometric Function block in the tree list on the left. On the right, the document shows the diagnostic information for this block.

この Trigonometric Function ブロックでは線形化がゼロであり、入力操作点は π/2 = 1.5708 です。

入力について関数 sin の 1 次導関数を取ることにより、ブロックの線形化を解析的に求めることができます。

usin(u)=cos(u)

したがって、u=π/2 で評価される場合のブロックの線形化はゼロになります。入力のソースは 2 次積分器の最初の出力で、これは状態 theta に依存します。よって、このブロックは θ=π/2 + kπ の場合にゼロに線形化します。ここで k は整数です。angle_wrap サブシステムのもう片方の Trigonometric Function にも同じ条件が適用されます。

これらのブロックでゼロ線形化が予想されていなければ、操作点の状態 theta を変更して、モデルを再線形化することができます。

プリビルドのアドバイザー クエリの実行

線形化アドバイザーにはブロック診断をフィルター処理する一連のプリビルド クエリが用意されています。たとえば、[線形化のアドバイス] クエリは、アドバイザーの最初の作成時に、パス上に次のいずれかの条件を満たすブロックを含む場合に実行される既定のクエリです。

  • ブロック線形化に関する診断メッセージがある。

  • ゼロに線形化する。

  • 代替の線形化をもつ。

他のプリビルド クエリを実行するには、[アドバイザー] タブの [クエリ] ギャラリーにあるクエリをクリックします。たとえば、[パス上の零点と I/O のペア] をクリックします。

Advisor tab with the Zero I/O Pair on Path query second from the right in the Queries gallery. In the document, the table shows a table with three blocks that match the query.

このクエリは、いずれの入力チャネルからも到達できない出力チャネルがあるか、またはいずれの出力チャネルにも影響しない入力チャネルがある線形化をもつブロックを返します。たとえば、表の 2 番目のブロックは atan2 として構成されている Trigonometric Function ブロックです。このブロックの最初の入力は、唯一の出力に到達できません。

カスタム クエリの作成と実行

線形化アドバイザーにはカスタムのクエリを作成するためのクエリ ビルダーも用意されています。これらのクエリは、モデルで特定の条件に一致するブロックを検出するために使用できます。たとえば、数値的に摂動されたすべての SISO ブロックを見つけるには、まずクエリ ビルダーを開きます。これを行うには、[アドバイザー] タブで [新しいクエリ] をクリックします。

[クエリ ビルダー] ダイアログ ボックスで次を行います。

  1. [クエリ名]sisopert に指定します。

  2. ドロップダウン リストで ['Ny' 個の出力あり] を選択し、[出力] ボックスで 1 を指定します。

  3. クエリに別のコンポーネントを追加するには、[クエリに追加] をクリックします。

  4. 2 番目のドロップダウン リストで ['Nu' 個の入力あり] を選択し、[入力] ボックスで 1 を指定します。

  5. [クエリに追加] をクリックします。

  6. 3 番目のドロップダウン リストで [摂動] を選択します。

Query Builder dialog box showing the configured sisopert query, which contains three criteria.

[クエリの実行] をクリックします。

指定のクエリ条件に一致するブロックが linsys3_advisor ドキュメントに表示され、sisopert クエリが [クエリ] ギャラリーに追加されます。

Advisor document showing the results for the sisopert custom query. For this system, three blocks match the search criteria.

カスタム クエリの構成と実行の詳細については、線形化の結果で特定の条件に一致するブロックの検出を参照してください。

アドバイザーのエクスポートと MATLAB スクリプトの生成

線形化アドバイザーのコマンド ライン関数を使用してモデルの線形化をデバッグすることもできます。そのためには、まずアドバイザー オブジェクトを MATLAB® にエクスポートするか、MATLAB スクリプトを生成してアプリから解析を再現します。

コマンド ラインでの線形化のデバッグに関する詳細については、コマンド ラインを使用した線形化の結果のトラブルシューティングを参照してください。

アドバイザーのエクスポート

アドバイザー オブジェクトを MATLAB ワークスペースにエクスポートするには、[アドバイザー] タブの [エクスポート] をクリックします。次に [アドバイザーのエクスポート] ダイアログ ボックスで、エクスポートするアドバイザーを 1 つ以上選択します。たとえば、linsys3_advisor を選択します。

Export Advisors dialog box with a table showing two advisor objects. The second advisor is selected in the Export column on the left.

[エクスポート形式] 列で、エクスポートしたアドバイザー オブジェクトのワークスペース変数名を指定できます。

[エクスポート] をクリックします。

スクリプトの生成

線形化、アドバイザーの抽出、カスタム クエリの生成、およびクエリの実行を自動化する MATLAB スクリプトを生成できます。このスクリプトを生成するには、[アドバイザー] タブの [エクスポート][スクリプトの生成] を選択します。

On the fare-right side of the Advisor tab, the Export split button is selected and the cursor is over the second list item, Generate Script.

参考

アプリ

関連するトピック