Управление толщиной для стальной балки

Этот пример показывает, как разработать регулятор 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 для оси X

Сначала разработайте регулятор 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')

Оценка регулятора LQG

Замкните круг регулирования, показанный в рисунке 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')

Проект 2D оси

Можно разработать подобный регулятор 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

Проект 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®, нажимаете на ссылку ниже, чтобы открыть компаньона модель Simulink®, которая реализует и многоконтурный SISO и архитектуры управления MIMO. Можно использовать эту модель, чтобы сравнить оба проекта путем переключения между проектами во время симуляции.

Открытая модель Simulink металлопрокатного завода 2D оси.

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