Этот пример показывает, как настроить следующую систему управления, чтобы достигнуть частоты перекрестного соединения цикла между 0,1 и 1 рад/с, с помощью looptune
.
Объект, G
, является 2D входом, 2D выходная модель (y двухэлементный векторный сигнал). В данном примере передаточной функцией G
дают:
Этот демонстрационный объект основан на столбце дистилляции, описанном более подробно в Контроллере Разъединения в качестве примера для Столбца Дистилляции (Control System Toolbox).
Чтобы настроить эту систему управления, вы сначала создаете числовую модель объекта. Затем вы создаете настраиваемые модели элементов контроллера и соединяете их, чтобы создать модели контроллеров. Затем вы используете 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
являются настраиваемыми контроллерами PI. Эти элементы представлены моделями 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.974, Iterations = 19 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 2.138 -1.302 y2 -1.585 1.296 Name: Decoupler Static gain. ----------------------------------- PI_L = 1 Kp + Ki * --- s with Kp = 1.5, Ki = 0.0435 Name: PI_L Continuous-time PI controller in parallel form. ----------------------------------- PI_V = 1 Kp + Ki * --- s with Kp = -1.74, Ki = -0.0533 Name: PI_V Continuous-time PI controller in parallel form.
Проверяйте ответ временного интервала на систему управления с настроенными коэффициентами. Чтобы произвести график, создайте модель с обратной связью настроенной системы управления. Постройте переходной процесс от ссылки до выходного.
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]
. Этот график также включает максимальные и настроенные значения функции чувствительности и дополнительная чувствительность . Вторые и третьи графики показывают, что запасы устойчивости MIMO настроенной системы (синяя кривая) не превышают верхний предел (желтая кривая).