Этот пример показывает, как разработать регулятор MIMO LQG, чтобы управлять горизонтальной и вертикальной толщиной стальной балки в горячем стальном металлопрокатном заводе.
Рисунки 1 и 2 изображают процесс формирования луча горячей стали путем сжатия его с прокручивающимися цилиндрами.
Рисунок 1: излучите формирование путем прокрутки цилиндров.
Рисунок 2: металлопрокатный завод стоит.
Желаемая форма H впечатлена двумя парами прокручивающихся цилиндров (один на ось) расположенный гидравлическими приводами. Разрыв между этими двумя цилиндрами делается перекличку разрыв. Цель состоит в том, чтобы поддержать толщину X и Y в заданных допусках. Изменения толщины возникают, в основном, из изменений в толщине и твердости входящего луча (входное воздействие) и эксцентриситеты прокручивающихся цилиндров.
Модель разомкнутого цикла для x или осей y показывают в рисунке 3. Воздействие эксцентриситета моделируется как белый шумовой w_e
, управляющий полосовым фильтром Fe
. Входное воздействие толщины моделируется как белый шумовой w_i
, управляющий фильтром нижних частот Fi
. Управление с обратной связью необходимо, чтобы противостоять таким воздействиям. Поскольку разрыв списка, delta
не может быть измерен близко к стенду, прокручивающаяся сила f
, используется для обратной связи.
Рисунок 3: модель разомкнутого цикла.
Эмпирические модели для фильтров Fe
и Fi
для оси X
и привод и усиление разрыва к силе моделируются как
Чтобы создать модель разомкнутого цикла в рисунке 3, запустите путем определения каждого блока:
Hx = tf(2.4e8 , [1 72 90^2] , 'inputname' , 'u_x'); Fex = tf([3e4 0] , [1 0.125 6^2] , 'inputname' , 'w_{ex}'); Fix = tf(1e4 , [1 0.05] , 'inputname' , 'w_{ix}'); gx = 1e-6;
Затем создайте передаточную функцию от u,we,wi
до f1,f2
с помощью конкатенации и append
можно следующим образом. Чтобы улучшить числовую точность, переключитесь на представление пространства состояний, прежде чем вы соедините модели:
T = append([ss(Hx) Fex],Fix);
Наконец, примените отображение преобразования f1,f2
к delta,f
:
Px = [-gx gx;1 1] * T; Px.OutputName = {'x-gap' , 'x-force'};
Постройте значение частотной характеристики от нормированных воздействий w_e
и w_i
к выходным параметрам:
bodemag(Px(: , [2 3]),{1e-2,1e2}), grid
Отметьте пик в 6 радах/секунда, соответствующих (периодическому) воздействию эксцентриситета.
Сначала разработайте регулятор LQG, чтобы ослабить изменения толщины из-за эксцентриситета и ввести воздействия толщины w_e
и w_i
. Регуляторы LQG генерируют команды привода u =-K x_e, где x_e является оценкой состояний объекта. Эта оценка выведена от доступных измерений прокручивающейся силы f
с помощью наблюдателя под названием "Фильтр Калмана".
Рисунок 4: управляющая структура LQG.
Используйте lqry
, чтобы вычислить, подходящая обратная связь состояния получают K. Усиление K выбрано, чтобы минимизировать функцию стоимости формы
где параметр beta
используется, чтобы обменять усилие по управлению и производительность. Для beta
= 1e-4, можно вычислить оптимальное усиление путем ввода
Pxdes = Px('x-gap','u_x'); % transfer u_x -> x-gap Kx = lqry(Pxdes,1,1e-4)
Kx = 0.0621 0.1315 0.0222 -0.0008 -0.0074
Затем, используйте kalman
, чтобы разработать Оценку состояния фильтра Калмана для состояний объекта. Установите ковариацию шума измерения на 1e4 ограничивать усиление в высоких частотах:
Ex = kalman(Px('x-force',:),eye(2),1e4);
Наконец, используйте lqgreg
, чтобы собрать регулятор LQG Regx от
Kx
и Ex
:
Regx = lqgreg(Ex,Kx); zpk(Regx)
ans = From input "x-force" to output "u_x": -0.012546 (s+10.97) (s-2.395) (s^2 + 72s + 8100) ---------------------------------------------------------- (s+207.7) (s^2 + 0.738s + 32.33) (s^2 + 310.7s + 2.536e04) Input groups: Name Channels Measurement 1 Output groups: Name Channels Controls 1 Continuous-time zero/pole/gain model.
bode(Regx),
grid, title('LQG Regulator')
Замкните круг регулирования, показанный в рисунке 4:
clx = feedback(Px,Regx,1,2,+1);
Обратите внимание на то, что в этой команде, +1 счет на то, что lqgreg
вычисляет компенсатор позитивных откликов.
Можно теперь сравнить открытое - и ответы с обратной связью на эксцентриситет и ввести воздействия толщины:
bodemag(Px(1,2:3),'b',clx(1,2:3),'r',{1e-1,1e2}) grid, legend('Open Loop','Closed Loop')
Диаграмма Боде указывает на затухание на 20 дБ эффектов воздействия. Можно подтвердить это путем симуляции вызванных воздействием изменений толщины с и без регулятора LQG можно следующим образом:
dt = 0.01; % simulation time step t = 0:dt:30; wx = sqrt(1/dt) * randn(2,length(t)); % sampled driving noise h = lsimplot(Px(1,2:3),'b',clx(1,2:3),'r',wx,t); h.Input.Visible = 'off'; legend('Open Loop','Closed Loop')
Можно разработать подобный регулятор LQG для оси y. Используйте следующий привод, усиление и возмущения:
Hy = tf(7.8e8,[1 71 88^2],'inputname','u_y'); Fiy = tf(2e4,[1 0.05],'inputname','w_{iy}'); Fey = tf([1e5 0],[1 0.19 9.4^2],'inputn','w_{ey}'); gy = 0.5e-6;
Можно создать модель разомкнутого цикла путем ввода
Py = append([ss(Hy) Fey],Fiy); Py = [-gy gy;1 1] * Py; Py.OutputName = {'y-gap' 'y-force'};
Можно затем вычислить соответствующий регулятор LQG путем ввода
ky = lqry(Py(1,1),1,1e-4); Ey = kalman(Py(2,:),eye(2),1e4); Regy = lqgreg(Ey,ky);
Принятие x-и оси Y разъединяется, можно использовать эти два регулятора независимо, чтобы управлять металлопрокатным заводом 2D оси.
Обработка каждой оси отдельно допустима, пока они справедливо разъединяются. К сожалению, металлопрокатные заводы имеют некоторый объем перекрестной связи между осями, потому что увеличение силы вдоль x сжимает материал и вызывает относительное уменьшение в силе вдоль оси y.
Эффекты перекрестной связи моделируются как показано в рисунке 5 с gxy=0.1 и gyx=0.4.
Рисунок 5: модель перекрестной связи.
Чтобы изучить эффект перекрестной связи на разъединенных циклах SISO, создайте модель 2D оси в рисунке 5 и закройте x-и циклы оси Y с помощью ранее разработанных регуляторов LQG:
gxy = 0.1; gyx = 0.4; P = append(Px,Py); % Append x- and y-axis models P = P([1 3 2 4],[1 4 2 3 5 6]); % Reorder inputs and outputs CC = [1 0 0 gyx*gx ;... % Cross-coupling matrix 0 1 gxy*gy 0 ;... 0 0 1 -gyx ;... 0 0 -gxy 1 ]; Pxy = CC * P; % Cross-coupling model Pxy.outputn = P.outputn; clxy0 = feedback(Pxy,append(Regx,Regy),1:2,3:4,+1);
Теперь, моделируйте разрывы толщины X и Y для модели 2D оси:
wy = sqrt(1/dt) * randn(2,length(t)); % y-axis disturbances wxy = [wx ; wy]; h = lsimplot(Pxy(1:2,3:6),'b',clxy0(1:2,3:6),'r',wxy,t); h.Input.Visible = 'off'; legend('Open Loop','Closed Loop')
Отметьте высокие изменения толщины вдоль оси X. Обработка каждой оси отдельно является несоответствующей, и необходимо использовать объединенную ось, проект MIMO, чтобы правильно обработать эффекты перекрестной связи.
Проект MIMO состоит из одного регулятора, который использует и измерения силы fx
и fy
, чтобы вычислить команды привода, u_x
и u_y
. Эта архитектура управления изображена в рисунке 6.
Рисунок 6: управляющая структура MIMO.
Можно разработать регулятор MIMO LQG для модели 2D оси, использующей те же самые шаги что касается ранее проектов SISO. Во-первых, вычислите усиление обратной связи состояния, затем вычислите средство оценки состояния, и наконец соберите эти два компонента с помощью lqgreg
. Используйте следующие команды, чтобы выполнить эти шаги:
Kxy = lqry(Pxy(1:2,1:2),eye(2),1e-4*eye(2)); Exy = kalman(Pxy(3:4,:),eye(4),1e4*eye(2)); Regxy = lqgreg(Exy,Kxy);
Чтобы сравнить производительность MIMO и многоконтурных проектов SISO, замкните круг MIMO в рисунке 6:
clxy = feedback(Pxy,Regxy,1:2,3:4,+1);
Затем моделируйте разрывы толщины X и Y для модели 2D оси:
h = lsimplot(Pxy(1:2,3:6),'b',clxy(1:2,3:6),'r',wxy,t); h.Input.Visible = 'off'; legend('Open Loop','Closed Loop')
Проект MIMO не показывает потери производительности в оси X, и уровни затухания воздействия теперь совпадают с полученными для каждой отдельной оси. Улучшение также очевидно, когда сравнение основных усилений ответов с обратной связью от входных воздействий до толщины разрывает x-gap, y-gap
:
sigma(clxy0(1:2,3:6),'b',clxy(1:2,3:6),'r',{1e-2,1e2}) grid, legend('Two SISO Loops','MIMO Loop')
Отметьте, как регулятор MIMO делает лучшее задание при хранении усиления одинаково низко во всех направлениях.
Если вы - пользователь Simulink®, нажимаете на ссылку ниже, чтобы открыть компаньона модель Simulink®, которая реализует и многоконтурный SISO и архитектуры управления MIMO. Можно использовать эту модель, чтобы сравнить оба проекта путем переключения между проектами во время симуляции.
Открытая модель Simulink металлопрокатного завода 2D оси.