Этот пример показывает, как спроектировать регулятор MIMO LQG для управления горизонтальной и вертикальной толщиной стальной балки в стане горячей прокатки.
На фигуры и 2 показан процесс формования балки из горячей стали путем сжатия ее цилиндрами качения.
Фигура 1: Формирование балки цилиндрами качения.
Фигура 2: Стойка прокатного стана.
Требуемая форма H впечатлена двумя парами цилиндров качения (по одному на ось), расположенных гидравлическими приводами. Зазор между двумя цилиндрами называется зазором крена. Цель состоит в том, чтобы поддерживать толщину x и y в пределах заданных допусков. Изменения толщины возникают в основном из-за изменений толщины и твердости входящей балки (входное нарушение порядка) и эксцентриситетов цилиндров качения.
Модель разомкнутого контура для осей x или y показана на фигуре 3. Нарушение порядка эксцентриситета моделируется как белый шум w_e
управление полосно-пропускающим фильтром Fe
. Входное нарушение порядка толщины моделируется как белый шум w_i
управление фильтром lowpass 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 можно использовать эти два регулятора независимо для управления двухосевым прокатным станом.
Обработка каждой оси отдельно действительна, пока они довольно развязаны. К сожалению, прокатные станы имеют некоторое количество поперечных связей между осями, поскольку увеличение силы вдоль х сжимает материал и вызывает относительное уменьшение силы вдоль оси 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 состоит из одного регулятора, который использует оба измерения силы 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 ®, которая реализует как многошаговую архитектуру SISO, так и MIMO. Можно использовать эту модель для сравнения обоих проектов путем переключения между проектами во время симуляции.
Откройте модель Simulink двухосного прокатного стана.