トリガー シミュレーション イベントでの線形化
この例では、特定のイベントで Simulink® モデルを時間単位に線形化する方法を説明します。線形化イベントは、トリガーベース イベントでも、関数呼び出しイベントでもかまいません。具体的には、2500 rpm、3000 rpm および 3500 rpm の定常状態の操作点でモデルを線形化します。
Simulink モデルを開きます。
mdl = 'scdspeedtrigger'; openExample(mdl)
システムが定常状態になったタイミングを特定しやすいように、Generate settling time events ブロックで整定イベントが生成されます。このブロックは、エンジン速度が 2500 rpm、3000 rpm および 3500 rpm 近くで少なくとも 5 秒間安定すると、立ち上がりエッジ トリガー信号を Operating Point Snapshot ブロックに送信します。
モデルにはTrigger-Based Operating Point Snapshotブロックが含まれています。このブロックは、Generate settling time events ブロックから立ち上がりエッジ トリガー信号を受信すると、モデルを線形化します。
60
の時間単位で定常状態の操作点を計算します。op = findop(mdl,60);
この関数は、
60
の時間単位でモデルをシミュレートし、この時間間隔で発生するシミュレーション イベントごとの操作点を抽出します。線形化するモデルの部分を定義します。
io(1) = linio('scdspeedtrigger/Reference Steps',1,'input'); io(2) = linio('scdspeedtrigger/rad//s to rpm',1,'output');
モデルを線形化します。
linsys = linearize(mdl,op(1:3),io);
閉ループ伝達関数のボード線図を使用して、2500 rpm、3000 rpm および 3500 rpm で線形化されたモデルを比較します。
bode(linsys)