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

В этом примере показано, как получить частотную характеристику моделей 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 входном сигнале симулирована в течение 4 периодов, то есть, NumPeriods 4 для всех частот, и конец первого периода задан, чтобы быть, где система достигает к устойчивому состоянию, то есть, SettlingPeriods 1 для всех частот. Поэтому frestimate использует последние 3 периода выходных сигналов.

Используя этот 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')

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

Похожие темы