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

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

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

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

Откройте модель.

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

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

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

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

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

sim(mdl)
open_system('CollectFreqRespEstimDataEx/Scope1')

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

logdata = logsout{1}.Values
logdata = 

  struct with fields:

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

Ready поле является timeseries, содержащим логический сигнал, который указывает, какие временные шаги содержат данные к используемому для оценки. Для сигнала sinestream это поле указывает который периоды возмущения для оценки отбрасыванием (улаживающий периоды). Perturbation содержит sinestream возмущение, применился к объекту. PlantInput и PlantOutput timeseries содержит сигналы во входных параметрах блока 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*')

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

Похожие темы