exponenta event banner

Адаптивный ПДК-контроль нелинейного химического реактора с использованием последовательной линеаризации

В этом примере показано, как использовать контроллер Adaptive MPC для управления нелинейным непрерывным резервуарным реактором с мешалкой (CSTR) при переходе от низкой скорости конверсии к высокой скорости конверсии.

Первая принципиальная нелинейная модель установки доступна и линеаризуется на каждом контрольном интервале. Адаптивный контроллер MPC затем обновляет свою внутреннюю прогностическую модель линеаризованной моделью растения и успешно выполняет нелинейное управление.

О реакторе с непрерывной мешалкой

Реактор с непрерывно перемешиваемым резервуаром (CSTR) является общей химической системой в технологической промышленности. Схема системы CSTR:

Это неадиабатический танковый реактор с рубашкой, подробно описанный в книге Себорга «Динамика процесса и управление», опубликованной Уайли, 2004. Предполагается, что сосуд идеально перемешан, и происходит одна экзотермическая и необратимая реакция первого порядка A - > B. Входной поток реагента А подается в резервуар с постоянной объемной скоростью. Поток продукта непрерывно выходит с одинаковой объемной скоростью, и плотность жидкости постоянна. Таким образом, объем реагирующей жидкости является постоянным.

Входными данными модели CSTR являются:

$$ \begin{array} {ll}
u_1 = CA_i \; & \textnormal{Concentration of A in inlet feed
stream} [kgmol/m^3] \\
u_2 = T_i \; & \textnormal{Inlet feed stream temperature} [K] \\
u_3 = T_c \; & \textnormal{Jacket coolant temperature} [K] \\
\end{array} $$

и выходы (y (t)), которые также являются состояниями модели (x (t)), являются:

$$ \begin{array} {ll}
y_1 = x_1 = CA \; & \textnormal{Concentration of A in reactor tank} [kgmol/m^3] \\
y_2 = x_2 = T \; & \textnormal{Reactor temperature} [K] \\
\end{array} $$

Задача управления состоит в поддержании концентрации реагента А$CA$ на желаемой уставке, которая изменяется с течением времени при переходе реактора от низкой степени конверсии к высокой скорости конверсии. Температура хладагента$T_c$ - это управляемая переменная, используемая контроллером MPC для отслеживания эталона, а также отклонения измеренного возмущения, возникающего из-за температуры входного питающего потока. $T_i$Предполагается, что концентрация входного питающего потока является $CA_i$постоянной. Модель Simulink mpc_cstr_plant реализует нелинейную установку CSTR.

Мы также предполагаем, что прямые измерения концентраций являются недоступными или нечастыми, что является обычным случаем на практике. Вместо этого мы используем «мягкий датчик» для оценки CA на основе измерений температуры и модели установки.

Сведения о прогнозирующем управлении адаптивной моделью

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

Для управления нелинейной установкой CSTR с помощью метода линейного управления MPC имеется несколько вариантов:

  • Если линейная модель завода не может быть получена во время выполнения, сначала необходимо получить несколько линейных моделей завода в автономном режиме при различных рабочих условиях, которые охватывают типичный рабочий диапазон. Далее можно выбрать один из двух подходов к реализации стратегии управления MPC:

(1) Проектирование нескольких контроллеров MPC в автономном режиме, по одному для каждой модели установки. Во время выполнения используйте блок Multiple MPC Controller, который переключает контроллеры MPC с одного на другой на основе требуемой стратегии планирования. Дополнительные сведения см. в разделе Плановый контроль ПДК нелинейного химического реактора. Этот подход используется в тех случаях, когда модели завода имеют различные заказы или временные задержки.

(2) Спроектируйте один контроллер MPC в автономном режиме в начальной рабочей точке. Во время выполнения используйте блок Adaptive MPC Controller (обновление прогностической модели на каждом интервале управления) вместе с блоком Linear Parameter Variing (LPV) System (предоставление линейной модели установки со стратегией планирования). Дополнительные сведения см. в разделе Адаптивное MPC-управление нелинейным химическим реактором с использованием линейной системы изменения параметров. Этот подход используется в тех случаях, когда все модели завода имеют одинаковый порядок и временную задержку.

  • Если линейная модель установки может быть получена во время выполнения, следует использовать блок Adaptive MPC Controller для обеспечения нелинейного управления. Существует два типичных способа получения линейной модели завода в оперативном режиме:

(1) Используйте последовательную линеаризацию, как показано в этом примере. Этот подход используется при наличии нелинейной модели завода, которая может быть линеаризована во время выполнения.

(2) Используйте интерактивную оценку, чтобы определить линейную модель, когда контур замкнут. Дополнительные сведения см. в разделе Адаптивное MPC-управление нелинейным химическим реактором с использованием оценки онлайн-модели. Этот подход используется в тех случаях, когда линейная модель установки не может быть получена ни из системы LPV, ни из последовательной линеаризации.

Получение линейной модели установки при начальных рабочих условиях

Для линеаризации установки требуются Simulink ® и Simulink Control Design ®.

if ~mpcchecktoolboxinstalled('simulink')
    disp('Simulink(R) is required to run this example.')
    return
end
if ~mpcchecktoolboxinstalled('slcontrol')
    disp('Simulink Control Design(R) is required to run this example.')
    return
end

Для реализации адаптивного контроллера MPC сначала необходимо спроектировать контроллер MPC в начальной рабочей точке, где CAi составляет 10 кгмоль/м ^ 3, Ti и Tc - 298,15 К.

Создание спецификации рабочей точки.

plant_mdl = 'mpc_cstr_plant';
op = operspec(plant_mdl);

Концентрация сырья известна в исходном состоянии.

op.Inputs(1).u = 10;
op.Inputs(1).Known = true;

