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

с собственной частотой
(или 150 Гц) и коэффициентом демпфирования.
Так как система недостаточно демпфируется (),
система имеет два комплексных сопряженных полюса. В реальном приложении замените этот блок на подсистему, состоящую из D/A и A/D блоков xPC, которые измеряют отклик тестируемого устройства (DUT).
Анализатор спектра состоит из следующих компонентов:
Блок синусоидального генератора, который вырабатывает сложный синусоидальный сигнал возрастающей частоты. Внутри блока диаграмма Stateflow ® использует временную логику для итерации в диапазоне частот.
Анализатор диаграммы статофлоу, который вычисляет частотную характеристику (величину и фазовый угол) системы на заданной частоте. Диаграмма регистрирует изменения частоты с помощью логики обнаружения изменений.
Диаграмма Stateflow Unwrap, которая обрабатывает измеренный фазовый угол и разворачивает результат так, чтобы не было резких скачков между
и.
Анализатор спектра отображает измеренную частотную характеристику в виде пары дискретных графиков Боде.

Блок генератора синусоиды имеет два выхода:
Скаляр 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) предотвращает изменение измеренного фазового угла более чем на
радианы за один шаг времени.

На этой диаграмме переходы проверяют изменение входных данных u перед вычислением нового выходного значения y.
Если входной сигнал увеличивается более чем
на радианы, диаграмма смещает выходной сигнал на
радианы.
Если входной сигнал уменьшается более чем
на радианы, диаграмма смещает выходной сигнал на
радианы.
При моделировании модели блок области действия отображает частотную характеристику системы (величину и фазу) как функцию времени моделирования.
На графике величины максимальное значение при
указывает отклик блока Plant на резонансную частоту. Пиковая амплитуда составляет приблизительно 1,7.
На фазовом графике угол изменяется от 0 до
радиан. Каждый комплексный полюс системы добавляет
радианы к фазовому углу.

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

после | hasChanged | temporalCount | get (Simulink) | Остановить моделирование (Simulink)