exponenta event banner

Измерение частотной характеристики с помощью анализатора спектра

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

$$\frac{\omega^2}{s^2 + 2\zeta\omega s + \omega^2}$$

с собственной частотой$\omega = 2 \pi \cdot 150$ (или 150 Гц) и коэффициентом демпфирования. $\zeta = 0.3$Так как система недостаточно демпфируется (), $\zeta < 1$система имеет два комплексных сопряженных полюса. В реальном приложении замените этот блок на подсистему, состоящую из D/A и A/D блоков xPC, которые измеряют отклик тестируемого устройства (DUT).

Анализатор спектра состоит из следующих компонентов:

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

  • Анализатор диаграммы статофлоу, который вычисляет частотную характеристику (величину и фазовый угол) системы на заданной частоте. Диаграмма регистрирует изменения частоты с помощью логики обнаружения изменений.

  • Диаграмма Stateflow Unwrap, которая обрабатывает измеренный фазовый угол и разворачивает результат так, чтобы не было резких скачков между$\pi$ и.$-\pi$

Анализатор спектра отображает измеренную частотную характеристику в виде пары дискретных графиков Боде.

Генерировать синусоидальный сигнал

Блок генератора синусоиды имеет два выхода:

  • Скаляр f которая представляет текущую частоту.

  • Сложный сигнал y который имеет частоту f.

Можно управлять поведением блока, изменяя его параметры в диалоговом окне маски. Например, значения по умолчанию определяют синусоидальный сигнал с частотами между 10Hz и 1000Hz. Блок удерживает каждое значение частоты в течение 0,2 секунды, а затем увеличивает частоту на шаг 10Hz.

Для управления синхронизацией генератора сигнала блок содержит диаграмму Stateflow, которая применяет временную логику абсолютного времени.

Во время моделирования диаграмма проходит следующие этапы:

  • Частота инициализации: Переход по умолчанию задает частоту сигнала f к значению параметра fstart. Укажите значение fstart в диалоговом окне «Маска генератора синусоид».

  • Генерировать сигнал: Пока Generate состояние активно, диаграмма выдает сложный сигнал y = exp(2*pi*f*t*1i) на основе частоты f и время t с момента последнего изменения частоты. Чтобы определить прошедшее время (в секундах) с момента активации состояния, диаграмма вызывает оператор временной логики temporalCount.

  • Частота обновления: после Generate состояние активно для delay секунд, график переходит из состояния, увеличивает частоту f около fstepи возвращается к Generate состояние. Для определения времени обновления частоты диаграмма вызывает оператор временной логики after и проверяет знак мнимой части сигнала до и после текущего временного шага. Знак проверяет, что выходной сигнал завершает полный цикл перед обновлением частоты, предотвращая большие изменения выходного сигнала. Укажите значения fstep и delay в диалоговом окне «Маска генератора синусоид».

  • Остановка моделирования: когда частота f достигает значения параметра fstop, диаграмма переходит в Stopped состояние. Выход активного состояния Stopped запускает блок «Остановить моделирование» (Simulink), и моделирование заканчивается. Укажите значение fstop в диалоговом окне «Маска генератора синусоид».

Вычислить частотную характеристику

Диаграмма анализатора принимает сложный сигнал u и выходные данные yp из блока Plant и вычисляет величину и фазу выхода установки.

Для каждого значения частоты диаграмма содержит две текущие суммы:

  • Сумма y аппроксимирует интеграл продукта производства установки yp (вещественное число) и комплексный сигнал u.

  • Сумма yn аппроксимирует интеграл продукта ввода установки imag(u) и комплексный сигнал u. Этот интеграл представляет собой накопление гипотетического растения с единичной передаточной функцией.

Для обнаружения изменения частоты диаграмма использует оператор hasChanged для охраны самохода на государстве Analyze. При изменении частоты действия на этом переходе вычисляют величину и фазу выхода установки путем нормализации y в отношении yn.

Развернуть измеренный фазовый угол

Диаграмма Разобрать (Unwrap) предотвращает изменение измеренного фазового угла более чем на$\pi$ радианы за один шаг времени.

На этой диаграмме переходы проверяют изменение входных данных u перед вычислением нового выходного значения y.

  • Если входной сигнал увеличивается более чем$\pi$ на радианы, диаграмма смещает выходной сигнал на$-2\pi$ радианы.

  • Если входной сигнал уменьшается более чем$-\pi$ на радианы, диаграмма смещает выходной сигнал на$+2\pi$ радианы.

Анализ результатов моделирования

При моделировании модели блок области действия отображает частотную характеристику системы (величину и фазу) как функцию времени моделирования.

  • На графике величины максимальное значение при$t \approx 3$ указывает отклик блока Plant на резонансную частоту. Пиковая амплитуда составляет приблизительно 1,7.

  • На фазовом графике угол изменяется от 0 до$-\pi$ радиан. Каждый комплексный полюс системы добавляет$-\pi/2$ радианы к фазовому углу.

Для определения измеренной резонансной частоты постройте график измеренной величины и фазы относительно входной частоты установки. Во время моделирования модель сохраняет эти значения в объекте регистрации сигналов logsout в рабочей области MATLAB. Доступ к записанным значениям можно получить с помощью get (Simulink) способ. Например, чтобы создать график Бода для измеренной частотной характеристики системы и нарисовать красный курсор на 150Hz, введите:

figure;
subplot(211);
plot(logsout.get('frequency').Values.Data, logsout.get('magnitude').Values.Data);
line([150 150],[0 2],'Color','red','LineStyle','--');
grid on;
title('Magnitude (Output Amplitude/Input Amplitude)');
subplot(212);
plot(logsout.get('frequency').Values.Data, logsout.get('phase').Values.Data*180/pi)
grid on;
title('Phase (Degrees)');
close_system(mdl, 0);

График Боде показывает, что измеренная резонансная частота приблизительно 150Hz, что соответствует значению, прогнозируемому динамикой растения.

См. также

| | | (Simulink) | (Simulink)

Связанные темы