frest.Sinestream

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

Описание

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

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

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

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

Создание

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

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

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

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

Описание

пример

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

пример

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

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

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

Линейная динамическая система в виде SISO ss, tf, или 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)

Figure contains an axes object. The axes object with title Time Series Plot:Created from a frest.Sinestream signal contains an object of type line.

Когда ваш сигнал 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
 

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

Model Linearizer

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

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

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

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