Real-Time WorkshopのS-Functionターゲット機能を利用してサブシステムをS-Function化し、シミュレーションを実行するとS-Function化前には発生しなかった代数ループが発生します。
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Real-Time WorkshopのS-Functionターゲット機能を利用してサブシステムをS-Function化し、シミュレーションを実行するとS-Function化前には発生しなかった代数ループが発生します。
Akzeptierte Antwort
MathWorks Support Team
am 29 Jun. 2009
サブシステムを含むモデルのシミュレーションを行う場合、Simulinkはサブシステムの境界を越えて、ブロックの実行順序を決定します。
一方、S-Functionターゲット機能を利用してサブシステムをS-Function化した場合、そのサブシステムは1個のブロックになります。そのため、サブシステムの境界を越えて、実行順序を決定することはできません。したがって、サブシステムをS-Function化した場合、オリジナルのモデルと処理順序が変わり、代数ループが発生する場合や結果が異なる場合があります。
この現象を回避するには、次の手順でサブシステムをAtomic化してからS-Function化を行います。
サブシステムをAtomic化すると、そのサブシステムは単一のブロックとして扱われるので、S-Function化した後と同じ処理順序となります。
1) サブシステムを右クリックして「Subsystemのパラメータ」を選択し、表示されるダイアログで「Atomicサブシステムとして扱う」にチェックを入れます。
2) シミュレーションを行い、代数ループが発生する場合は「代数ループの発生を最小限に抑える」にチェックを入れます。
3) さらに代数ループが発生する場合は、下記にある関連ソリューション(Simulinkモデルのシミュレーション中に、’代数ループ(algebraic loop)’に関する警告が出力されました。代数ループとは何ですか?また、その回避方法はありますか?) の方法で回避します。
4) 代数ループが発生しなくなったら、S-Function化を行います。
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Electromechanical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!