exponenta event banner

LQG Regulation: История успеха прокатного стана

Обзор этого примера

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

milldemo

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

Модели процессов и возмущений

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

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

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

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

  • Эксцентриситет в цилиндрах качения

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

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

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

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

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

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

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

Данные модели для каждой оси суммированы ниже.

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

Hx (s) = 2,4 × 108s2 + 72 s + 902Fix (s) = 104 s + 0 05Fex (s) = 3 × 104ss2 + 0 125s + 62 gx = 10 − 6

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

Hy (s) = 7,8 × 108s2 + 71 s + 882Fiy (s) = 2 × 104s + 0 0,05Fey (s) = 105ss2 + 0 19s + 9,42 gy = 0,5 × 10 − 6

Конструкция 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]

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

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

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

Regx = lqgreg(estx,kx)

Это завершает конструкцию LQG для оси x −.

Рассмотрим ответ регулятора Боде от 0,1 до 1000 рад/сек.

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

Фазовый отклик имеет интересную физическую интерпретацию. Во-первых, рассмотрим увеличение входной толщины. Это низкочастотное возмущение увеличивает как выходную толщину, так и силу качения. Поскольку фаза регулятора составляет приблизительно 0 ° при низких частотах, контур обратной связи затем адекватно реагирует путем увеличения гидравлической силы для компенсации увеличения толщины. Теперь рассмотрим эффект эксцентриситета. Эксцентриситет вызывает колебания зазора между валками (зазор между цилиндрами качения). Когда зазор между валками минимален, сила качения увеличивается, а толщина балки уменьшается. Затем гидравлическая сила должна быть уменьшена (обратная связь с отрицательной силой) для восстановления требуемой толщины. Это именно то, что регулятор 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

Теперь вы готовы сравнить отклики Bode с разомкнутым и замкнутым контуром от возмущения до зазора толщины.

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)

Щелкните правой кнопкой мыши на появившемся графике и выберите «Показать ввод», чтобы отключить отображение ввода.

Пунктирные линии соответствуют отклику с разомкнутым контуром. В этом моделировании регулирование 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)

Щелкните правой кнопкой мыши на появившемся графике и выберите «Показать ввод», чтобы отключить отображение ввода.

Пунктирные линии соответствуют отклику с разомкнутым контуром. Результаты моделирования сравнимы с результатами для оси X.

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

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

На рисунке ниже показана муфта.

Соответственно, зазоры по толщине и силы качения связаны с выходами δ _ x, f _ x,... моделей оси x и y по

[δxδyfxfx] = [100 gyxgx01gxygy0001 gyx00 gxy1] ︸ матрица кросс-связи [δ puxδ beth yf fen xf bety]

Посмотрим, как прежние «развязанные» расчетные тарифы LQG учитываются при перекрестной связи. Для построения двухосной модели, показанной выше, добавьте модели 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)

Щелкните правой кнопкой мыши на появившемся графике и выберите «Показать ввод», чтобы отключить отображение ввода.

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

Конструкция MIMO LQG

Начните с полной двухосной модели состояния-пространства 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)

Щелкните правой кнопкой мыши на появившемся графике и выберите «Показать ввод», чтобы отключить отображение ввода.

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

Ссылки

[1] Гримбл, М.Дж., надежный промышленный контроль: оптимальный подход к проектированию полиномиальных систем, Прентис Холл, 1994, стр. 261 и стр. 443-456.