Онлайн-оценка частотных характеристик нелинейного объекта

Этот пример показывает, как использовать блок Frequency Response Estimator для выполнения онлайн-оценки частотных характеристик объекта. Для нелинейного объекта оценка в различных номинальных рабочих точках производит различные частотные характеристики.

Оценка частотной характеристики в реальном времени

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

Существуют различные способы получить frd модель в окружение Simulink. Наиболее распространенным подходом является линеаризация модели Simulink и вычисление частотных характеристик непосредственно от полученной системы в пространстве состояний. Когда модель Simulink не может быть линеаризирована, можно использовать frestimate команда или используйте приложение Model Linearizer, чтобы запустить симуляцию с некоторыми сигналами возмущения. После этого частотные характеристики объекта оценивают в автономном режиме на основе собранных данных эксперимента. Этот подход называется оффлайн-оценкой.

Этот пример показывает альтернативный подход онлайн-оценки, используя блок Frequency Response Estimator, чтобы провести эксперимент и оценить частотную характеристику во время симуляции. Хотя в этом примере используется объект, смоделированный в 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);

Онлайн-оценка с использованием режима Sinestream

Модель scdfreSinestream включает объект в ПИД цикла управления с использованием контроллера c. Он также содержит блок Частотной характеристики Estimator в действии управления + возмущении выхода строения. В этом строении вы вставляете блок в цикл управления между контроллером и объектом.

mdlSS = 'scdfreSinestream';
open_system(mdlSS);

Можно использовать сигнал start/stop, чтобы начать и остановить онлайн-эксперимент по оценке. Когда блок находится в простое, управляющий сигнал проходит через блок без каких-либо изменений.

Во время эксперимента, когда Режим Эксперимента является Sinestream, блок вводит синусоидальные сигналы в объект одну за другой частоту, от самой низкой до самой высокой. По сравнению с режимом Суперпозиции, эксперимент с синестримом менее интрузивен и более точен. Однако для проведения эксперимента требуется гораздо больше времени.

В этом примере можно получить точную линеаризацию модели. Поэтому вы можете использовать его как базовую линию в блоке, позволяя вам непосредственно сравнить результат оценки с этой «правдой» во время исполнения. Блок сконфигурирован так, чтобы использовать модель 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. В этой модели блок Частотной характеристики Estimator сконфигурирован для возмущения только выходом. В этом строении можно расположить, чтобы заблокировать вне цикла управления. Когда блок находится в простое, сигнал возмущения, входящий в блок Sum, равен 0, поэтому цикл не влияет.

mdlSP = 'scdfreSuperposition';
open_system(mdlSP);

Эта модель имеет один и тот же объект и контроллер. Однако блок Частотной характеристики Estimator в этой модели сконфигурирован, чтобы использовать режим эксперимента с Суперпозицией. В этом режиме все синусоиды складываются вместе и впрыскиваются на объект одновременно. По сравнению с экспериментом с синестримом, эксперимент с суперпозицией должен быть быстрее (особенно когда вы нацелены на низкие частоты).

Найдите установившуюся рабочую точку с выходом объекта -0,5. Линеаризируйте объект, чтобы найти базовый ответ в этой рабочей точке, G2. Блок Частотной характеристикой Estimator сконфигурирован, чтобы использовать эту базовую линию для генерации Диаграммы Боде.

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')

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

См. также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте