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

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

Объект, G, 2D вход, 2D выходная модель (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 2D выходная система.

Представляйте компоненты контроллера.

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 рад/min.

wc = [0.1,1];
[G,C,gam,Info] = looptune(G,C0,wc);
Final: Peak gain = 0.983, Iterations = 26
Achieved target gain value TargetGain=1.

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

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

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

showTunable(C)
Decoupler =
 
  D = 
            u1       u2
   y1    1.403  -0.9678
   y2   -1.566    1.279
 
Name: Decoupler
Static gain.
-----------------------------------
PI_L =
 
             1 
  Kp + Ki * ---
             s 

  with Kp = 2.16, Ki = 0.105
 
Name: PI_L
Continuous-time PI controller in parallel form.
-----------------------------------
PI_V =
 
             1 
  Kp + Ki * ---
             s 

  with Kp = -1.72, Ki = -0.0721
 
Name: PI_V
Continuous-time PI controller in parallel form.

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

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

Figure contains 4 axes objects. Axes object 1 with title From: r(1) contains an object of type line. This object represents T. Axes object 2 contains an object of type line. This object represents T. Axes object 3 with title From: r(2) contains an object of type line. This object represents T. Axes object 4 contains an object of type line. This object represents T.

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

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

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

Figure contains 5 axes objects. Axes object 1 contains 9 objects of type line. These objects represent S, T, Loop gain(s), Scaled loop gains, Target loop shape, S bound, T bound. Axes object 2 contains an object of type line. These objects represent Required margins, Stability margins. Axes object 3 contains an object of type line. These objects represent Required margins, Stability margins, Tuned lower bound. Axes object 4 contains an object of type line. These objects represent Required margins, Stability margins. Axes object 5 contains an object of type line. These objects represent Required margins, Stability margins, Tuned lower bound.

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

Связанные примеры

Больше о