Main Content

代数ループの削除

モデル内の代数ループを削除するには、以下の方法を使用します。

遅延の導入による代数ループの削除

このでループ内の间に遅延を导入すること代数ループループををを削除削除削除削除するする方法方法示し示し示しますます。これ,,,,,,,,,,,,,サブサブサブサブサブサブサブサブサブサブなモデル代数を削除するするするつのつの方法。。

この例に付加されているモデルについて考えます。モデルの atomic サブシステムに起因する代数ループが 2 つあります。

  • Blackbox A->Blackbox B->Blackbox C->Blackbox A

  • Blackbox B->Blackbox C->Blackbox B

simulink®ははは金宝appののをを検知検知ます。。。。。Blackbox A->Blackbox B->Blackbox C->Blackbox A

单位延迟ブロック外部外部外部外部外部ががががわからため外部外部外部外部外部外部外部外部ブロックブロックブロックブロックブロックブロックをを追加追加追加追加ししししててループループを解除解除解除。ますますますますますますますますますますますますますますますますますますますますますますますますますますますますますますあります。

  • 联合国it Delay をBlackbox ABlackbox Cとのに追加する。

  • 联合国it Delay をBlackbox BBlackbox Cとのに追加する。

  • 单位延迟ブロックブロックブロックブロックを追加追加。。。

単位遅延を黑盒A。黑盒cとの间追加

サブシステムBlackbox ABlackbox Cとの間のフィードバック信号に単位遅延を追加した場合、システムには最小数の単位遅延 (1) を導入したことになります。Blackbox Aの前遅延をした场合,Blackbox BBlackbox Cでは現在のタイム ステップのデータが使用されます。

単位遅延を黑盒b黑盒cとの间追加

サブシステムBlackbox BBlackbox Cの間に単位遅延を追加した場合は、Blackbox BBlackbox Cの间ループ解除するます。,信号代数ループを完了するため,Blackbox ABlackbox Cの间ループも解除。。Blackbox Cの前に Unit Delay ブロックを挿入することにより、Blackbox Cは前ステップデータのみを使用处理するようになり。

両方のループに単位追加追加

ここに示す例では、Unit Delay ブロックを挿入して両方の代数ループを解除します。このモデルでは、BlackBox_A と BlackBox_B では、前のタイム ステップのデータが使用されます。BlackBox_C では、現在のタイム ステップのデータが使用されます。

代数ループの手動解法

金宝app®が解を求めることのできない代数ループがあると、エラーが報告されます。ループの解を手動で求めるには、以下のいずれかの手法を使用します。

icブロック代数约束ブロックブロック使っ初期作成作成作成

状态の初期ががと代数ループがが收束ループループががモデルモデルににに含ま含まれれいるいる可能可能性性ががありますます。。代数代数代数代数状态状态状态状态初期初期推定推定推定推定推定のみこのを使用し。。

初期推定指定には次のののつがつがあり。。

方法金宝appによる疑似代数ループ削除の方法

[代数ループ発生最化]を有効にすると、Simulink は疑似代数ループを削除しようとします。この例では、モデルに,代数の原因となるなる原子子系统がが含まてい。。。

原子子系统のの直达直达ません,,,,は原子子系统ををををを直达と金宝appしし。。

[代数ループ]診断が[エラー]に設定されている場合は、モデルには Atomic Subsystem に関与する疑似代数ループが含まれているため、シミュレートするとエラーになります。

