Используйте пользовательские ограничения в смешивающемся процессе

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

Смешивание процесса

Непрерывный процесс смешивания комбинирует три подачи в хорошо смешанном контейнере, чтобы произвести смешение, желавшее свойств. Безразмерные управляющие уравнения:

$$\begin{array}{l}
\frac{{dv}}{{d\tau }} = \sum\limits_{i = 1}^3 {{\phi _i}} - \phi \\
V\frac{{d{\gamma _j}}}{{d\tau }} = \sum\limits_{i = 1}^3
{\left( {{\gamma _{ij}} - {\gamma _j}} \right){\phi _i}}
\end{array}$$

где

  • $V$ материально-технические ресурсы смеси (в контейнере).

  • $\phi_i$ уровень плуга для канала$i$.

  • $\phi$ уровень, на котором смешение удаляется из материально-технических ресурсов, которые являются спросом.

  • $\gamma _{ij}$ концентрация составляющей$j$ в канале$i$.

  • $\gamma _j$ концентрация составляющей$j$ в смешении.

  • $\tau$ время.

В этом примере существует две важных составляющие,$j$ = 1 и 2.

Цели управления являются целями для двух составляющих концентраций в смешении и материально-технических ресурсах смеси. Проблема состоит в том, что спрос $\phi$и составы канала$\gamma _{ij}$, варьируются. Материально-технические ресурсы, составы смеси и спрос измеряются, но составы канала не измерены.

В номинальных условиях работы:

  • Питайтесь 1$\phi _1$, (в основном составляющая 1) 80% общего притока.

  • Питайтесь 2$\phi _2$, (в основном составляющая 2) 20%.

  • Питайтесь 3$\phi _3$, (чистая составляющая 1) не используется.

Проект процесса позволяет манипуляцию общего канала, вводящего смесительную емкость $\phi _T$и отдельные уровни подачи 2 и 3. Другими словами, уровень канала 1:

$$\phi _1=\phi _T-\phi _2-\phi _2$$

Каждый канал ограничил доступность:

$$0 \le {\phi _i} \le {\phi _{i,\max }}$$

Уравнения нормированы таким образом, что в номинальном устойчивом состоянии среднее время местонахождения в смесительном контейнере$\tau=1$.

Ограничение$\phi _{1,\max }=0.8$ наложено восходящим процессом, и ограничения$\phi _{2,\max }=\phi _{3,\max }=0.6$ наложены физическими пределами.

Задайте линейную модель объекта управления

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

Задайте количество подачи, ni, и количество составляющих, nc.

ni = 3;
nc = 2;

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

Fin_nom = [1.6,0.4,0];
F_nom  = sum(Fin_nom);

Задайте номинальные составляющие составы для входной подачи, где cin_nom(i,j) представляет состав составляющего i в канале j.

cin_nom = [0.7 0.2 0.8;0.3 0.8 0];

Задайте номинальные составляющие составы в выходном канале.

cout_nom = cin_nom*Fin_nom'/F_nom;

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

fin_nom = Fin_nom/F_nom;
gij = [cin_nom(1,:)/cout_nom(1); cin_nom(2,:)/cout_nom(2)];

Создайте модель в пространстве состояний с потоками канала F1, F2, и F3 как MVS:

A = [zeros(1,nc+1); zeros(nc,1) -eye(nc)];
Bu = [ones(1,ni); gij-1];

Измените определение мВ [FT, F2, F3] где F1 = FT - F2 - F3

Bu = [Bu(:,1), Bu(:,2)-Bu(:,1), Bu(:,3)-Bu(:,1)];

Добавьте измеренное воздействие, спрос на смешение, как 4-й вход модели.

Bv = [-1; zeros(nc,1)];
B = [Bu Bv];

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

C = eye(nc+1);

Укажите, что нет никакого прямого сквозного соединения от входных параметров до выходных параметров.

D = zeros(nc+1,ni+1);

Создайте линейную модель объекта управления.

Model = ss(A,B,C,D);
Model.InputName = {'F_T','F_2','F_3','F'};
Model.InputGroup.MV = 1:3;
Model.InputGroup.MD = 4;
Model.OutputName = {'V','c_1','c_2'};

Создайте контроллер MPC

Задайте шаг расчета, горизонт предсказания, и управляйте горизонтом для контроллера.

Ts = 0.1;
p = 10;
m = 3;

Создайте контроллер.

mpcobj = mpc(Model,Ts,p,m);
-->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.

Выходные параметры являются материально-техническими ресурсами, y(1), и составляющие концентрации, y(2) и y(3). Задайте номинальную стоимость единицы после нормализации для всех выходных параметров.

mpcobj.Model.Nominal.Y = [1 1 1];

Задайте нормированную номинальную стоимость для переменных, которыми управляют, u(1), u(2) и u(3), и измеренное воздействие, u(4).

mpcobj.Model.Nominal.U = [1 fin_nom(2) fin_nom(3) 1];

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

mpcobj.Weights.OV = [1 1 0.5];

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

umin = [0 0 0];
umax = [2 0.6 0.6];
for i = 1:3
   mpcobj.MV(i).Min = umin(i);
   mpcobj.MV(i).Max = umax(i);
   mpcobj.MV(i).RateMin = -0.1;
   mpcobj.MV(i).RateMax =  0.1;
end

Общий уровень канала и уровни канала 2 и канала 3 имеют верхние границы. Питайтесь 1, также имеет верхнюю границу, определенную восходящим модулем, предоставляющим его.

Задайте смешанные ограничения

Учитывая заданные верхние границы на канале 2 и 3 уровня (0.6), возможно, что их сумма могла быть целых 1.2. Поскольку номинальный общий уровень канала 1.0, контроллер может запросить физически невозможное условие, где сумма подачи 2 и 3 превышает общий уровень канала, который подразумевает отрицательный канал 1 уровень.

Следующее ограничение препятствует тому, чтобы контроллер запросил нереалистичное$\phi _1$ значение.

$$0 \le {\phi _1} = {\phi _T} - {\phi _2} - {\phi _3} \le 0.8$$

Задайте это ограничение в форме$Eu + Fy \le g$.

E = [-1 1 1; 1 -1 -1];
g = [0;0.8];

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

F = zeros(2,3);

Укажите, что оба ограничения трудны (ECR = 0).

v = zeros(2,1);

Задайте нулевые коэффициенты для измеренного воздействия.

h = zeros(2,1);

Установите пользовательские ограничения в контроллере MPC.

setconstraint(mpcobj,E,F,g,v,h)

Симулируйте модель в Simulink

Модель Simulink содержит нелинейную модель процесса смешивания и неизмеренного воздействия в составляющей 1 состав канала.

Demand$\phi$, моделируется как измеренное воздействие. Оператор может варьироваться значение спроса, и получившийся сигнал переходит к процессу и в контроллеру.

Модель симулирует следующий сценарий:

  • В$\tau=0$, процесс действует в устойчивом состоянии.

  • В$\tau=1$, Total Demand уменьшения от$\phi=1.0$ к$\phi=0.9$.

  • В$\tau=2$, существует большое увеличение шага концентрации составляющей 1 в канале 1, от 1,17 до 2,17.

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

mdl = 'mpc_blendingprocess';
open_system(mdl)
sim(mdl)
-->Converting model to discrete time.
   Assuming no disturbance added to measured output channel #1.
-->Assuming output disturbance added to measured output channel #2 is integrated white noise.
-->Assuming output disturbance added to measured output channel #3 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

В симуляции:

  • Во время 0, объект постоянно действует при номинальных условиях.

  • Во время 1, уменьшения спроса на 10% и контроллер обеспечивает материально-технические ресурсы близко к его заданному значению.

  • Во время 2, существует большое неизмеренное увеличение концентрации составляющей 1 содержавший в канале 1. Это воздействие вызывает ошибку предсказания и большое воздействие в составе смеси.

Воздействие является нелинейным эффектом, но линейный контроллер MPC восстанавливается хорошо и отвозит состав смеси к его заданному значению

Проверьте эффект пользовательских ограничений

Постройте сигналы уровня канала.

figure
plot(MVs.time,[MVs.signals(1).values(:,2), ...
    (MVs.signals(2).values + MVs.signals(3).values), ...
    (MVs.signals(1).values(:,2)-MVs.signals(2).values-MVs.signals(3).values)])
grid
legend('FT','F2+F3','F1')

Неизмеренное воздействие происходит во время 2, который требует, чтобы контроллер уменьшил F1. Во время переходного процесса становится нулевым F1. Если бы смешанное ограничение ввода/вывода не было включено, F1 был бы отрицателен. Запросам контроллера о FT, F2 и F3 было бы невозможно удовлетворить, который приведет к ухудшению эффективности. С включенным ограничением контроллер прилагает все усилия, учитывая физические пределы системы.

bdclose(mdl)

Смотрите также

Похожие темы