Температура подачи известна в исходном состоянии.

op.Inputs(2).u = 298.15;
op.Inputs(2).Known = true;

Температура теплоносителя известна в исходном состоянии.

op.Inputs(3).u = 298.15;
op.Inputs(3).Known = true;

Вычислить начальное условие.

[op_point, op_report] = findop(plant_mdl,op);
 Operating point search report:
---------------------------------

 Operating point search report for the Model mpc_cstr_plant.
 (Time-Varying Components Evaluated at time t=0)

Operating point specifications were successfully met.
States: 
----------
(1.) mpc_cstr_plant/CSTR/Integrator
      x:           311      dx:      8.12e-11 (0)
(2.) mpc_cstr_plant/CSTR/Integrator1
      x:          8.57      dx:     -6.87e-12 (0)

Inputs: 
----------
(1.) mpc_cstr_plant/CAi
      u:            10
(2.) mpc_cstr_plant/Ti
      u:           298
(3.) mpc_cstr_plant/Tc
      u:           298

Outputs: 
----------
(1.) mpc_cstr_plant/T
      y:           311    [-Inf Inf]
(2.) mpc_cstr_plant/CA
      y:          8.57    [-Inf Inf]

Получить номинальные значения x, y и u.

x0 = [op_report.States(1).x;op_report.States(2).x];
y0 = [op_report.Outputs(1).y;op_report.Outputs(2).y];
u0 = [op_report.Inputs(1).u;op_report.Inputs(2).u;op_report.Inputs(3).u];

Получить линейную модель установки в исходном состоянии.

sys = linearize(plant_mdl, op_point);

Удалите первый вход установки CAi, поскольку он не используется MPC.

sys = sys(:,2:3);

Дискретизируйте модель установки, поскольку контроллер Adaptive MPC принимает только дискретную модель установки.

Ts = 0.5;
plant = c2d(sys,Ts);

Проектирование контроллера MPC

ПДК проектируется в исходном рабочем состоянии. При работе в адаптивном режиме модель завода обновляется во время выполнения.

Укажите типы сигналов, используемых в MPC.

plant.InputGroup.MeasuredDisturbances = 1;
plant.InputGroup.ManipulatedVariables = 2;
plant.OutputGroup.Measured = 1;
plant.OutputGroup.Unmeasured = 2;
plant.InputName = {'Ti','Tc'};
plant.OutputName = {'T','CA'};

Создание контроллера MPC с горизонтами прогнозирования и управления по умолчанию

mpcobj = mpc(plant);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2.
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.
   for output(s) y1 and zero weight for output(s) y2 

Установить номинальные значения в контроллере

mpcobj.Model.Nominal = struct('X', x0, 'U', u0(2:3), 'Y', y0, 'DX', [0 0]);

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

Uscale = [30 50];
Yscale = [50 10];
mpcobj.DV(1).ScaleFactor = Uscale(1);
mpcobj.MV(1).ScaleFactor = Uscale(2);
mpcobj.OV(1).ScaleFactor = Yscale(1);
mpcobj.OV(2).ScaleFactor = Yscale(2);

Пусть температура реактора T плавает (т.е. без штрафа за ошибку отслеживания уставки), потому что цель состоит в контроле концентрации реактора CA и доступна только одна управляемая переменная (температура теплоносителя Tc).

mpcobj.Weights.OV = [0 1];

Из-за физического ограничения рубашки хладагента скорость изменения Tc ограничена градусами в минуту.

mpcobj.MV.RateMin = -2;
mpcobj.MV.RateMax = 2;

Внедрение адаптивного управления MPC установки CSTR в Simulink (R)

Откройте модель Simulink.

mdl = 'ampc_cstr_linearization';
open_system(mdl)

Модель включает три части:

  1. Блок «CSTR» реализует нелинейную модель установки.

  2. Блок «Адаптивный контроллер MPC» запускает разработанный контроллер MPC в адаптивном режиме.

  3. Блок «последовательного линеаризатора» в функциональном блоке MATLAB, который линеаризует первую принципиальную нелинейную установку CSTR и предоставляет линейную модель установки блоку «Адаптивный контроллер MPC» на каждом интервале управления. Дважды щелкните блок, чтобы увидеть код MATLAB. Блок можно использовать в качестве шаблона для разработки соответствующего линеаризатора для собственных приложений.

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

Проверка адаптивной производительности управления MPC

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

  • Отслеживание: уставки концентрации СА в реакторе переходы с исходных 8,57 (низкая скорость конверсии) на 2 (высокая скорость конверсии) кгмоль/м ^ 3. Во время перехода растение сначала становится нестабильным, а затем снова стабильным (см. график полюсов).

  • Регулировка: температура подачи Ti имеет медленную флуктуацию, представляемую синусоидальной волной с амплитудой 5 градусов, представляющей собой измеренное возмущение, подаваемое в контроллер ПДК.

Моделирование производительности по замкнутому контуру.

open_system([mdl '/Concentration'])
open_system([mdl '/Temperature'])
open_system([mdl '/Pole'])
sim(mdl)
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

bdclose(mdl)

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

Сравнение с неадаптивным управлением MPC

Адаптивный MPC обеспечивает более высокую производительность управления, чем неадаптивный MPC. Чтобы проиллюстрировать этот момент, ниже показана эффективность управления одним и тем же контроллером MPC, работающим в адаптивном режиме. Контроллер реализован с блоком контроллера MPC.

mdl1 = 'ampc_cstr_no_linearization';
open_system(mdl1)
open_system([mdl1 '/Concentration'])
open_system([mdl1 '/Temperature'])
sim(mdl1)

Как и ожидалось, отслеживание и регулирование производительности неприемлемо.

bdclose(mdl1)

См. также

Связанные темы