frest.Sinestream

Входной сигнал, содержащий серию синусоид

Описание

Используйте frest.Sinestream объект представлять sinestream входной сигнал для оценки частотной характеристики. Такой сигнал состоит из синусоид различных частот, примененных один за другим. Каждая частота волнует систему сроком на время.

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

Можно использовать sinestream входной сигнал в оценке в командной строке в Linear Analysis Tool, или с блоком Frequency Response Estimator. Алгоритм оценки вводит сигнал sinestream в точке ввода, которую вы задаете для оценки, и измеряет ответ в выходной точке. Для получения дополнительной информации см. Входные сигналы Sinestream.

Чтобы просмотреть график вашего входного сигнала, введите plot(input). Создать timeseries возразите для своего входного сигнала, используйте generateTimeseries команда.

Создание

Можно создать сигнал sinestream одним из следующих способов:

  • Используя frest.Sinestream функция для сигналов непрерывного времени

  • Используя frest.createFixedTsSinestream функция для сигналов дискретного времени

Для получения дополнительной информации см. Входные сигналы Sinestream.

Описание

input = frest.Sinestream(sys) создает сигнал с серией синусоид со свойствами на основе динамики линейной системы sys. Например, если у вас есть точная линеаризация вашей системы, можно использовать ее, чтобы инициализировать параметры.

пример

input = frest.Sinestream(Name,Value) создает сигнал с серией синусоид со свойствами, заданными с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки.

Входные параметры

развернуть все

Линейная динамическая система, заданная как ss SISOtf , или zpk объект. Можно задать известную динамику или получить линейную модель путем линеаризации нелинейной системы.

Получившийся frest.Sinestream возразите автоматически устанавливает следующие свойства на основе линейной системы:

  • Frequency содержит частоты, на которых линейная система имеет интересную динамику.

  • SettlingPeriods количество периодов, оно берет систему, чтобы достигнуть устойчивого состояния на каждой частоте в Frequency.

  • NumPeriods (3 + SettlingPeriods) гарантировать, что каждая частота волнует систему максимальной амплитудой в течение по крайней мере трех периодов.

  • Для дискретных систем только, SamplesPerPeriod установлен таким образом, что все частоты имеют тот же шаг расчета как линейная система.

Остающиеся свойства используют значения по умолчанию.

Свойства

развернуть все

Частоты сигнала, заданные как вектор значений частоты в модулях, заданы FreqUnits.

Предупредите об амплитуде на каждой частоте, заданной как одно из следующего:

  • Скаляр — Набор все частоты к той же амплитуде.

  • Вектор с длиной равняется длине Frequency — Установите амплитуду для каждой частоты к различному значению.

Количество выборок на период для каждой частоты, заданной как одно из следующего:

  • Скаляр — Использование то же количество выборок на период для всех частот.

  • Вектор с длиной равняется длине Frequency — Используйте различное количество выборок для каждой частоты.

Единицы частоты, заданные как одно из следующего:

  • 'rad/s' — Радианы в секунду

  • 'Hz' — Герц

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

  • Скаляр — Использование то же количество растущих периодов для всех частот.

  • Вектор с длиной равняется длине Frequency — Используйте различное количество растущих периодов для каждой частоты.

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

frestimate данные об ответе отбрасываний, собранные во время сползания периоды.

Количество периодов каждая синусоида в максимальной амплитуде, заданной как одно из следующего:

  • Скаляр — Использование то же количество периодов для всех частот.

  • Вектор с длиной равняется длине Frequency — Используйте различное количество периодов для каждой частоты.

Конкретное количество периодов включает обосновывающиеся периоды (SettlingPeriods) и периоды используются в оценке.

Количество периодов перед системой достигает устойчивого состояния, заданного как одно из следующего:

  • Скаляр — Использование то же количество обосновывающихся периодов для всех частот.

  • Вектор с длиной равняется длине Frequency — Используйте различное количество обосновывающихся периодов для каждой частоты.

frestimate данные об ответе отбрасываний собраны в обосновывающиеся периоды.

Отметьте, чтобы применить выборочную частотой КИХ-фильтрацию входного сигнала прежде, чем оценить его с помощью frestimate, заданный как одно из следующего:

  • 'on' — Отфильтруйте входной сигнал. Когда вы используете фильтрацию, frestimate данные об ответе отбрасываний в течение одного дополнительного периода после обосновывающихся периодов перед оценкой.

  • 'off' — Не фильтруйте входной сигнал.

Закажите, в котором отдельные частоты входного сигнала введены в вашу модель Simulink® в процессе моделирования, заданы как одно из следующего:

  • 'Sequential'frestimate вводит одну частоту после следующего в вашу модель в одном шаге расчета переменной использования симуляции Simulink. Чтобы использовать эту опцию, ваша модель должна использовать решатель переменного шага.

  • 'OneAtATime'frestimate вводит каждую частоту во время отдельной симуляции Simulink вашей модели. Перед каждой симуляцией, frestimate инициализирует вашу модель к рабочей точке, заданной для оценки. Если у вас есть программное обеспечение Parallel Computing Toolbox™, можно запустить эти параллельные симуляции, чтобы ускорить оценку. Для получения дополнительной информации смотрите Убыстряющуюся Оценку Используя Параллельные вычисления.

