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

В этом примере показано, как спроектировать регулятор MIMO LQG, чтобы управлять горизонтальной и вертикальной толщиной стальной балки в горячем стальном металлопрокатном заводе.

Прокрутка выдерживает модель

Рисунки 1 и 2 изображают процесс формирования луча горячей стали путем сжатия его с прокручивающимися цилиндрами.

Рисунок 1: излучите формирование путем прокрутки цилиндров.

Рисунок 2: металлопрокатный завод стоит.

Желаемая форма H впечатлена двумя парами прокручивающихся цилиндров (один на ось) расположенный гидравлическими приводами. Разрыв между этими двумя цилиндрами делается перекличку разрыв. Цель состоит в том, чтобы обеспечить толщину X и Y в заданных допусках. Изменения толщины возникают, в основном, из изменений толщины и твердости входящего луча (входное воздействие) и эксцентриситеты прокручивающихся цилиндров.

Модель разомкнутого цикла для x или осей y показывают в рисунке 3. Воздействие эксцентриситета моделируется как белый шумовой w_e управление полосовым фильтром Fe. Входное воздействие толщины моделируется как белый шумовой w_i управление lowpass фильтрует Fi. Управление с обратной связью необходимо, чтобы противостоять таким воздействиям. Поскольку разрыв списка delta не может быть измерен близко к стенду, прокручивающаяся сила f используется в обратной связи.

Рисунок 3: модель разомкнутого цикла.

Создавание модели разомкнутого цикла

Эмпирические модели для фильтров Fe и Fi поскольку ось X

$$ F_{ex} = { 3 \times 10^4 s \over s^2 + 0.125 s + 6^2 } , \;\;\;
F_{ix} = { 10^4 \over s + 0.05 } $$

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

$$ H_x = { 2.4  \times 10^8 \over s^2 + 72 s + 90^2 } , \;\;\;  g_x = 10^{-6} $$

Чтобы создать модель разомкнутого цикла в рисунке 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 выбрано, чтобы минимизировать функцию стоимости формы

$$ C(u) = \int_0^{\infty} \left( \delta^2 (t) + \beta u^2(t) \right) dt $$

где параметр 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 оси.

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