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

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

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

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

Спектр анализатор состоит из этих компонентов:

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

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

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

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

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

Блок Sinusoid Generator имеет два выходных параметров:

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

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

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

Чтобы управлять синхронизацией генератора сигнала, блок содержит диаграмму 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 состояния инициировал блок Stop Simulation (Simulink) и концы симуляции. Задайте значение fstop в диалоговом окне маски Генератора Синусоиды.

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

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

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

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

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

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

Разверните измеренный Phase angle

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

В этом графике переходы тестируют изменение во входе u прежде, чем вычислить новое выходное значение y.

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

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

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

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

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

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

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

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

Диаграмма Боде показывает, что измеренная резонансная частота составляет приблизительно 150 Гц, совпадая со значением, предсказанным динамикой объекта.

Смотрите также

(Simulink) | | (Simulink) | |

Похожие темы