Функции объекта

frestimateОценка частотной характеристики моделей Simulink
generateTimeseriesСгенерируйте данные временного интервала для входного сигнала
frest.simCompareПостройте симуляцию временного интервала нелинейных и линейных моделей
frest.simViewПостройте модель частотной характеристики вовремя и частотный диапазон
getSimulationTimeИтоговое время симуляции для оценки частотной характеристики

Примеры

свернуть все

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

Чтобы задать частоты, используйте вектор частот.

freqs = linspace(1,4,4);

Чтобы задать другие параметры, используйте скаляр, чтобы использовать то же значение параметров в каждой частоте. Чтобы использовать различные значения в каждой частоте, используйте вектор той же длины как freqs. В данном примере используйте увеличивающиеся амплитуды на каждой частоте, но сохраните количество периодов наращивания, количество обосновывающихся периодов и количество периодов после наращивания постоянными.

amps = [1 1.5 1.75 2];
ramp = 2;
settle = 3;
pds = 5;

input = frest.Sinestream('Frequency',freqs,...
                         'Amplitude',amps,...
                         'RampPeriods',ramp,...
                         'SettlingPeriods',settle,...
                         'NumPeriods',pds);

Исследуйте получившийся сигнал sinestream.

plot(input)

Когда ваш сигнал sinestream покрывает широкий спектр частот, это может быть неэффективно, чтобы использовать тот же шаг расчета через все частоты. По этой причине, frest.Sinestream значением по умолчанию использует постоянное число выборок на каждой частоте. Можно указать, что номер со скалярным значением, или используют вектор, чтобы обеспечить различное количество выборок на каждой частоте. (Чтобы создать сигнал sinestream с фиксированным шагом расчета через целый сигнал, используйте frest.createFixedTsSinestream. Эта опция полезна, когда входная точка линеаризации для оценки находится на сигнале дискретного времени.)

Создайте синусоидальный входной сигнал со следующими характеристиками:

  • 50 частот, расположенных с интервалами логарифмически между 10 Гц и 1 000 Гц

  • Амплитуда 1e-3 на всех частотах

  • Выбранный с частотой 10 раз частота сигнала (значение десяти выборок на период)

input = frest.Sinestream('Amplitude',1e-3,...
                         'Frequency',logspace(1,3,50),...
                         'SamplesPerPeriod',10,...
                         'FreqUnits','Hz');

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

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

model = 'watertank';
open_system(model)

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

io(1)=linio('watertank/PID Controller',1,'input');
io(2)=linio('watertank/Water-Tank System',1,'openoutput');

watertank_spec = operspec(model);
opOpts = findopOptions('DisplayReport','off');
op = findop(model,watertank_spec,opOpts);

sys = linearize(model,op,io);

Создайте сигнал sinestream.

input = frest.Sinestream(sys);

frest.Sinestream выбирает частоты на основе системной динамики. Это также автоматически инициализирует другие параметры сигнала sinestream.

input
 
The sinestream input signal:
 
      Frequency           : [0.0015811;0.0026375;0.0043996;0.007339 ...] (rad/s)
      Amplitude           : 1e-05
      SamplesPerPeriod    : 40
      NumPeriods          : [4;4;4;4 ...]
      RampPeriods         : 0
      FreqUnits (rad/s,Hz): rad/s
      SettlingPeriods     : [1;1;1;1 ...]
      ApplyFilteringInFRESTIMATE (on/off)    : on
      SimulationOrder (Sequential/OneAtATime): Sequential
 

Можно изменить свойства сигнала с помощью записи через точку. Например, увеличьте амплитуду сигнала.

input.Amplitude = 3e-5
 
The sinestream input signal:
 
      Frequency           : [0.0015811;0.0026375;0.0043996;0.007339 ...] (rad/s)
      Amplitude           : 3e-05
      SamplesPerPeriod    : 40
      NumPeriods          : [4;4;4;4 ...]
      RampPeriods         : 0
      FreqUnits (rad/s,Hz): rad/s
      SettlingPeriods     : [1;1;1;1 ...]
      ApplyFilteringInFRESTIMATE (on/off)    : on
      SimulationOrder (Sequential/OneAtATime): Sequential
 

Альтернативная функциональность

Linear Analysis Tool

В Linear Analysis Tool, чтобы использовать sinestream входной сигнал в оценке, на вкладке Estimation, выберите:

  • Input Signal> Sinestream, когда шаг расчета I/Os непрерывен.

  • Input Signal> Fixed Sample Time Sinestream, когда шаг расчета I/Os дискретен.

Представленный в R2009b