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

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

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

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

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

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

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

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

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

Сгенерируйте синусоидный сигнал

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

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

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

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

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

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

  • Инициализация частоты: Переход по умолчанию устанавливает частоту сигнала f к значению параметра fstart. Задайте значение fstart в диалоговом окне Sinusoid Generator mask.

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

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

  • Остановите симуляцию: Когда частота f достигает значения параметра fstopграфик переходит к Stopped состояние. Выходное состояние активного Stopped запускает блок Stop Simulation (Simulink), и симуляция заканчивается. Задайте значение fstop в диалоговом окне Sinusoid Generator mask.

Вычисление частотной характеристики

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

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

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

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

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

Размотка измеренного Phase angle

Unwrap графика препятствует изменению измеренного угла фазы больше, чем$\pi$ радианы за один временной шаг.

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

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

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

Исследуйте результаты симуляции

Когда вы симулируете модель, блок scope показывает частотную характеристику системы (величину и фазу) как функцию времени симуляции.

  • На графике величины максимальное значение в$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)

Похожие темы