Регулирование LQG: тематическое исследование металлопрокатного завода

Обзор этого Тематического исследования

Это тематическое исследование демонстрирует использование Design Tool LQG в приложении управления процессом. Цель состоит в том, чтобы отрегулировать горизонтальную и вертикальную толщину луча, произведенного горячим стальным металлопрокатным заводом. Этот пример адаптируется от [1]. Полной моделью объекта управления является MIMO, и пример показывает преимущество прямого проекта MIMO LQG по отдельным проектам SISO для каждой оси. Ввод

milldemo

в командной строке, чтобы запустить эту демонстрацию в интерактивном режиме.

Процесс и возмущения

Металлопрокатный завод используется, чтобы сформировать прямоугольные лучи горячего металла. Желаемая исходящая форма коротко изложена ниже.

Эта форма впечатлена двумя парами прокручивающихся цилиндров (один на ось) расположенный гидравлическими приводами. Разрыв между этими двумя цилиндрами делается перекличку разрыв.

Цель состоит в том, чтобы поддержать толщину луча вдоль x- и осей y- в допусках гарантии качества. Изменения в выходной толщине могут явиться результатом следующего:

  • Изменения в толщине/твердости входящего луча

  • Эксцентриситет в прокручивающихся цилиндрах

Управление с обратной связью необходимо, чтобы уменьшать эффект этих воздействий. Поскольку разрыв списка не может быть измерен близко к фрезе, стоят, прокручивающаяся сила используется вместо этого для обратной связи.

Входное воздействие толщины моделируется как фильтр нижних частот, управляемый белым шумом. Воздействие эксцентриситета является приблизительно периодическим, и его частота является функцией прокручивающейся скорости. Разумная модель для этого воздействия является полосовым фильтром второго порядка, управляемым белым шумом.

Это приводит к следующей типичной модели для каждой оси процесса прокрутки.

Измеренное изменение силы прокрутки f является комбинацией инкрементной силы, обеспеченной гидравлическим приводом и воздействия, обеспечивает из-за эксцентриситета и входного изменения толщины. Обратите внимание на то, что:

  • Выходные параметры H (s), Fe (s) и Fi (s) являются инкрементными силами, поставленными каждым компонентом.

  • Увеличение гидравлического или силы эксцентриситета уменьшает выходной разрыв толщины δ.

  • Увеличение входной толщины увеличивает этот разрыв.

Данные модели для каждой оси получены в итоге ниже.

Данные модели для оси X

Hx(s)=2.4×108s2+72s+902Fix(s)=104s+0.05Fex(s)=3×104ss2+0.125s+62gx=106

Данные модели для оси Y

Hy(s)=7.8×108s2+71s+882Fiy(s)=2×104s+0.05Fey(s)=105ss2+0.19s+9.42gy=0.5×106

Проект LQG для оси X

Как первое приближение, проигнорируйте перекрестную связь между x - и y - оси и обработайте каждую ось независимо. Таким образом, разработайте один регулятор SISO LQG для каждой оси. Цель проекта состоит в том, чтобы уменьшать изменения толщины δx и δy из-за эксцентриситета и вводить воздействия толщины.

Запустите с x - ось. Сначала задайте компоненты модели, когда передаточная функция возражает.

% Hydraulic actuator (with input "u-x")
Hx = tf(2.4e8,[1 72 90^2],'inputname','u-x')

% Input thickness/hardness disturbance model
Fix = tf(1e4,[1 0.05],'inputn','w-ix')

% Rolling eccentricity model
Fex = tf([3e4 0],[1 0.125 6^2],'inputn','w-ex')

% Gain from force to thickness gap
gx = 1e-6;

Затем создайте модель разомкнутого цикла, показанную в Процессе и Возмущениях. Вы могли использовать функциональный connect с этой целью, но легче создать эту модель элементарным append и связями series.

% I/O map from inputs to forces f1 and f2
Px = append([ss(Hx) Fex],Fix)

% Add static gain from f1,f2 to outputs "x-gap" and "x-force" 
Px = [-gx gx;1 1] * Px

% Give names to the outputs:
set(Px,'outputn',{'x-gap' 'x-force'})

Примечание