この代数をには,次手顺に従います。

  1. 上図からをします。代数代数の原因となるなるなるなるなるなるなるなるなるなるなるなるなるなるなるがが

  2. [モデルパラメーター]の[診断]パネルで[代数ループ]パラメーターを[警告]または[なし]に设定し。

  3. [データ/エクスポート]ペインで,[信号のログ]パラメーターがなっいることを确认し信号のログがが有效にになっなってていると,,,金宝app,,,,,,,

  4. このモデルと atomic サブシステムのブロック実行順序を表示するには、[デバッグ]タブで[情报の][実行順序]を选択し。

    実行顺序してと疑似代数を削除方法を理解するするのにに。。。

    サブシステムのすべてのブロックは同じレベルで実行されます。ここでは 1 です(最下位レベルは 0 で、最初に実行されるブロックを表します)。

    メモ

    ブロックの顺序の详细,,実行順序の制御と表示を参照しください。

  5. 最上位モデルの[Subsystem のパラメーター]ダイアログ ボックスで、[代数ループ発生最化]を选択し。このパラメーターは、モデルをシミュレートするときに、可能な限り Atomic Subsystem を含む代数ループを削除するように Simulink に指示します。変更内容を保存します。

  6. [モデル化]タブで[モデルの更新]をクリックて顺序を计算します。

    これでサブににににつつのの実行顺序,,,,,,,,,,,,,がががが作成された

疑似代数ループを削除するために、Simulink は、サブシステムまたは参照モデルの非直達を作成しようとします。

モデルを场合,のブロックはのでメソッドを実行します。

  1. mdlOutputs

  2. mdlDerivatives

  3. mdlupdate

元のバージョンのモデルでは,mdlOutputsメソッドの実行は、Plant ブロックで開始します。それは Plant ブロックが非直達であるためです。実行は Controller ブロックで終了します。

これらのの详细について,,金宝appSimulinkモデルを参照しください。

Atomic Subsystem の[代数ループ発生最化]パラメーターを有効にした場合、Simulink によって、サブシステムが 2 つのアトミック単位に分割されます。

以下の条件が満たされています。

  • 原子单元2は直达。。

  • Atomic unit 1 には、mdlOutputsメソッドだけがある。

原子单元1の出力は、Atomic unit 2 のmdlDerivativesメソッドまたはmdlupdatesimulinkはのみの金宝appみ必要ははは通常であればばばばばば原子单元1のmdlOutputメソッドの実行中に実行されていたメソッドを、Atomic unit 2 のmdlDerivativesメソッドの中で実行できます。

このモデル実行顺序次のようなり。。。

  1. モデルのmdlOutputsメソッド

    1. 原子单元2のmdlOutputsメソッド

    2. 他のブロックのmdlOutputsメソッド

  2. モデルのmdlDerivativesメソッド

    1. 原子单元1のmdlOutputsメソッド

    2. 原子单元2のmdlDerivativesメソッド

    3. 他のブロックのmdlDerivativesメソッド

[代数ループ発生最化]の手法するために,,,,,,にににされれた非直达ブロックブロックブロックがサブサブサブサブシステムシステムまたはまたはまたは参照参照参照金宝appモデルモデルににになけれなけれなければばばばばなりなりなりなりませdirectFeedthroughプロパティを错误的に設定して、入力端子に直達がないことを指示できます。

Atomic Subsystem によって発生した疑似代数ループの削除

Atomic Subsystem によって疑似代数ループが生じた場合は、Atomic Subsystem をバーチャル サブシステムに変換します。この変更はモデルの動作には影響を与えません。サブシステムが Atomic のときにモデルをシミュレートする場合は、Simulink は代数ループ ソルバーを呼び出します。ソルバーは 1 回反復した後で終了します。代数定数がないため、代数ループを自動的に解きます。サブシステムをバーチャルに変更した後は、Simulink はシミュレーション中に代数ループ ソルバーを呼び出しません。

原子子系统ををシステム変换するははは

  1. その原子子系统をを含むを开き。。。

  2. Atomic Subsystem を右クリックし、[Subsystem のパラメーター]を选択し。

  3. [原子サブシステム]パラメーターをクリアします。

  4. 変更内容保存します。

原子子系统ををシステム置き换えてもまだが代数ループエラーでで失败失败するする场合は,モデルに次次次ののいずれいずれかがが

  • 代数制约

  • 原子子系统ががではないループループループ

