Соберите данные об эксперименте частотной характеристики для оффлайновой оценки

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

Модель и параметры эксперимента

Этот пример использует модель, которая уже содержит блок Frequency Response Estimator, сконфигурированный, чтобы собрать данные об эксперименте для оффлайновой оценки. Откройте модель.

mdl = "CollectFreqRespEstimDataEx.slx";
open_system(mdl)

Модель содержит объект в настройке с обратной связью с контроллером PI. Блок Frequency Response Estimator принимает управляющий сигнал как вход u. Это питает управляющий сигнал плюс возмущение во вход объекта.

Блок Frequency Response Estimator сконфигурирован, чтобы запустить эксперимент в sinestream режиме с теми же параметрами эксперимента, используемыми в примере Онлайновая Оценка Частотной характеристики Во время Симуляции. В этом примере, однако, параметр Режима Оценки устанавливается на Оффлайн. В этой настройке блок вводит заданные сигналы возмущения и собирает данные об ответе, но не выполняет оценку. Блок сконфигурирован, чтобы использовать сигнал sinestream на частотах w = logspace(0,2,20).

Соберите данные об эксперименте

Моделируйте модель. Блок выполняет эксперимент и собирает данные об ответе. Осциллограф показывает прикладной сигнал sinestream и отклик системы.

sim(mdl)

Модель сконфигурирована, чтобы регистрировать данные об оценке в выходном порту блока data (см., что Данные сигнала Экспорта Используют Сигнал, Регистрирующий (Simulink) для получения информации о регистрации данных). Данные хранятся в рабочем пространстве MATLAB как объект Simulink.SimulationData.Dataset logsout. Поскольку data является единственным регистрируемым портом, можно получить доступ к записанным данным в первой записи в logsout. Поле Values той записи является структурой, содержащей четыре поля.

logdata = logsout{1}.Values
logdata = 

  struct with fields:

           Ready: [1×1 timeseries]
    Perturbation: [1×1 timeseries]
      PlantInput: [1×1 timeseries]
     PlantOutput: [1×1 timeseries]

Поле Ready является timeseries, содержащим логический сигнал, который указывает, какие временные шаги содержат данные к используемому для оценки. Для сигнала sinestream это поле указывает который периоды возмущения для оценки отбрасыванием (улаживающий периоды). Perturbation содержит sinestream возмущение, применился к объекту. PlantInput и timeseries PlantOutput содержат сигналы во входных параметрах блока u и y, соответственно.

Оцените частотную характеристику

Если вы собираете эти данные в развернутой среде с ограниченными вычислительными ресурсами, можно использовать данные, чтобы выполнить оценку частотной характеристики оффлайн, с помощью команды frestimate. Дайте frestimate структуру logdata и те же частоты, которые вы использовали для параметра Частот в блоке. процессы frestimate logdata, чтобы получить модель (frd) данных о частотной характеристике, содержащую предполагаемые ответы на тех частотах.

sys_estim = frestimate(logdata,w,'rad/s');
size(sys_estim)
FRD model with 1 outputs, 1 inputs, and 20 frequency points.

Исследуйте предполагаемую частотную характеристику.

figure
bode(sys_estim,'b*')

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

Похожие темы