Main Content

トリガー シミュレーション イベントでの線形化

この例では、特定のイベントで Simulink® モデルを時間単位に線形化する方法を説明します。線形化イベントは、トリガーベース イベントでも、関数呼び出しイベントでもかまいません。具体的には、2500 rpm、3000 rpm および 3500 rpm の定常状態の操作点でモデルを線形化します。

  1. 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 ブロックから立ち上がりエッジ トリガー信号を受信すると、モデルを線形化します。

  2. 60 の時間単位で定常状態の操作点を計算します。

    op = findop(mdl,60);

    この関数は、60 の時間単位でモデルをシミュレートし、この時間間隔で発生するシミュレーション イベントごとの操作点を抽出します。

  3. 線形化するモデルの部分を定義します。

    io(1) = linio('scdspeedtrigger/Reference Steps',1,'input');
    io(2) = linio('scdspeedtrigger/rad//s to rpm',1,'output');
  4. モデルを線形化します。

    linsys = linearize(mdl,op(1:3),io);
  5. 閉ループ伝達関数のボード線図を使用して、2500 rpm、3000 rpm および 3500 rpm で線形化されたモデルを比較します。

    bode(linsys)

参考

関数

ブロック

関連するトピック