疑似代数ループを作成するバンドルされた信号

モデルは信号をまとめ一绪にするものががありこれをををまとめまとめたたたたたたたためためため,,,代数代数制约制约制约制约金宝appがが存在存在存在存在存在しにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずにもかかわらずリダイレクトする,代数を削除できるがあります。

この例で,线形化モデル1つのつのを受ける受ける受けるタンクタンクのシミュレーション行います。。このモデルには次次の项目がが含ま含ま。。

  • 出力q1はポンプタンクの液体の流速。。

  • 出力H22番目番目内のの高高。。。

  • 状态方程ブロックは动作タンクシステムの动反応次のようにします。

  • 状态方程ブロックからの出力はq1H2を含むベクトルです。

このモデル[代数ループ]パラメーターを[警告]または[エラー]simulinkは,,ををははは代数を検金宝app出します。

この代数をするは次のにします。

  1. 行列Cおよびdを次のように変更します。

  2. q1を状态空间ブロックブロック通して直接直接直接直接直接に渡しに渡し。。

    そうする,入力(q1)は直接にれない(d行列行列0である)ため状态空间ブロックブロックにははんん。フィードバック信号信号信号にはははつつの要素しかしかありありませませんモデルのよう,,,ブロックブロック必要でなくなり。。。

疑似代数诊断とのためのおよびパラメーターパラメーターパラメーター

モデルに疑似代数ループが存在すると考えられるときには、2 つのパラメーターの使用を検討します。

  • [代数ループ発生最化]パラメーター - simulink金宝app simulinkによってによって代数がされるよう指定指定。。。。

    • 原子子系统 - [子系统の]ダイアログボックス,[代数ループ発生最化]を选択し。

    • Model ブロック — 参照モデルでは、[コンフィギュレーション パラメーター] の[モデル]ペインで,[代数ループ発生最化]を选択し。

  • [代数ループ最小]パラメーター -[代数ループ発生最化]simulinkが,场合场合がが金宝appが诊断を指定します。

    [代数ループ最小]パラメーターは[コンフィギュレーションパラメーター]の[診断]パネルに。パラメーターで指定できるは次のとおり。。

    设定 シミュレーションの动作
    なし

    Simulink は何のアクションも実行しません。

    警告

    Simulink は[代数ループ発生最化]パラメーターのがを通知する警告を表示します。

    エラー

    金宝appsimulinkはシミュレーションをし,,[代数ループ発生最化]パラメーターのがを通知するエラーを表示します。

ブロック削减と代数ループ

[モデルパラメーター]の[ブロック]simulink sim金宝appulinkによってによってによってによってグループがななな的的的的的つつつつつのブロックにさされるれるか,,完全完全に削除削除さされれますますブロックによりによりによりによりによりにより,,,,,

simulink si金宝appmulinkがが代数をののにます。。

以下の例モデルを考えます。

初期状態では、ブロック削減はオフに設定されています。このモデルをシミュレートするとき、 Atomic Unit サブシステムと Gain および Compare to Constant ブロックが Simulink が解けない代数ループの一部を形成しています。

simulink simulinkはととしに有效にし,ははは削减さ金宝appささたブロックのの実行実行顺序顺序についてについてはは表示しませませませんんんその,どのどのどのどのどのどのどのどのどのどの

モデルモデル相比,与常数ブロックとブロックブロック削除さいるため代数ループエラーはは生成生成生成ささされれます。。。。。。。。。。サブサブサブサブサブシステムではは,,

警告:サブシステム“ ex_aloop_block_reduction_errwarn/ atomic单元” ex_aloop_block_reduction_errwarn/ atomic unit/ in1“ 1”にににフィードバックが含ま场合,,,代数金宝appの発生小化化パラメータークリアこと検讨して。。

ヒント

Bus Selector ブロックを使用して、必要な信号のみを Atomic Subsystem に渡します。

関連するトピック