В этом примере показано, как использовать linearize Simulink® моделировать при определенных событиях во времени. События линеаризации могут быть событиями на основе триггеров или событиями вызова функции. В частности, модель линеаризируется в установившихся рабочих точках 2500, 3000 и 3500 об/мин.
Откройте модель 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.
Вычислите установившуюся рабочую точку в 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, 3000 и 3500 об/мин с помощью диаграмм Боде передаточных функций с обратной связью.
bode(linsys)