Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

モデル参照を含むモデルの線形化

この例では、Model ブロックで他のモデルを参照するモデルの線形化に使用できる Simulink® Control Design™ の機能を説明します。

線形解析

モデル scdspeed_ctrlloop は、モデル scdspeedctrl をコンポーネント化したバージョンです。このモデルにおいて、エンジン速度モデルは、Model ブロックを使用して参照されるモデル scdspeed_plantref 内に表されるコンポーネントです。モデルを開きます。

topmdl = 'scdspeed_ctrlloop';
open_system(topmdl)

既定では、Engine Model ブロックは、Model ブロックの隅に黒い三角形で示されているように、アクセラレータ シミュレーション モードに設定されています。アクセラレータ モードのシミュレーションに設定されている、このブロックをもつモデルを線形化すると、Engine Model ブロック全体に数値的に摂動を与えます。この線形化の精度は、Engine モデル内のブロックの影響を大きく受けます。特に、可変の伝達遅延ブロックには、大きな問題があります。

正確な線形化を実現するには、Model ブロックをノーマル シミュレーション モードに設定し、参照モデルをブロックごとに線形化できるようにします。

set_param('scdspeed_ctrlloop/Engine Model','SimulationMode','Normal')

Model ブロックの隅が白い三角形になっています。これは、シミュレーションがノーマル モードに設定されていることを示します。

速度の基準信号と速度の出力間のモデルを線形化し、結果のステップ応答をプロットします。

io(1) = linio('scdspeed_ctrlloop/Speed Reference',1,'input');
io(2) = linio('scdspeed_ctrlloop/Speed Output',1,'output');
sys_normal = linearize(topmdl,io);
step(sys_normal)

Simulink モデルを閉じます。

bdclose('scdspeed_ctrlloop')

モデル参照をノーマル モードのシミュレーションに切り替えると、正確な遅延表現を利用できるという利点もあります。

遅延をもつモデルの線形化の詳細については、遅延をもつモデルの線形化の例を参照してください。

参考