exponenta event banner

Оценка полиномиальной модели ARMAX в режиме онлайн

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

Реактор емкости с непрерывным перемешиванием

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

Это снабженный оболочкой диабетический (т.е. недиабатический) танковый реактор, подробно описанный в книге Бекета «Динамика процесса: моделирование, анализ и моделирование», опубликованной Prentice-Hall, 1998. Предполагается, что сосуд идеально перемешан, и происходит одна экзотермическая и необратимая реакция первого порядка A - > B. Входной поток реагента А подается в резервуар с постоянной скоростью. После перемешивания конечный продукт вытекает из емкости с той же скоростью, что и реагент А, подается в емкость (объем в емкости реактора постоянен). Подробные сведения о работе CSTR и его двухсторонней нелинейной модели, использованной в этом примере, поясняются в примере Неадиабатический реактор с непрерывной мешалкой: моделирование файлов MATLAB с моделированием в Simulink ®.

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

$$ \begin{array} {ll}
u_1(t) = C_{Af}(t) \; & \textnormal{Concentration of A in inlet feed
stream} [kgmol/m^3] \\
u_2(t) = T_f(t) \; & \textnormal{Inlet feed stream temperature} [K] \\
u_3(t) = T_j(t) \; & \textnormal{Jacket coolant temperature} [K] \\
\end{array} $$

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

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

Целью контроля является поддержание концентрации реагента А$C_{A}(t)$ на требуемом уровне, $C_{Aref}(t)$которая изменяется с течением времени. Управление температурой рубашки осуществляется$T_j(t)$ ПИ-регулятором для того, чтобы отбраковать возмущения, возникающие из-за температуры входного питающего потока. $T_f(t)$Входным сигналом PI контроллера является сигнал ошибки отслеживания,. Предполагается, что $C_{Aref}(t)-C_A(t)$концентрация входного питающего потока является $C_{Af}(t)$постоянной. Модель Simulink iddemo_cstr реализует завод CSTR в качестве блока CSTR.

open_system('iddemo_cstr');

$T_f(t)$Входной сигнал температуры подачи состоит из возмущения белого шума поверх постоянного смещения. Мощность шума составляет 0,0075 [K ^ 2]. Этот уровень шума вызывает до 2% отклонения от требуемого$C_{Aref}(t)$.

$C_{Aref}(t)$Сигнал в этом примере содержит изменение шага от 1,5 [кгмоль/м ^ 3] до 2 [кгмоль/м ^ 3] в $t=400$момент времени. В дополнение к этому ступенчатому изменению,$C_{Aref}(t)$ также содержит возмущение белого шума для t в диапазонах [0,200) и [400,600). Мощность этого сигнала белого шума равна 0,015. Мощность шума настраивается эмпирически, чтобы приблизительно дать отношение сигнал/шум, равное 10. Отсутствие достаточного возбуждения в опорном сигнале при идентификации по замкнутому контуру может привести к отсутствию достаточной информации для идентификации уникальной модели. Осуществление$C_{Aref}(t)$ находится в iddemo_cstr/CA Reference блок.

Оценка в режиме онлайн для адаптивного управления

Из нелинейной модели известно, что выход CSTR$C_{A}(t)$ более чувствителен к входу управления$T_j(t)$ на более высоких$C_{A}(t)$ уровнях. Блок «Оценка рекурсивной полиномиальной модели» используется для обнаружения этого изменения чувствительности. Эта информация используется для регулировки коэффициента усиления PI-контроллера в$C_{A}(t)$ зависимости от изменения. Цель состоит в том, чтобы избежать наличия контура с высоким коэффициентом усиления, который может привести к нестабильности.

$T_j(t)$$C_{A}(t)$С помощью блока «Recursive Polynomial Model Estimator» можно оценить дискретную передаточную функцию из в онлайн. Алгоритм адаптивного управления использует коэффициент усиления постоянного тока этой передаточной функции. Ошибка отслеживания $C_{Aref}(t)-C_A(t)$делится на нормализованное усиление постоянного тока оцененной передаточной функции. Эта нормализация выполняется для усиления 1 при ошибке отслеживания в начальной рабочей точке, для которой разработан PI-контроллер. Например, сигнал ошибки делится на 2, если коэффициент усиления постоянного тока в 2 раза превышает его исходное значение. Это соответствует делению коэффициентов усиления PI-контроллера на 2. Этот адаптивный контроллер реализован в iddemo_cstr/Adaptive PI Controller.

Входы блока оценки рекурсивной полиномиальной модели

Блок «Recursive Polynomial Model Estimator» находится под System Identification Toolbox/Estimators библиотека в Simulink. Этот блок используется для оценки линейных моделей со структурой ARMAX. Модели ARMAX имеют вид:

$$
\begin{array} {l}A(q)\bar{y}(t)=B(q)\bar{u}(t)+C(q)\bar{e}(t) \\[0.1in]
A(q) = 1+a_1z^{-1}+a_2z^{-2}+\cdots+a_{na}z^{-na} \\
B(q) = (b_01+b_1z^{-1}+b_2z^{-2}+\cdots+a_{nb-1}z^{-nb+1})z^{-nk} \\
C(q) = 1+c_1z^{-1}+c_2z^{-2}+\cdots+c_{nc}z^{-nc} \\
\end{array}
$$

  • Inputs и Output вход блока оценки рекурсивной полиномиальной модели соответствует$\bar{u}(t)$ и$\bar{y}(t)$ соответственно. Для модели CSTR$\bar{y}$ и являются$\bar{u}$ отклонениями от температуры рубашки и рабочих точек подстройки концентрации А:,. Хорошо $\bar{y}=C_A(t)-\bar{C}_A(t)$$\bar{u}=T_j(t)-\bar{T}_j(t)$масштабировать и$\bar{u}$ иметь$\bar{y}$ пиковую амплитуду 1 для улучшения численного состояния задачи оценки. Рабочие точки обрезки и$\bar{C}_A(t)$ не $\bar{T}_j(t)$известны точно до работы системы. Они оцениваются и извлекаются из измеренных сигналов с использованием фильтра скользящего среднего первого порядка. Эти фильтры предварительной обработки реализованы в iddemo_cstr/Preprocess Tj и iddemo_cstr/Preprocess CA блоки.

open_system('iddemo_cstr/Preprocess Tj');

  • Дополнительное Enable inport блока Recursive Polynomial Model Estimator управляет оценкой параметров в блоке. Оценка параметров отключается, когда сигнал Enable равен нулю. Оценка параметров включена для всех остальных значений Enable сигнал. В этом примере оценка отключена для временных интервалов$t\in[200,400)$ и. $t\in[600,800)$В течение этих интервалов измеренный вход$T_j(t)$ не содержит достаточного возбуждения для идентификации замкнутой системы.

Настройка блока оценки рекурсивной полиномиальной модели

Настройте параметры блока для оценки модели ARMAX второго порядка. На вкладке Параметры модели (Model Parameters) укажите:

  • Структура модели: ARMAX. Выберите ARMAX, поскольку текущие и прошлые значения возмущений, действующих на систему, $T_f(t)$должны повлиять на выход системы CSTR.$C_A(t)$

  • Начальная оценка: Нет. По умолчанию для всех расчетных параметров используется значение 0.

  • Количество параметров в A (q) (na ):2. Нелинейная модель имеет 2 состояния.

  • Количество параметров в B (q) (nb ):2.

  • Количество параметров в C (q) (nc ):2. Расчетная модель соответствует модели второго порядка, так как максимум na, nb и nc равен 2.

  • Задержка ввода (nk): 1. Как и в большинстве физических систем, система CSTR не имеет прямого канала. Кроме того, не существует дополнительных временных задержек между вводами-выводами.

  • Матрица ковариации параметров: 1e4. Определите высокую стоимость ковариации, потому что начальные предполагаемые значения очень сомнительны.

  • Время выборки: 0.1. Известно, что модель CSTR имеет полосу пропускания около 0.25Hz.$T_s=0.1$ выбирается таким образом, что 1/0,1 превышает в 20 раз эту полосу пропускания (5 Гц).

Щелкните Алгоритм (Algorithm) и Параметры блока (Block Options), чтобы задать опции оценки:

  • Метод оценки: Forgetting Factor

  • Коэффициент забывания: 1-5e-3. Поскольку ожидается, что расчетные параметры изменятся вместе с рабочей точкой, установите коэффициент забывания на значение меньше 1. Выберите$\lambda = 1-5e-3$, что соответствует постоянной времени памяти в$T_0=\frac{Ts}{1-\lambda}=100$ секундах. 100-секундное время памяти гарантирует, что данные о значительном количестве, используемые для идентификации, поступают из 200-секундного периода идентификации в каждой рабочей точке.

  • Установите флажок Ошибка оценки вывода. Этот вывод блока используется для проверки оценки.

  • Установите флажок Add enable port. Требуется адаптировать расчетные параметры модели только при введении дополнительного шума в опорный порт. Оценка параметров n отключается через этот порт, когда дополнительный шум больше не вводится.

  • Внешний сброс: None.

Выходные данные блока оценки рекурсивной полиномиальной модели

На каждом шаге времени блок оценки рекурсивной полиномиальной модели предоставляет оценку ошибки $A(q)$$B(q)$$C(q)$оценки,, и. $\bar{e}$ Error выход блока оценки полиномиальной модели содержит$\bar{e}(t)$ и также известен как ошибка прогнозирования на один шаг вперед. Parameters выход блока содержит полиномиальные коэффициенты A (q), B (q) и C (q) в сигнале шины. Учитывая выбранные $na=2$порядки многочленов $nb=2$$nc=2$(,,,)$nk=1$ Parameters элементы шины содержат:

$$ \begin{array} {l}
A(t) = [1 \; a_1(t) \; a_2(t)] \\
B(t) = [0 \; b_0(t) \; b_1(t)] \\
C(t) = [1 \; c_1(t) \; c_2(t)] \\
\end{array} $$

Оцененные параметры в полиномах A (q), B (q) и C (q) изменяются во время моделирования следующим образом:

sim('iddemo_cstr');
close_system('iddemo_cstr/Preprocess Tj');
open_system('iddemo_cstr/ABC');

Оценки параметров быстро изменяются от их начальных значений 0 благодаря высокому значению, выбранному для ковариационной матрицы исходных параметров. Параметры в$A(q)$$B(q)$ многочленах и быстро приближаются к своим значениям$t=200$. Однако параметры в$C(q)$ полиноме показывают некоторые флуктуации. Одна из причин этих колебаний заключается в том, что возмущение$T_f(t)$ выхода CSTR $C_A(t)$не полностью моделируется структурой ARMAX. Модель ошибок не важна$C(q)$ для проблемы управления, изучаемой здесь, поскольку$T_j(t)$ отношение to $C_A(t)$захватывается передаточной функцией. $\frac{B(q)}{A(q)}$Поэтому колебание в не является$C(q)$ проблемой идентификации и контроля.

Оценки параметров остаются постоянными$t\in[200,400)$, поскольку блок оценки был отключен для этого интервала (0 сигнал для Enable inport). Оценка параметров включается при$t=400$ переходе резервуара CSTR на новую рабочую точку. Параметры$A(q)$ и $B(q)$сходятся к их новым значениям по, $t=600$а затем удерживаются постоянными путем установки Enable порт в 0. Сходимость$A(q)$ и$B(q)$ медленнее в этой рабочей точке. Эта медленная сходимость обусловлена меньшими собственными значениями ковариационной матрицы параметра при t = 400 по сравнению с начальными значениями 1e4, установленными при t = 0. Ковариация параметра, которая является мерой достоверности оценок, обновляется с каждым временным шагом. Алгоритм быстро изменил оценки параметров, когда уверенность в оценках была низкой при t = 0. Улучшенные оценки параметров лучше фиксируют поведение системы, что приводит к меньшим ошибкам прогнозирования на один шаг вперед и меньшим собственным значениям в матрице ковариации параметров (повышенная уверенность). Поведение системы изменяется в t = 400. Однако блок медленнее изменяет оценки параметров из-за повышенной достоверности оценок. Можно использовать опцию Внешний сброс (External Reset) блока Оценка рекурсивной полиномиальной модели (Recursive Polynomial Model Estimator), чтобы предоставить новое значение ковариации параметра при t = 400. Чтобы увидеть значение ковариации параметра, установите флажок Матрица ковариации выходного параметра (Output parameter covariance matrix) в блоке Оценка рекурсивной полиномиальной модели (Recursive Polynomial Model Estimator).

Проверка расчетной модели

Error выходные данные Recursive Polynomial Model Estimator блок дает ошибку на один шаг вперед для оценочной модели.

close_system('iddemo_cstr/ABC');
open_system('iddemo_cstr/1-Step Ahead Prediction Error');

Ошибка одного шага вперед выше, когда нет дополнительных возмущений, вводимых в$T_j(t)$ канал для идентификации системы. Эти более высокие ошибки могут быть вызваны отсутствием достаточной информации во$T_j(t)$ входном канале, на который опирается блок оценки. Однако даже эта более высокая погрешность является низкой и ограниченной по сравнению с измеренными флуктуациями в. $C_A(t)$Это дает уверенность в оценочных значениях параметров.

Более тщательной проверкой расчетной модели является моделирование расчетной модели и сравнение с фактическим выходом модели. iddemo_cstr/Time-Varying ARMAX блок реализует изменяющуюся во времени модель ARMAX, оцененную блоком Online Polynomial Model Estimator. Погрешность между выходом системы CSTR и расчетным выходом изменяющейся во времени модели ARMAX составляет:

close_system('iddemo_cstr/1-Step Ahead Prediction Error');
open_system('iddemo_cstr/Simulation Error');

Ошибка моделирования снова ограничена и низка по сравнению с колебаниями в. $C_A(t)$Это дополнительно обеспечивает уверенность в том, что оцененные линейные модели способны предсказывать поведение нелинейной модели CSTR.

Идентифицированные модели могут быть дополнительно проанализированы в MATLAB. Оценки модели для рабочих точек$C_A=1.5 [kgmol/m^3]$$C_A=2 [kgmol/m^3]$ и могут быть получены путем просмотра оцененных полиномов A (q), B (q) и C (q) при$t = 200$ и$t = 600$ соответственно. Графики Моде этих моделей:

Ts = 0.1;
tidx = find(t>=200,1);
P200 = idpoly(AHat(:,:,tidx),BHat(:,:,tidx),CHat(:,:,tidx),1,1,[],Ts);
tidx = find(t>=600,1);
P600 = idpoly(AHat(:,:,tidx),BHat(:,:,tidx),CHat(:,:,tidx),1,1,[],Ts);
bodemag(P200,'b',P600,'r--',{10^-1,20});
legend('Estimated Model at C_A=1.5 [kgmol/m^3]', ...
       'Estimated Model at C_A=2.0 [kgmol/m^3]', ...
       'Location', 'Best');

Расчетная модель имеет более высокий прирост при более высоких уровнях концентрации. Это согласуется с предшествующими знаниями о нелинейной установке CSTR. Передаточная функция имеет$C_A(t)=2 [kgmol/m^3]$$6dB$ более высокий коэффициент усиления (удвоенную амплитуду) на низких частотах.

Резюме

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

bdclose('iddemo_cstr');