exponenta event banner

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

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

Дискретная модель ARX времени идентифицируется в оперативном режиме блоком Recursive Polynomial Model Estimator в каждом интервале управления. Адаптивный контроллер 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} $$

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

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

Хорошо известно, что динамика 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) Использовать последовательную линеаризацию. Дополнительные сведения см. в разделе Адаптивное MPC-управление нелинейным химическим реактором с использованием последовательной линеаризации. Этот подход используется при наличии нелинейной модели завода, которая может быть линеаризована во время выполнения.

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

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

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

if ~mpcchecktoolboxinstalled('simulink')
    disp('Simulink(R) is required to run this example.')
    return
end
if ~mpcchecktoolboxinstalled('slcontrol')
    disp('Simulink Control Design(TM) 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 и второй выход CA, поскольку они не используются MPC.

sys = sys(1,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.InputName = {'Ti','Tc'};
plant.OutputName = {'T'};

Создание контроллера 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.

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

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

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

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

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

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

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

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

Для выполнения этого примера с онлайн-оценкой необходимо программное обеспечение Toolbox™ идентификации системы.

if ~mpcchecktoolboxinstalled('ident')
    disp('System Identification Toolbox(TM) is required to run this example.')
    return
end

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

mdl = 'ampc_cstr_estimation';
open_system(mdl);

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

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

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

  3. Блок «Recursive Polynomial Model Estimator» оценивает модель ARX дискретного времени с двумя входами (Ti и Tc) и одним выходом (T) на основе измеренных температур. Оценочная модель затем преобразуется в форму пространства состояний блоком «Преобразователь типа модели» и подается в блок «Адаптивный контроллер MPC» на каждом интервале управления.

В этом примере исходная модель установки используется для инициализации онлайн-оценщика с матрицей ковариации параметров, установленной на 1. Интерактивным методом оценки является «фильтр Калмана» с матрицей ковариации шума, установленной равной 0,01. Результат оценки в режиме онлайн чувствителен к этим параметрам, и вы можете дополнительно скорректировать их для достижения лучшего результата оценки.

И «Recursive Polynomial Model Estimator», и «Model Type Converter» предоставляются с помощью панели инструментов идентификации системы. Эти два блока можно использовать в качестве шаблона для разработки соответствующей оценки онлайн-модели для собственных приложений.

Начальное значение переменных A (q) и B (q) заполняется числителем и знаменателем исходной модели установки.

[num, den] = tfdata(plant);
Aq = den{1};
Bq = num;

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

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

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

  • Отслеживание: переходы уставки температуры Т реактора от исходной 311 К (низкая скорость конверсии) к 377 К (высокая скорость конверсии) кгмоль/м ^ 3.

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

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

open_system([mdl '/Concentration'])
open_system([mdl '/Temperature'])
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.

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

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

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

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

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

bdclose(mdl)
bdclose(mdl1)

См. также

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