Оценка частотной характеристики Используя основанные на симуляции методы

В этом примере показано, как получить частотную характеристику моделей Simulink®, когда аналитическая линеаризация блока блоком не предоставляет точный ответ из-за основанной на событии динамики в пути к линеаризации. Примерами таких систем являются модели с триггируемыми подсистемами или модели с помощью входных сигналов модуляции ширины импульса (PWM).

Откройте модель

Откройте модель Simulink для синхронизации механизма.

mdl = 'scdengine';
open_system(mdl)

Аналитическая линеаризация блока блоком этой модели от угла дросселя до скорости вращения двигателя дает нулевой результат линеаризации из-за инициированной подсистемы Сжатия в пути к линеаризации.

io = getlinio(mdl);
linsys = linearize(mdl,io)
linsys =
 
  D = 
                ThrottleAngl
   EngineSpeed             0
 
Static gain.

Оцените частотную характеристику Используя входной сигнал Sinestream

Входные сигналы Sinestream являются самыми надежными входными сигналами для оценки точной частотной характеристики модели Simulink с помощью frestimate функция. Сигнал sinestream состоит из отдельных синусоидальных сигналов, которые добавлены друг другу. frestimate функция симулирует модель для каждой частоты в sinestream входном сигнале, как задано использование Frequency параметр, для соответствующей суммы периодов, как задано использование NumPeriods параметр. После симуляции, frestimate использует выходной сигнал, чтобы вычислить ответ на каждой частоте. frestimate использование только периоды после системы достигает устойчивого состояния для той входной частоты, то есть, после многих обосновывающихся периодов, как задано использование SettlingPeriods параметр.

Создайте сигнал sinestream с 50 логарифмически расположенными с интервалами отличными частотами между 0,1 и 10 рад/с.

in = frest.Sinestream('Frequency',logspace(-1,1,50),'Amplitude',1e-3)
 
The sinestream input signal:
 
      Frequency           : [0.1 0.10985 0.12068 0.13257 ...] (rad/s)
      Amplitude           : 0.001
      SamplesPerPeriod    : 40
      NumPeriods          : 4
      RampPeriods         : 0
      FreqUnits (rad/s,Hz): rad/s
      SettlingPeriods     : 1
      ApplyFilteringInFRESTIMATE (on/off)    : on
      SimulationOrder (Sequential/OneAtATime): Sequential
 

По умолчанию каждая частота в sinestream входном сигнале симулирована в течение четырех периодов, то есть, NumPeriods 4 для всех частот. Кроме того, конец первого периода задан, чтобы быть, где система достигает устойчивого состояния, то есть, SettlingPeriods 1 для всех частот. Поэтому frestimate использует последние три периода выходных сигналов.

Используя этот sinestream входной сигнал, выполните оценку частотной характеристики с помощью frestimate функция, и отображает получившиеся данные о частотной характеристике на графике.

[sys,simout] = frestimate(mdl,io,in);
bode(sys)

Можно смотреть результаты оценки с помощью Средства просмотра Результатов симуляции. Средство просмотра показывает временной интервал и результаты симуляции частотного диапазона для выбранных частот и итоговой диаграммы Боде, где можно в интерактивном режиме переключиться между частотами.

frest.simView(simout,in,sys);

Можно использовать средство просмотра в качестве инструмента, чтобы диагностировать проблемы, которые влияют на точность оценки частотной характеристики, такой как:

  • Не достижение устойчивого состояния

  • Возбуждение нелинейности

  • Столкновение с нестабильностью

Оцените частотную характеристику Используя входной сигнал щебета

Другой входной сигнал, который можно использовать при оценке данных о частотной характеристике из модели Simulink, является щебетом частоты. Щебет частоты отличается от sinestream, по которому мгновенно варьируется частота.

Можно использовать входные сигналы щебета, чтобы получить более быструю оценку частотной характеристики. Однако получившаяся частотная характеристика может быть менее надежной, чем то полученное использование sinestream входные параметры, поскольку каждая частота не симулирована достаточно долго, чтобы управлять системой к устойчивому состоянию на той частоте.

Создайте сигнал щебета что развертки между частотами 0.1 и 10 рад/с логарифмически.

in_chirp = frest.Chirp('FreqRange',[0.1 10],'Amplitude',1e-3,...
    'SweepMethod','logarithmic','NumSamples',3000);

Выполните оценку частотной характеристики с помощью сигнала щебета.

sys_chirp = frestimate(mdl,io,in_chirp);

Постройте результаты, полученные от обоих sinestream и входные сигналы щебета вместе.

bode(sys,sys_chirp,'r')

Оцените частотную характеристику Используя входной сигнал PRBS

Другой входной сигнал, который можно использовать при оценке данных о частотной характеристике из модели Simulink, является псевдослучайной двоичной последовательностью (PRBS). PRBS является периодическим, детерминированным сигналом с подобными белому шуму свойствами что сдвиги между двумя значениями.

Можно использовать входные сигналы PRBS, чтобы получить более быструю оценку частотной характеристики с более высоким разрешением частоты, чем сигнал щебета.

Создайте сигнал PRBS с порядком 12 и один период в сигнале. Используя один период производит апериодический PRBS. Длина сгенерированного PRBS 4095 (2^12 - 1). Чтобы получить точную оценку частотной характеристики, длина PRBS должна быть достаточно большой. Чтобы гарантировать, что система правильно взволнована, задайте амплитуду возмущения PRBS как 0.01.

in_PRBS = frest.PRBS('Order',12,'NumPeriods',1,'Amplitude',1e-2,'Ts',0.1);

Выполните оценку частотной характеристики с помощью сигнала PRBS.

sys_PRBS = frestimate(mdl,io,in_PRBS);

Постройте результаты, полученные и с PRBS и с sinestream входными сигналами вместе.

bode(sys_PRBS,sys,'r',{0.1 10})

Закройте модель.

bdclose('scdengine')

Смотрите также

Похожие темы