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

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

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

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

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

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

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

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

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

sim(mdl)

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

logdata = logsout{1}.Values
logdata = 

  struct with fields:

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

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

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

Если вы собираете эти данные в развёрнутом окружении с ограниченными вычислительными ресурсами, можно использовать данные для выполнения оценки частотной характеристики в автономном режиме, используя frestimate команда. Дайте frestimate а logdata структуру и те же частоты, которые вы использовали для параметра Frequencies в блоке. 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*')

См. также

Похожие темы