frest.Sinestream

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

Описание

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

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

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

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

Создание

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

  • Использование 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 is (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Окончательное время симуляции для оценки частотной характеристики

Примеры

свернуть все

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

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

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
 

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

Model Linearizer

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

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

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

Введенный в R2009b