Регулирование толщины стальной балки

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

Модель стойки качения

На фигуры и 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')

Двухосевой проект

Вы можете спроектировать аналогичный регулятор 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 можно использовать эти два регулятора независимо для управления двухосевым прокатным станом.

Эффекты поперечного сцепления

Обработка каждой оси отдельно действительна, пока они довольно развязаны. К сожалению, прокатные станы имеют некоторое количество поперечных связей между осями, поскольку увеличение силы вдоль х сжимает материал и вызывает относительное уменьшение силы вдоль оси y.

Эффекты сшивания моделируются как показано фигура с gxy = 0,1 и gyx = 0,4.

Фигура 5. Модель кросс-муфты.

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

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: Структура управления MIMO.

Вы можете спроектировать регулятор MIMO LQG для двухосевой модели, используя те же шаги, что и для предыдущих проектов 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 толщины для двухосевой модели:

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 двухосного прокатного стана.