exponenta event banner

раздражения. Sinestream

Входной сигнал, содержащий последовательность синусоидальных волн

Описание

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

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

Входной сигнал синестрима можно использовать для оценки в командной строке, в линеаризаторе модели или с блоком «Оценка частотного отклика». Алгоритм оценки вводит синестрименный сигнал во входную точку, заданную для оценки, и измеряет отклик в выходной точке. Дополнительные сведения см. в разделе Входные сигналы синестрима.

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

Создание

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

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

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

Дополнительные сведения см. в разделе Входные сигналы синестрима.

Описание

пример

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

пример

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

Входные аргументы

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

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

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

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

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

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

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

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

Свойства

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

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

Амплитуда сигнала на каждой частоте, заданная как одно из следующих:

  • Скаляр (Scalar) - установка одинаковой амплитуды для всех частот.

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

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

  • Скаляр (Scalar) - используется одинаковое количество выборок за период для всех частот.

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

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

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

  • 'Hz' - Герц

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

  • Скаляр (Scalar) - используется одинаковое количество периодов нарастания для всех частот.

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

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

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

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

  • Скаляр (Scalar) - используется одинаковое количество периодов для всех частот.

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

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

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

  • Скаляр (Scalar) - используется одинаковое количество периодов настройки для всех частот.

  • Вектор длиной, равной длине 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Окончательное время моделирования для оценки частотной характеристики

Примеры

свернуть все

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

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

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);

Проверьте полученный сигнал синестрима.

plot(input)

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

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

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

  • 50 частоты, разделенные логарифмически между 10 Гц и 1000 Гц

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

  • Дискретизируется с частотой, в 10 раз превышающей частоту сигнала (что означает десять выборок за период)

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

Создание синестрименного входного сигнала на основе динамики линейной системы. Этот подход полезен при использовании оценки частотного отклика для проверки линеаризации модели.

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

model = 'watertank';
open_system(model)

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

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);

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

input = frest.Sinestream(sys);

frest.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
 

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

Линеаризатор модели

Чтобы использовать для оценки входной сигнал синестрима, на вкладке Оценка (Estimation) выберите:

  • Входной сигнал (Input Signal) > Синестрим (Sinestream), когда время выборки ввода-вывода является непрерывным.

  • Input Signal (входной сигнал) > Fixed Sample Time Sinestream (фиксированное время выборки), когда время выборки ввода-вывода дискретно.

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