Экономическое MPC управление этиленовым производством окиси

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

Нелинейный этиленовый объект оксидирования

Преобразование этилена (C2H4) к этиленовой окиси (C2H4O) происходит в охлажденной, газовой фазе каталитический реактор. Три реакции происходят одновременно в хорошо смешанной газовой фазе в реакторе:

C2H4 + 0.5*O2 -> C2H4O
C2H4 + 3*O2 -> 2*CO2 + 2*H2O
C2H4O + 2.5*O2 -> 2*CO2 + 2*H2O

Первая реакция требуется, и другие два нежелательны, потому что они сокращают производство C2H4O. Смесь воздуха и этилен постоянно подаются в реактор. Первый принцип нелинейная динамическая модель реактора реализован в виде набора обыкновенных дифференциальных уравнений (ОДУ) в oxidationPlantCT функция. Для получения дополнительной информации смотрите oxidationPlantCT.m.

Объект имеет четыре состояния:

  • Плотность газа в реакторе ($x_1$)

  • Концентрация C2H4 в реакторе ($x_2$)

  • Концентрация C2H4O в реакторе ($x_3$)

  • Температура в реакторе ($x_4$)

Объект имеет три входных параметров:

  • Концентрация C2H4 в канале ($u_1$)

  • Реактор, охлаждающий температуру конверта ($u_2$)

  • C2H4 питают уровень ($u_3$)

Все переменные в модели масштабируются, чтобы быть безразмерными и порядка единицы. Основные уравнения объекта и параметры получены от [1] с некоторыми изменениями в определениях ввода/вывода и упорядоченном расположении.

Объект является асимптотически устойчивым разомкнутым контуром.

Управляйте целями и ограничениями

Первичная цель управления состоит в том, чтобы максимизировать этиленовую окись (C2H4O) производительность (который в свою очередь максимизирует прибыль) в любой установившейся рабочей точке, учитывая доступность C2H4 в потоке канала.

Производительность C2H4O задана как продукт концентрации C2H4O в реакторе ($x_3$) и общий объемный расход, выходящий из реактора (${u_3}/{u_1}*{x_4}$).

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

Оптимальная производительность в начальной рабочей точке

При начальном условии охлаждающейся температурой конверта является 1.1 и доступностью C2H4 является 0.175.

Tc = 1.1;
C2H4Avalability = 0.175;

Вычислите оптимальную производительность C2H4O путем развертки через рабочий диапазон концентрации C2H4 в канале ($u_1$) использования fsolve.

uRange = 0.1:0.1:3;
EORate = zeros(length(uRange),1);
optimopt = optimoptions('fsolve','Display','none');
for ct = 1:length(uRange)
    xRange = real(fsolve(@(x) oxidationPlantCT(x,[uRange(ct);Tc;C2H4Avalability]),rand(1,4),optimopt));
    EORate(ct) = C2H4Avalability/uRange(ct)*xRange(3)*xRange(4);
end
figure
plot(uRange,EORate)
xlabel('C2H4 concentration in the feed')
ylabel('C2H4O Production Rate')

Оптимальная производительность C2H4O 0,0156 достигается в$u_1$ = 1.6. Другими словами, если объект первоначально будет действовать с различной концентрацией C2H4 в канале, вы ожидаете, что экономический контроллер MPC принесет его к 1,6 таким образом, что оптимальная производительность C2H4O достигается.

Нелинейный проект MPC

Экономический MPC может быть реализован с нелинейным контроллером MPC. Модель предсказания имеет четыре состояния и три входных параметров (один мВ и два MDS). В этом примере, поскольку вам не нужна выходная функция, принимают y = x.

nlobj = nlmpc(4,4,'MV',1,'MD',[2 3]);
nlobj.States(1).Name = 'Den';
nlobj.States(1).Name = 'C2H4';
nlobj.States(1).Name = 'C2H4O';
nlobj.States(1).Name = 'Tc';
nlobj.MV.Name = 'CEin';
nlobj.MD(1).Name = 'Tc';
nlobj.MD(2).Name = 'Availability';
In standard cost function, zero weights are applied by default to one or more OVs because there are fewer MVs than OVs.

Нелинейная модель объекта управления задана в oxidationPlantDT. Это - модель дискретного времени, где многоступенчатый явный Метод Эйлера используется для интегрирования. В то время как этот пример использует нелинейную модель объекта управления, можно также реализовать экономический MPC с помощью линейных моделей объекта управления.

nlobj.Model.StateFcn = 'oxidationPlantDT';
nlobj.Model.IsContinuousTime = false;

В общем случае, чтобы повысить вычислительную эффективность, это - лучшая практика, чтобы обеспечить аналитическую Функцию Якоби для модели предсказания. В этом примере вы не обеспечиваете тот, потому что симуляция достаточно быстра.

Время относительно большой выборки 25 секунды, используемые здесь, являются соответствующими, когда объект устойчив, и главная цель является экономической оптимизацией. Горизонтом предсказания является 2, то, которое дает время предсказания, составляет 50 секунд.

