Main Content

ブロック線形化のトラブルシューティング

線形化アドバイザーのクエリによって Simulink® モデルにおける線形化の結果で関心のあるブロックを特定した後、個々のブロック線形化のトラブルシューティングを行うことができます。線形化アドバイザーのクエリおよびブロック診断情報の表示の詳細については、一般的な線形化問題の特定と修正を参照してください。

コマンド ラインで BlockDiagnostic オブジェクトを使用して個々のブロック線形化をトラブルシューティングすることもできます。例については、コマンド ラインを使用した線形化の結果のトラブルシューティングを参照してください。

モデル線形化器[アドバイザー] タブに、以下のブロック線形化の詳しい診断情報が表示されます。

  • 対応するすべての診断メッセージと線形化の概要表を示す診断概要。

    Diagnostic summary showing two diagnostic messages and the block linearization information table. The table contains four columns, from left to right: Block Path, Is On Path, Contributes to Linearization, Linearization Method.

  • ブロックの線形化の値。

    Block linearization value shown as a state-space system.

  • ブロック操作点。ブロックが線形化された状態値および入力値。

    Operating point information shown in two tables, each with two columns. The top table lists block states and their corresponding operating point value. The bottom table shows lists the block input ports and their corresponding operating point values.

この情報をもとに潜在的な線形化の問題を診断することができます。

診断メッセージ

線形化診断メッセージは、線形化の一般的な問題に対応するプロパティまたは線形化をもつブロックを示します。診断メッセージで特定された線形化問題の修正は、線形化のトラブルシューティングにおける最初のステップとして良い方法です。

診断メッセージが生成されるブロック構成の例には次のようなものがあります。

  • 事前定義された厳密な線形化がなく、非浮動小数点信号または状態をもつブロック。これらのブロックはゼロに線形化し、診断メッセージが生成されます。

  • 不連続点近傍の操作点で線形化される不連続のブロック。そのようなブロックが線形化中にゲインとして扱われない場合、ブロックの線形化に関する診断メッセージが生成されます。

  • ゼロに線形化する入力/出力ペアが少なくとも 1 つあるため、モデル全体の線形化にゼロの入力/出力ペアが生じるようなブロック。入力信号が変化しても出力値に対応する変化が見られない場合、線形化はゼロの入力/出力ペアをもちます。

  • 定義済みの正確な線形化をもたず、数値摂動法をサポートしないため、線形化がサポートされないブロック。

一部の診断メッセージでは、メッセージの線形化問題に対する推奨の解決法が示されます。たとえば、入力信号が Saturation ブロックの飽和制限外にある場合、ブロックの診断メッセージは線形化中にブロックをゲインとして扱うように推奨します。

線形化の概要

線形化の概要表にはブロック線形化の次のプロパティが表示されます。

  • ブロック パス — Simulink モデルでのブロックの位置。モデルでブロックを強調表示するには、ブロック パスをクリックします。

  • パス上 — ブロックが線形化のパス上にあるかどうか、つまりこのブロックを通じて少なくとも 1 つの線形化入力が少なくとも 1 つの線形化出力に接続されているかどうかを示すフラグ。線形化パス上にあることが予想されるブロックが実際にはパス上にない場合、モデルの解析ポイントの構成をチェックしてください。配置が正しくない線形化 I/O やループ開始点のためにブロックが線形化パスから除外されている可能性があります。同様に、無効な解析ポイントを配置すると、線形化パスに予期せぬブロックが追加されることがあります。

  • 線形化に寄与 — ブロックがモデル全体の線形化に数値的に寄与するかどうかを示すフラグ。ブロックが予想に反して線形化の結果に寄与しない場合、そのブロックおよび線形化パスの同じ分岐にある他のブロックの線形化を調べます。たとえば、線形化パス上の隣接するブロックがゼロに線形化する場合、それ以外は正しく線形化されるブロックが、線形化の結果から除外されることがあります。

  • 線形化の方法 — モデルの線形化に使用される方法。次のいずれかとして指定します。

    • 厳密 — ブロックの定義された解析ヤコビアンを使用してブロックの線形化が計算されます。

    • 摂動 — ブロックは解析ヤコビアンをもちません。代わりに、ブロックの入力と状態を数値的に摂動させることでブロックが線形化されます。不連続性をもつブロックや非浮動小数点の入力信号をもつブロックなど、数値的に摂動されたブロックの一部はゼロに線形化する場合があります。

    • ブロック置換 — カスタムのブロック線形化を使用してブロック線形化が指定されます。指定されたブロック線形化がアプリケーションに適しているかどうかチェックすることを検討してください。詳細については、MATLAB の式を使用したブロック線形化の指定および関数を使用したブロック線形化の D 行列システムの指定を参照してください。

    • Simscape ネットワーク — ブロック診断がモデル内の Simscape™ ネットワークに対応します。Simscape ネットワークの線形化とトラブルシューティングの詳細については、Simscape ネットワークの線形化を参照してください。

    • サポートなし — ブロックが解析ヤコビアンをもたず、数値摂動法もサポートしません。このブロックの線形化はカスタムの線形化を使用して指定します。詳細については、MATLAB の式を使用したブロック線形化の指定および関数を使用したブロック線形化の D 行列システムの指定を参照してください。

ブロックの線形化

ブロックが予想どおりに線形化したかどうかを検証するには、ブロック線形化の方程式をチェックします。既定では、線形化が状態空間形式で表示されます。[線形化の表示形式] ドロップダウン リストから異なる表示形式を選択できます。

ゼロに線形化するブロックなど、予期せぬブロック線形化の原因を診断するには、以下のことを考慮します。

  • すべての対応する診断メッセージ。これらのメッセージによって、不正確な線形化の一般的な原因が明らかになり、可能性のある解決法が提示されることがあります。

  • ブロックの操作点。たとえば、Saturation ブロックへの入力がそのブロックの飽和制限外にある場合、ブロックはゼロに線形化します。

  • ブロック パラメーター。たとえば、非浮動小数点の入力や状態を使用するよう構成されているブロックに厳密な線形化が事前定義されていない場合、ブロックはゼロに線形化します。

ブロックの操作点

ブロックが予想どおりに線形化しない場合は、ブロックが線形化される操作点をチェックします。操作点は、入力値と状態値で構成されています。ブロックの操作点が正しくない場合は、全体的なモデルの操作点が正しいかどうかをチェックしてください。詳細については、操作点の確認を参照してください。

ブロック操作点の入力信号値が正しくない場合は、その信号から上流のブロックの線形化を調べます。たとえば、2 つの入力をもつ Product ブロックについて考えます。このブロックの操作点は 2 つの入力信号値で構成されます。このどちらかの入力値がゼロである場合、もう片方の入力から出力へのパスはゼロに線形化します。

モデルを線形化した操作点において Product ブロックが線形化の結果に寄与することが予想される場合、ゼロの入力信号を生成するブロックの線形化をチェックしてください。複雑なモデルの場合、無効な入力信号の原因が 1 つの上流ブロック以外にもある可能性があります。

問題が生じる一般的なブロック

一部の Simulink ブロックは、良好な線形化が得られないプロパティをもっています。通常の場合、そのようなブロックはゼロに線形化するか、ブロックに線形化の診断メッセージが関連付けられています。したがって、線形化アドバイザーは [アドバイザー] タブが最初に開く時点でこれらを問題が生じる可能性のあるブロックとして特定します。

次の表は、一般的に線形化の問題の原因となるブロックと、各ブロックに対して取りうる改善策を示しています。これらのすべてのブロックに対応する診断メッセージがあります。

ブロック タイプ線形化の問題改善策
線形化をサポートしないブロック一部のブロックが定義された解析ヤコビアンなしで実装され、数値摂動法をサポートしていません。カスタムのブロック線形化を指定します。例については、MATLAB の式を使用したブロック線形化の指定関数を使用したブロック線形化の D 行列システムの指定を参照してください。
不連続性をもつブロック一般に不連続性のあるブロックは、操作点が不連続点の近傍にある場合に良好な線形化結果が得られません。
イベントベースのサブシステム (Triggered Subsystem)イベントベースのサブシステムは線形化中にトリガーされないため、その中にあるブロックはゼロに線形化します。可能な場合は、lumped average モデルとして、または周期 Function-Call Subsystem として、カスタムのイベントベースのサブシステムの線形化を指定してください。詳細については、イベントベースのサブシステムの線形化 (外部でスケジュールされたサブシステム)を参照してください。
非浮動小数点信号をもつブロック非浮動小数点の入力信号または状態をもち、定義された解析ヤコビアンをもたないブロックは、ゼロに線形化します。非浮動小数点データ型を倍精度または単精度のいずれかに変換します。詳細については、非浮動小数点の信号または状態をもつブロックの線形化を参照してください。
定義された解析ヤコビアンではなく数値摂動を使用して線形化されるブロックS-Function、MATLAB Function ブロック、ルックアップ テーブルなど、不連続地域の近くにあるブロックは、数値摂動のレベルの影響を受けます。摂動法のレベルが小さすぎると、ブロックはゼロに線形化されます。ブロックの数値摂動のレベルを変更します。詳細については、線形化時に摂動するブロックの摂動レベルの変更を参照してください。

関連するトピック