Чтобы получить минимальную реализацию пространства состояний, всегда преобразовывайте модели передаточной функции в пространство состояний прежде, чем соединить их. Объединение передаточных функций и затем преобразование в пространство состояний могут произвести неминимальные модели в пространстве состояний.

Переменная Px теперь содержит модель в пространстве состояний разомкнутого цикла вместе с именами ввода и вывода.

Px.inputname

ans = 
    'u-x'
    'w-ex'
    'w-ix'

Px.outputname

ans = 
    'x-gap'
    'x-force'

Второй вывод 'x-force' является прокручивающимся измерением силы. Регулятор LQG будет использовать это измерение, чтобы управлять гидравлическим приводом и уменьшать вызванные воздействием изменения толщины δx.

Проект LQG включает два шага:

  1. Разработайте усиление полной обратной связи состояния, которое минимизирует критерий качества работы LQ формы

    J(ux)=0{qδx2+rux2}dt

  2. Разработайте Фильтр Калмана, который оценивает вектор состояния, учитывая измерения силы 'x-force'.

Критерий производительности J (ux) штрафует низкие частоты и высокие частоты одинаково. Поскольку низкочастотные изменения вызывают первоочередное беспокойство, устраняют высокочастотное содержимое δx с фильтром нижних частот 30 / (s + 30) и используют отфильтрованное значение в критерии производительности LQ.

lpf = tf(30,[1 30])

% Connect low-pass filter to first output of Px
Pxdes = append(lpf,1) * Px
set(Pxdes,'outputn',{'x-gap*' 'x-force'})

% Design the state-feedback gain using LQRY and q=1, r=1e-4
kx = lqry(Pxdes(1,1),1,1e-4)

Примечание

lqry ожидает, что все входные параметры будут командами и всеми выходными параметрами, чтобы быть измерениями. Здесь команда 'u-x' и измерение 'x-gap*' (отфильтрованный разрыв) является первым входом и первым выводом Pxdes. Следовательно, используйте синтаксис Pxdes(1,1), чтобы задать только отношение ввода-вывода между 'u-x' и 'x-gap*'.

Затем, разработайте Оценку состояния фильтра Калмана с функциональным kalman. Шум процесса

wx=[wexwix]

имеет модульную ковариацию конструкцией. Установите ковариацию шума измерения на 1 000 ограничивать высокочастотное усиление и сохранять только измеренный вывод 'x-force' для проекта средства оценки.

estx = kalman(Pxdes(2,:),eye(2),1000)

Наконец, соединитесь, обратная связь состояния получают kx и утверждают средство оценки estx, чтобы сформировать регулятор LQG.

Regx = lqgreg(estx,kx)

Это завершает проект LQG для x −axis.

Давайте посмотрим на регулятор, Предвещают ответ между 0,1 и 1 000 радов/секунда.

h = bodeplot(Regx,{0.1 1000})
setoptions(h,'PhaseMatching','on')

Фазовый отклик имеет интересную физическую интерпретацию. Во-первых, рассмотрите увеличение входной толщины. Это низкочастотное воздействие повышает и выходную толщину и прокручивающий силу. Поскольку фаза регулятора приблизительно 0o в низких частотах, обратная связь затем соответственно реагирует путем увеличения гидравлической силы, чтобы сместить увеличение толщины. Теперь рассмотрите эффект эксцентриситета. Эксцентриситет вызывает колебания разрыва списка (разрыв между прокручивающимися цилиндрами). Когда разрыв списка минимален, прокручивающиеся увеличения силы и толщина луча уменьшается. Гидравлическая сила должна затем уменьшаться (отрицательная обратная связь силы), чтобы восстановить желаемую толщину. Это точно, что делает регулятор LQG, когда его фаза спадает до-180o около собственной частоты воздействия эксцентриситета (6 радов/секунда).

Затем, сравните открытое - и ответы с обратной связью от воздействия до разрыва толщины. Используйте feedback, чтобы замкнуть круг. Чтобы помочь задать связь обратной связи, посмотрите на имена ввода-вывода объекта Px и регулятор Regx.

Px.inputname
ans = 
    'u-x'
    'w-ex'
    'w-ix'
 
Regx.outputname
ans = 
    'u-x'
 
