Настройка системы управления MIMO для заданной полосы пропускания

Этот пример показывает, как настроить следующую систему управления, чтобы достичь частоты среза цикла между 0,1 и 1 рад/с, используя looptune.

Объект, G, является моделью с двумя входами и двумя выходами (y является двухэлементным векторным сигналом). В данном примере передаточная функция G определяется:

G(s)=175s+1[87.8-86.4108.2-109.6].

Этот образец объекта основан на дистилляционном столбце, описанной более подробно в примере контроллера расцепления для дистилляционного столбца.

Чтобы настроить эту систему управления, вы сначала создадите числовую модель объекта управления. Затем вы создаете настраиваемые модели элементов контроллера и соединяете их, чтобы создать модели контроллеров. Тогда используете looptune для настройки свободных параметров моделей контроллеров. Наконец, исследуйте эффективность настроенной системы, чтобы подтвердить, что настроенный контроллер приводит к желательной эффективности.

Создайте модель объекта управления.

s = tf('s');
G = 1/(75*s+1)*[87.8 -86.4; 108.2 -109.6];
G.InputName = {'qL','qV'};
G.OutputName = 'y';

Когда вы настраиваете систему управления, looptune использует имена каналов G.InputName и G.OutputName для соединения объекта управления и контроллера. Поэтому присвойте эти имена каналов, чтобы они совпадали с рисунком. Когда вы задаете G.OutputName = 'y', а G.OutputName автоматически расширяется до {'y(1)';'y(2)'}. Это расширение происходит из-за G является системой с двумя выходами.

Представление компонентов контроллера.

D = tunableGain('Decoupler',eye(2));
D.InputName = 'e';
D.OutputName = {'pL','pV'};

PI_L = tunablePID('PI_L','pi');
PI_L.InputName = 'pL';
PI_L.OutputName = 'qL';
  
PI_V = tunablePID('PI_V','pi'); 
PI_V.InputName = 'pV';
PI_V.OutputName = 'qV'; 

sum1 = sumblk('e = r - y',2);

Система управления включает несколько настраиваемых элементов управления. PI_L и PI_V настраиваемые ПИ-контроллеры. Эти элементы представлены tunablePID модели. Фиксированная структура управления также включает матрицу усиления развязки D, представленный настраиваемым tunableGain модель. Когда система управления настроена, D гарантирует, что каждый выход G отслеживает соответствующие опорные сигналы r с минимальной перекрестной помехой.

Назначение InputName и OutputName значения к этим элементам управления позволяют вам соединить их, чтобы создать настраиваемую модель всего контроллера C как показано.

Когда вы настраиваете систему управления, looptune использует эти имена каналов для соединения C и G. Контроллер C также включает суммирующее соединение sum1. Это двухканальное суммирующее соединение, потому что r и y являются векторными сигналами размерности 2.

Подключите компоненты контроллера.

C0 = connect(PI_L,PI_V,D,sum1,{'r','y'},{'qL','qV'});

C0 является настраиваемым genss модель, которая представляет целую структуру контроллера. C0 сохраняет настраиваемые параметры контроллера и содержит начальные значения этих параметров.

Настройте систему управления.

Входы для looptune являются G и C0, заводские и начальные модели контроллеров, которые вы создали. Область входа wc = [0.1,1] устанавливает целевую область значений для цикла полосы пропускания. Этот вход задает, что частота среза каждого цикла в настроенной системе падает между 0,1 и 1 рад/мин.

wc = [0.1,1];
[G,C,gam,Info] = looptune(G,C0,wc);

Отображаемая Peak Gain = 0.949 указывает, что looptune обнаружил значения параметров, которые достигают целевого значения цикла полосы пропускания. looptune отображает окончательное пиковое значение усиления запуска оптимизации, которое также является выходом gam. Если gam меньше чем 1, все требования к настройке удовлетворены. Значение, больше 1, указывает на отказ некоторых требований. Если gam превышает 1, можно увеличить диапазон целевой полосы пропускания или ослабить другое требование настройки.

looptune также возвращает настроенные модели контроллеров C. Эта модель является настроенной версией C0. Он содержит коэффициенты PI и значения усиления развязки матрицы, которые дают оптимизированное пиковое значение усиления.

Отобразите настроенные параметры контроллера.

showTunable(C)

Проверьте ответ во временной области для системы управления с настроенными коэффициентами. Чтобы создать график, создайте модель с обратной связью настроенной системы управления. Постройте график переходной характеристики от ссылки до вывода.

T = connect(G,C,'r','y');
step(T)

Матрица развязки в контроллере позволяет каждому каналу двухканального выходного сигнала y отслеживать соответствующий канал опорного сигнала r, с минимальной перекрестной помехой. Из графика можно, насколько хорошо это требование достигается, когда вы настраиваете систему управления только на пропускную способность. Если перекрестный помеха все еще превышает ваши проекты требования, можно использовать TuningGoal.Gain требование возлагает дополнительные ограничения на настройку.

Исследуйте частотный диапазон ответ настроенного результата как альтернативный метод для проверки настроенного контроллера.

figure('Position',[100,100,520,1000])
loopview(G,C,Info)

Первый график показывает, что разомкнутые контуры кроссоверы усиления попадают в заданный интервал [0.1,1]. Этот график также включает максимальное и настроенное значения функции чувствительности S=(I-GC)-1 и дополнительная чувствительность T=I-S. Второй и третий графики показывают, что запасы устойчивости MIMO настроенной системы (синяя кривая) не превышают верхнего предела (желтая кривая).

Похожие примеры

Подробнее о