Линеаризация при триггерных событиях симуляции

В этом примере показано, как использовать linearize Simulink® моделировать при определенных событиях во времени. События линеаризации могут быть событиями на основе триггеров или событиями вызова функции. В частности, модель линеаризируется в установившихся рабочих точках 2500, 3000 и 3500 об/мин.

  1. Откройте модель Simulink.

    mdl = 'scdspeedtrigger';
    open_system(mdl)

    Чтобы помочь идентифицировать, когда система находится в установившемся состоянии, блок Generate settling time events генерирует события установления. Этот блок отправляет триггерные сигналы нарастающего ребра в Operating Point Snapshot блок, когда скорость вращения двигателя устанавливается около 2500, 3000 и 3500 об/мин в течение как минимум пяти секунд.

    Модель включает блок 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, 3000 и 3500 об/мин с помощью диаграмм Боде передаточных функций с обратной связью.

    bode(linsys)

См. также

Функции

Блоки

Похожие темы