Px.outputname
ans = 
    'x-gap'
    'x-force'
 
Regx.inputname
ans = 
    'x-force'

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

clx = feedback(Px,Regx,1,2,+1)       % Note: +1 for positive feedback

Вы теперь готовы сравнить открытое - и с обратной связью Предвещают ответы от воздействия до разрыва толщины.

h = bodeplot(Px(1,2:3),'--',clx(1,2:3),'-',{0.1 100})
setoptions(h,'PhaseMatching','on')

Пунктирные линии показывают ответ разомкнутого цикла. Обратите внимание на то, что пиковое усиление ответа эксцентриситета к разрыву и низкочастотное усиление входной толщины, чтобы разорвать ответ уменьшались приблизительно на 20 дБ.

Наконец, используйте lsim, чтобы моделировать открытое - и ответы времени с обратной связью на белый шум вводит wex и wix. Выберите dt=0.01 в качестве шага расчета для симуляции и выведите эквивалентные дискретные белые шумовые входные параметры для этого уровня выборки.

dt = 0.01
t = 0:dt:50   % time samples

% Generate unit-covariance driving noise wx = [w-ex;w-ix].
% Equivalent discrete covariance is 1/dt
wx = sqrt(1/dt) * randn(2,length(t))

lsim(Px(1,2:3),':',clx(1,2:3),'-',wx,t)

Щелкните правой кнопкой по графику, который появляется, и выберите Show Input, чтобы выключить отображение входа.

Пунктирные линии соответствуют ответу разомкнутого цикла. В этой симуляции регулирование LQG уменьшает пиковое изменение толщины фактором 4.

Проект LQG для оси Y

Проект LQG для y - ось (регулирование толщины y) выполняет те же самые шаги что касается x - ось.

% Specify model components
Hy = tf(7.8e8,[1 71 88^2],'inputn','u-y') 
Fiy = tf(2e4,[1 0.05],'inputn','w-iy') 
Fey = tf([1e5 0],[1 0.19 9.4^2],'inputn','w-ey')
gy = 0.5e-6 % force-to-gap gain

% Build open-loop model
Py = append([ss(Hy) Fey],Fiy)
Py = [-gy gy;1 1] * Py
set(Py,'outputn',{'y-gap' 'y-force'})

% State-feedback gain design
Pydes = append(lpf,1) * Py % Add low-freq. weigthing
set(Pydes,'outputn',{'y-gap*' 'y-force'})
ky = lqry(Pydes(1,1),1,1e-4)

% Kalman estimator design
esty = kalman(Pydes(2,:),eye(2),1e3)

% Form SISO LQG regulator for y-axis and close the loop
Regy = lqgreg(esty,ky)
cly = feedback(Py,Regy,1,2,+1)

Сравните открытое - и ответ с обратной связью на белые шумовые входные воздействия.

dt = 0.01
t = 0:dt:50
wy = sqrt(1/dt) * randn(2,length(t))

lsim(Py(1,2:3),':',cly(1,2:3),'-',wy,t)

Щелкните правой кнопкой по графику, который появляется, и выберите Show Input, чтобы выключить отображение входа.

Пунктирные линии соответствуют ответу разомкнутого цикла. Результаты симуляции сопоставимы с теми для x - ось.

Перекрестная связь между осями

x/y регулирование толщины, проблема MIMO. До сих пор вы обработали каждую ось отдельно и замкнули один круг SISO за один раз. Этот проект допустим целый, эти две оси справедливо разъединяются. К сожалению, этот процесс металлопрокатного завода показывает определенную степень перекрестной связи между осями. Физически, увеличение гидравлической силы вдоль x - ось сжимает материал, который в свою очередь повышает силу отпора на y - цилиндры оси. Результатом является увеличение y - толщины и эквивалентного (относительного) уменьшения в гидравлической силе вдоль y - ось.

Фигура ниже показов связь.

Соответственно, разрывы толщины и прокручивающиеся силы связаны с выходными параметрами δ¯x,f¯x, из x - и y - модели оси

[δxδyfxfx]=[100gyxgx01gxygy0001gyx00gxy1] матрица перекрестной связи[δ¯xδ¯yf¯xf¯y]