Ts = 25;
nlobj.Ts = Ts;                                  % Sample time
nlobj.PredictionHorizon = 2;                    % Prediction horizon
nlobj.ControlHorizon = 1;                       % Control horizon

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

nlobj.States(1).Min = 0;
nlobj.States(2).Min = 0;
nlobj.States(3).Min = 0;
nlobj.States(4).Min = 0;

Вход Plant$u_1$ должен остаться в пределах насыщения между 0.1 и 3.

nlobj.MV.Min = 0.1;
nlobj.MV.Max = 3;

Скорости изменения$u_1$ также ограничиваются +/-0.02секунда.

nlobj.MV.RateMin = -0.02*Ts;
nlobj.MV.RateMax = 0.02*Ts;

Пользовательская функция стоимости для экономического MPC

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

f = -(u3/u1*x3*x4)

Знак минус в f используется, чтобы максимизировать производство, поскольку контроллер минимизирует f во время оптимизации. Для получения дополнительной информации смотрите oxidationCostFcn.m.

nlobj.Optimization.CustomCostFcn = 'oxidationCostFcn';
nlobj.Optimization.ReplaceStandardCost = true;

Подтвердите пользовательские функции

Примите, что объект первоначально действует в u1 = 0.5.

u0 = 0.5;

Найдите состояния в устойчивом состоянии с помощью fsolve.

x0 = real(fsolve(@(x) oxidationPlantCT(x,[u0;Tc;C2H4Avalability]),rand(1,4),optimopt));

Производительность C2H4O 0.0138, далеко от оптимального условия 0,0156.

EORate0 = C2H4Avalability/u0*x0(3)*x0(4);

Подтвердите функциональную и функцию стоимости состояния при начальном условии.

validateFcns(nlobj,x0,u0,[Tc C2H4Avalability]);
Model.StateFcn is OK.
No output function specified. Assuming "y = x" in the prediction model.
Optimization.CustomCostFcn is OK.
Analysis of user-provided model, cost, and constraint functions complete.

Можно вычислить первый шаг с помощью nlmpcmove функция. Это возвращает мВ 1,0, указывая, что экономический MPC увеличит мВ с 0,5 до 1, ограниченный ограничением с плавающей ставкой, которым управляют.

mv = nlmpcmove(nlobj,x0,u0,zeros(1,4),[Tc C2H4Avalability]);

Модель Simulink с экономическим контроллером MPC

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

mdl = 'mpc_economicEO';
open_system(mdl)

Охлаждающейся температурой конверта является первоначально 1.1 и остается постоянным в течение первых 100 секунд. Это затем увеличивается до 1.15, и поэтому, уменьшает оптимальную производительность C2H4O от 0.0156 к 0.0135.

Доступностью C2H4 является первоначально 0.175 и остается постоянным в течение первых 200 секунд. Это затем увеличивается до 0.25, и поэтому, увеличивает оптимальную производительность C2H4O с 0.0135 к 0.0195.

Модель включает постоянные (нулевые) ссылки для четырех объектов выходные параметры. Блок Nonlinear MPC Controller требует этих опорных сигналов, но они проигнорированы в пользовательской функции стоимости.

Подсистема Объекта вычисляет состояния объекта путем интеграции ОДУ в oxidationPlantCT.m. Примите, что все состояния измеримы таким образом, что вы не должны реализовывать нелинейное средство оценки состояния в этом примере. C2H4O выход объекта является мгновенной производительностью C2H4O, которая используется для целей отображения.

Симулируйте модель и анализируйте результаты

Запустите симуляцию.

open_system([mdl '/MV']);
open_system([mdl '/C2H4O']);
sim(mdl)

Поскольку объект C2H4O, действующий при начальном условии, не оптимален, его прибыль может быть улучшена. За первые 100 секунд постепенно перемещается экономический контроллер MPC, объект к истинному оптимальному условию при том же охлаждении заключают в оболочку температуру и ограничения доступности C2H4. Это улучшает производительность C2H4O:

$$\left( {0.0156 - 0.0138} \right)/0.0138 = 13\% $$

который мог стоить миллионы долларов в год в крупномасштабном производстве.

За следующие 100 секунд, охлаждающиеся повышения температуры конверта от 1.1 к 1.15. Экономический контроллер MPC перемещает объект гладко в новое оптимальное условие 0.0135 как ожидалось.

За следующие 100 секунд доступность C2H4 увеличивается с 0.175 к 0.25. Экономический контроллер MPC снова может переместить объект новое оптимальное устойчивое состояние 0.0195.

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

bdclose(mdl)

Ссылки

[1] Х. Дуранд, М. Эллис, П. Д. Кристофайдс. "Экономические прогнозирующие системы управления модели для входной ограничительной обработки скорости изменения и гарантируемых экономических показателей". Компьютеры и Химическое машиностроение. Издание 92,2016, стр 18-36.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте