В этом примере показано, как использовать блок оценки частотного отклика для выполнения оперативной оценки частотных характеристик установки. Для нелинейной установки оценка в различных номинальных рабочих точках производит различные частотные характеристики.
Частотный отклик описывает отклик системы в установившемся состоянии на синусоидальный входной сигнал. Если система является линейной G (s), то выходной сигнал представляет собой синусоидальную волну той же самой частоты с другой величиной и фазовым сдвигом. Данные частотной характеристики (frd) модель, которая хранит информацию о частотной характеристике на нескольких частотах, полезна для таких задач, как анализ динамики установки, проверка результатов линеаризации, проектирование системы управления и оценка параметрической модели.
Существуют различные способы получения frd модель в среде Simulink. Наиболее распространенным подходом является линеаризация модели Симулинка и вычисление частотных откликов непосредственно из полученной системы «состояние-пространство». Если модель Simulink не может быть линеаризована, можно использовать frestimate или используйте приложение Model Linearizer для выполнения моделирования с некоторыми сигналами возмущения. После этого частотные характеристики установки оценивают в автономном режиме на основе собранных данных эксперимента. Этот подход называется оценкой в автономном режиме.
Этот пример показывает альтернативный подход оценки в режиме онлайн, использующий блок оценки частотного отклика, заключается в проведении эксперимента и оценке частотного отклика во время моделирования. Хотя в этом примере используется установка, смоделированная в Simulink, если в Simulink отсутствует модель установки, можно развернуть блок в целевой системе и выполнить оценку частотного отклика для физической установки в реальном времени. Дополнительные сведения см. в разделе Основы оценки частотного отклика в режиме онлайн.
В этом примере используется стабильный нелинейный завод SISO. Завод имеет два состояния. Подрежьте модель, чтобы найти начальную установившуюся рабочую точку, в которой выход установки равен нулю.
plantMDL = 'scdfrePlant'; y0 = 0; op = operspec(plantMDL); op.Outputs.Known = true; op.Outputs.y = y0; options = findopOptions('DisplayReport','off'); [op_point, op_report] = findop(plantMDL,op,options); x0 = [op_report.States(1).x;op_report.States(2).x]; y0 = op_report.Outputs.y; u0 = op_report.Inputs.u;
Целью этого примера является получение частотных откликов установки от 0,1 рад/с до 10 рад/с в двух других установившихся рабочих точках, выход установки = 0,5 и выход установки = -0,5. Чтобы довести установку до этих рабочих точек, спроектируйте дискретный ПИД-контроллер в начальной рабочей точке. Используйте время выборки контроллера 0,01 с, а полоса пропускания с разомкнутым контуром составляет 20 рад/с.
Ts = 0.01;
G0 = c2d(linearize(plantMDL,op_point),Ts);
c = pidtune(G0,'pidf',20);
Модель scdfreSinestream включает установку в контур управления PID с помощью контроллера c. Он также содержит блок оценки частотного отклика в конфигурации управляющего действия + выходного возмущения. В этой конфигурации блок вставляется в контур управления между контроллером и заводом.
mdlSS = 'scdfreSinestream';
open_system(mdlSS);

Вы можете использовать сигнал запуска/остановки для запуска и остановки эксперимента оценки в режиме онлайн. Когда блок свободен, управляющий сигнал проходит через блок без каких-либо изменений.
Во время эксперимента, когда режимом эксперимента является синестрим, блок вводит синусоидальные сигналы в установку на одну частоту за другой, от самой низкой до самой высокой. По сравнению с режимом суперпозиции, синестрименный эксперимент менее интрузивен и более точен. Однако для проведения эксперимента требуется гораздо больше времени.
В этом примере можно получить точную линеаризацию модели. Поэтому его можно использовать в качестве базовой линии в блоке, позволяя непосредственно сравнивать результат оценки с этим «истинным» во время выполнения. Блок настроен на использование модели G1 в качестве базовой линии для создаваемого графика Боде. Найдите установившуюся рабочую точку, в которой выходной сигнал установки равен 0,5, и выполните линеаризацию в этой рабочей точке для получения G1.
op.Outputs.y = 0.5; op_point = findop(plantMDL,op,options); G1 = c2d(linearize(plantMDL,op_point),Ts);
Эксперимент начинается через 10 секунд после того, как ПИД-контроллер переместит установку в новую рабочую точку (y = 0,5). После начала эксперимента ПИД-контроллер пытается отбросить инжектированные синусоидальные волны, которые фактически являются возмущением нагрузки. Таким образом, контроллер гарантирует, что установка не будет перемещаться слишком далеко от номинальной рабочей точки во время эксперимента, и уменьшает влияние нелинейности установки на результат оценки. Смоделировать модель и наблюдать на графике Боде, как расчетный отклик развивается во время эксперимента. Результат оценки очень хорошо соответствует базовому уровню.
sim(mdlSS);
figSS = gcf;
hold on;

Откройте другую модель, scdfreeSuperposition. В этой модели блок оценки частотного отклика конфигурируется только для выходного сигнала возмущения. В этой конфигурации можно установить блокировку вне контура управления. Когда блок свободен, сигнал возмущения, поступающий в блок Sum, равен 0, поэтому петля не затрагивается.
mdlSP = 'scdfreSuperposition';
open_system(mdlSP);

Эта модель имеет один и тот же завод и контроллер. Однако блок оценки частотного отклика в этой модели сконфигурирован для использования режима эксперимента суперпозиции. В этом режиме все синусоидальные волны складываются вместе и впрыскиваются в установку одновременно. По сравнению с экспериментом с синестримом, эксперимент с суперпозицией должен быть быстрее (особенно когда вы нацелены на низкие частоты).
Нахождение установившейся рабочей точки с выходом установки -0,5. Линеаризация установки для поиска базовой реакции в этой рабочей точке, G2. Блок оценки частотного отклика конфигурируется для использования этой базовой линии для формирования графика Боде.
op.Outputs.y = -0.5; op_point = findop(plantMDL,op,options); G2 = c2d(linearize(plantMDL,op_point),Ts);
Эксперимент начинается через 10 секунд после того, как ПИД-контроллер переместит установку в новую рабочую точку (y = -0,5). Следует отметить, что рекомендуемая продолжительность эксперимента составляет 377 секунд, намного короче 1738 секунд, используемых в эксперименте с синестримом. Смоделировать модель и снова наблюдать за ходом оценки на графике Боде.
sim(mdlSP);
figSP = gcf;
hold on;

Блок оценки частотного отклика имеет data outport, который позволяет регистрировать данные эксперимента из моделирования или в реальном времени. Этот набор данных можно обработать в автономном режиме с помощью frestimate для создания frd объект.
w = logspace(-1,1,20);
Сравнение результатов оценки в режиме онлайн и оффлайн из эксперимента синестрима.
G1frd = frestimate(dataSS,w,'rad/s'); figure(figSS); bodeplot(gca,G1frd,w,'o'); legend('truth','online','offline')

Сравнение результатов оценки в режиме онлайн и в автономном режиме из эксперимента суперпозиции.
G2frd = frestimate(dataSP,w,'rad/s'); figure(figSP); bodeplot(gca,G2frd,w,'o'); legend('truth','online','offline')

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