Давайте смотреть, как предыдущее "разъединило" тарифы проекта LQG, когда перекрестная связь учтена. Чтобы создать модель 2D осей, показанную выше, добавляют модели Px и Py для x - и y - оси.

P = append(Px,Py)

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

P = P([1 3 2 4],[1 4 2 3 5 6])
P.outputname

ans = 
    'x-gap'
    'y-gap'
    'x-force'
    'y-force'

Наконец, поместите матрицу перекрестной связи последовательно с выходными параметрами.

gxy = 0.1; gyx = 0.4;
CCmat = [eye(2) [0 gyx*gx;gxy*gy 0] ; zeros(2) [1 -gyx;-gxy 1]]
Pc = CCmat * P
Pc.outputname = P.outputname

Чтобы моделировать ответ с обратной связью, также сформируйте модель с обратной связью

feedin = 1:2 % first two inputs of Pc are the commands
feedout = 3:4 % last two outputs of Pc are the measurements
cl = feedback(Pc,append(Regx,Regy),feedin,feedout,+1)

Вы теперь готовы моделировать открытое - и ответы с обратной связью на ведущие белые шумы wx (для x - ось) и wy (для y - ось).

wxy = [wx ; wy]
lsim(Pc(1:2,3:6),':',cl(1:2,3:6),'-',wxy,t)

Щелкните правой кнопкой по графику, который появляется, и выберите Show Input, чтобы выключить отображение входа.

Ответ показывает серьезное ухудшение в производительности регулирования вдоль x - ось (пиковое изменение толщины приблизительно в четыре раза больше, чем в симуляции без перекрестной связи). Следовательно, разработка для одного цикла за один раз является несоответствующей для этого уровня перекрестной связи, и необходимо выполнить объединенную ось проект MIMO, чтобы правильно обработать связывающиеся эффекты.

Проект MIMO LQG

Запустите с полной модели в пространстве состояний 2D оси Pc, выведенный в Перекрестной связи Между Осями. Входы и выходы модели

Pc.inputname

ans = 
    'u-x'
    'u-y'
    'w-ex'
    'w-ix'
    'w_ey'
    'w_iy'

P.outputname

ans = 
    'x-gap'
    'y-gap'
    'x-force'
    'y-force'

Как ранее, добавьте фильтры нижних частот последовательно с 'x-gap' и 'y-gap' выходные параметры, чтобы оштрафовать только низкочастотные изменения толщины.

Pdes = append(lpf,lpf,eye(2)) * Pc
Pdes.outputn = Pc.outputn

Затем, разработайте усиление LQ и утвердите средство оценки как прежде (существует теперь две команды и два измерения).

k = lqry(Pdes(1:2,1:2),eye(2),1e-4*eye(2))      % LQ gain
est = kalman(Pdes(3:4,:),eye(4),1e3*eye(2))     % Kalman estimator

RegMIMO = lqgreg(est,k)      % form MIMO LQG regulator

У получившегося регулятора LQG RegMIMO есть два входных параметров и два выходных параметров.

RegMIMO.inputname

ans = 
    'x-force'
    'y-force'

RegMIMO.outputname

ans = 
    'u-x'
    'u-y'

Постройте его ответ сингулярного значения (основные усиления).

sigma(RegMIMO)

Затем, постройте открытое - и ответы времени с обратной связью на белые шумовые входные параметры (использующий регулятор MIMO LQG для обратной связи).

% Form the closed-loop model
cl = feedback(Pc,RegMIMO,1:2,3:4,+1);

% Simulate with lsim using same noise inputs
lsim(Pc(1:2,3:6),':',cl(1:2,3:6),'-',wxy,t)

Щелкните правой кнопкой по графику, который появляется, и выберите Show Input, чтобы выключить отображение входа.

Проект MIMO является ясным улучшением по сравнению с отдельными проектами SISO для каждой оси. В частности, уровень x/y изменение толщины теперь сопоставим с полученным в разъединенном случае. Этот пример иллюстрирует преимущества прямого проекта MIMO для многомерных систем.

Ссылки

[1] Grimble, M.J., Устойчивое Управление производственным процессом: Оптимальный Подход Проекта для Полиномиальных Систем, Prentice Hall, 1994, p. 261 и стр 443-456.