Этот пример показывает, как реализовать онлайновое полиномиальное образцовое средство оценки. Вы оцениваете две модели ARMAX для нелинейного процесса химической реакции. Эти модели получают поведение процесса в двух условиях работы. Поведение модели идентифицируется онлайн и используется, чтобы настроить усиления адаптивного контроллера PI во время работы системы.
Постоянно реактор смесителя (CSTR) является общей химической системой в перерабатывающей промышленности. Схематическая из системы CSTR:
Это - покрытое кожухом диабатическое (т.е. недиабатический) реактор корпуса, описанный экстенсивно в книге Бекетт "Динамика Процесса: Моделирование, Анализ и Симуляция", опубликованный Prentice Hall, 1998. Судно принято, чтобы быть отлично смешанным, и происходит одна экзотермическая и необратимая реакция первого порядка,-> B. Входной поток реагента A питается корпус на постоянном уровне. После побуждения потоков конечного продукта из судна на том же уровне как реагент A подан в корпус (объем в реакторном корпусе является постоянным). Детали операции CSTR и его нелинейной модели с 2 состояниями, используемой в этом примере, объяснены в примере Неадиабатический Непрерывный Реактор Смесителя: Моделирование файла MATLAB с Симуляциями в Simulink®.
Входные параметры модели CSTR:
и выходные параметры (y (t)), которые являются также состояниями модели (x (t)):
Цель управления состоит в том, чтобы поддержать концентрацию реагента A на желаемом уровне, который изменяется в зависимости от времени. Температурой конверта управляет контроллер PI в порядке отклонить воздействия, являющиеся результатом входной потоковой температуры канала. Вход контроллера PI является сигналом ошибки отслеживания. Входная потоковая концентрация канала, принят, чтобы быть постоянным. Модель Simulink iddemo_cstr
реализует объект CSTR как блок CSTR
.
open_system('iddemo_cstr');
Вход температуры канала состоит из белого шумового воздействия сверх постоянного смещения. Шумовая степень 0.0075 [K^2]. Этот уровень шума вызывает 2%-е отклонение от желаемого.
Сигнал в этом примере содержит ступенчатое изменение от 1,5 [kgmol/m^3] к 2 [kgmol/m^3] во время. В дополнение к этому ступенчатому изменению, также содержит белое шумовое возмущение для t в [0,200) и [400,600), области значений. Степень этого белого шумового сигнала 0.015. Шумовая степень настроена опытным путем, чтобы приблизительно дать отношение сигнал-шум 10. Наличие достаточного возбуждения в ссылочном сигнале в идентификации с обратной связью может привести к не наличию достаточной информации идентифицировать уникальную модель. Реализация находится в блоке iddemo_cstr/CA Reference
.
Известно из нелинейной модели, что CSTR вывод более чувствителен к входу управления в более высоких уровнях. Блок Recursive Polynomial Model Estimator используется, чтобы обнаружить это изменение в чувствительности. Эта информация используется, чтобы настроить усиления контроллера PI, как отличается. Цель состоит в том, чтобы не иметь высокий цикл управления усиления, который может привести к нестабильности.
Вы оцениваете дискретную передаточную функцию от к онлайн с блоком Recursive Polynomial Model Estimator. Алгоритм адаптивного управления использует усиление DC этой передаточной функции. Ошибка отслеживания, разделен на нормированное усиление DC предполагаемой передаточной функции. Эта нормализация сделана, чтобы иметь усиление 1 при ошибке отслеживания в начальной рабочей точке, для которой разработан контроллер PI. Например, сигнал ошибки разделен на 2, если усиление DC становится 2 раза своим исходным значением. Это соответствует делению контроллера PI усиления 2. Этот адаптивный контроллер реализован в iddemo_cstr/Adaptive PI Controller
.
Блок 'Recursive Polynomial Model Estimator' найден под библиотекой System Identification Toolbox/Estimators
в Simulink. Вы используете этот блок, чтобы оценить линейные модели со структурой ARMAX. Модели ARMAX имеют форму:
Inputs
и импорт Output
рекурсивного полиномиального образцового блока средства оценки соответствуют и соответственно. Для модели CSTR и отклонения от температуры конверта и обрезки концентрации рабочие точки:. Хорошо масштабировать и иметь пиковую амплитуду 1, чтобы улучшить числовое условие проблемы оценки. Рабочие точки для обрезки, и, не известны точно перед работой системы. Они оценены и извлечены от измеренных сигналов при помощи фильтра скользящего среднего значения первого порядка. Эти фильтры предварительной обработки реализованы в блоках iddemo_cstr/Preprocess CA
и iddemo_cstr/Preprocess Tj
.
open_system('iddemo_cstr/Preprocess Tj');
Дополнительный импорт Enable
блока Recursive Polynomial Model Estimator управляет оценкой параметра блок. Оценка параметра отключена, когда Разрешать сигнал является нулем. Оценка параметра включена для всех других значений сигнала Enable
. В этом примере оценка отключена для временных интервалов и. Во время этих интервалов измеренный вход не содержит достаточное возбуждение для системы идентификации с обратной связью.
Сконфигурируйте параметры блоков, чтобы оценить модель ARMAX второго порядка. Во вкладке Model Parameters задайте:
Образцовая Структура: ARMAX. Выберите ARMAX, поскольку текущие и прошлые значения воздействий, действующих на систему, как ожидают, повлияют на систему CSTR вывод.
Первоначальная оценка: 'none'. По умолчанию программное обеспечение использует значение 0 для всех предполагаемых параметров.
Количество параметров в (q) (na): 2
. Нелинейная модель имеет 2 состояния.
Количество параметров в B (q) (nb): 2
.
Количество параметров в C (q) (nc): 2
. Предполагаемая модель соответствует модели второго порядка начиная с максимума na, nb, и nc равняются 2.
Введите Задержку (nk): 1
. Как большинство физических систем, система CSTR не имеет прямого сквозного соединения. Кроме того, между его I/Os нет никаких задержек дополнительного времени.
Ковариационная матрица параметра: 1e4
. Задайте высокое значение ковариации, потому что значения исходного предположения очень сомнительны.
'SampleTime' : 0.1
. Модель CSTR, как известно, имеет пропускную способность приблизительно 0.25 Гц, выбранных таким образом, что 1/0.1 больше, чем 20 раз эта пропускная способность (5 Гц).
Нажмите Algorithm и Block Options, чтобы установить опции оценки:
Метод оценки: Forgetting Factor
Упущение Фактора: 1-5e-3
. Поскольку предполагаемые параметры, как ожидают, изменятся с рабочей точкой, установят фактор упущения на значение меньше чем 1. Выберите, который соответствует временной константе памяти секунд. 100 вторых раз памяти гарантируют, что данные о существенном количестве, используемые для идентификации, прибывают из 200-секундного идентификационного периода в каждой рабочей точке.
Выберите Выходное поле проверки на ошибки оценки. Вы используете этот блок вывод, чтобы подтвердить оценку.
Выберите Add, включают флажок порта. Вы только хотите адаптировать предполагаемые параметры модели, когда дополнительный шум введен в ссылочном порте. Оценка параметра n отключена через этот порт, когда дополнительный шум больше не вводится.
Внешний сброс: 'none'.
На каждом временном шаге рекурсивное полиномиальное образцовое средство оценки обеспечивает оценку для, и ошибка оценки. Выходной порт Error
полиномиального образцового блока средства оценки содержит и также известен как ошибку прогноза "один шаг вперед". Выходной порт Parameters
блока содержит (q), B (q), и C (q) полиномиальные коэффициенты в сигнале шины. Учитывая выбранные полиномиальные распоряжения (), элементы шины Parameters
содержат:
Предполагаемые параметры в (q), B (q), и C (q) полиномы изменяются во время симуляции можно следующим образом:
sim('iddemo_cstr'); close_system('iddemo_cstr/Preprocess Tj'); open_system('iddemo_cstr/ABC');
Оценки параметра быстро изменяются от их начальных значений 0 должных к высокому значению, выбранному для начальной ковариационной матрицы параметра. Параметры в и полиномы приближаются к своим значениям в быстро. Однако параметры на полиномиальном показе некоторые колебания. Одна причина позади этих колебаний состоит в том, что воздействие к CSTR вывод не полностью моделируется структурой ARMAX. Ошибочная модель не важна для проблемы управления, изученной здесь, поскольку к отношению получен передаточной функцией. Поэтому колебание не является беспокойством об этой проблеме идентификации и управления.
Оценки параметра считаются постоянные для того, поскольку блок средства оценки был отключен для этого интервала (0 сигналов к импорту Enable
). Оценка параметра включена в том, когда корпус CSTR начинает переключаться на свою новую рабочую точку. Параметры и сходятся к их новым значениям, и затем сохраненный постоянным путем установки порта Enable
на 0. Сходимость и медленнее в этой рабочей точке. Эта медленная сходимость из-за меньших собственных значений ковариационной матрицы параметра в t=400 по сравнению с начальной буквой 1e4 набор значений в t=0. Ковариация параметра, которая является мерой уверенности в оценках, обновляется с каждым временным шагом. Алгоритм быстро изменил оценки параметра, когда уверенность в оценках была низкой в t=0. Улучшенные оценки параметра получают поведение системы лучше, приводя к меньшим ошибкам прогноза "один шаг вперед" и меньшим собственным значениям в ковариационной матрице параметра (увеличенная уверенность). Поведение системы изменяется в t=400. Однако блок медленнее, чтобы изменить оценки параметра из-за увеличенной уверенности в оценках. Можно использовать Внешнюю опцию Сброса блока Recursive Polynomial Model Estimator, чтобы обеспечить новое значение для ковариации параметра в t=400. Чтобы видеть значение ковариации параметра, установите флажок ковариационной матрицы Выходного параметра в блоке Recursive Polynomial Model Estimator.
Error
вывод блока Recursive Polynomial Model Estimator
дает ошибку "один шаг вперед" для предполагаемой модели.
close_system('iddemo_cstr/ABC'); open_system('iddemo_cstr/1-Step Ahead Prediction Error');
Ошибка "один шаг вперед" выше, когда нет никаких дополнительных возмущений, введенных в канале для системы идентификации. Эти более высокие ошибки могут быть вызваны отсутствием достаточной информации во входном канале, на который полагается блок средства оценки. Однако даже эта более высокая ошибка является низкой и ограничена когда по сравнению с измеренными колебаниями. Это вселяет веру в предполагаемых значениях параметров.
Более строгая проверка предполагаемой модели должна моделировать предполагаемую модель и соответствовать фактическому образцовому выводу. Блок 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');
Ошибка симуляции снова ограничена и низко когда по сравнению с колебаниями. Это далее обеспечивает уверенность, что предполагаемые линейные модели могут предсказать нелинейное поведение модели CSTR.
Идентифицированные модели могут далее анализироваться в MATLAB. Образцовые оценки для рабочих точек и могут быть получены путем рассмотрения предполагаемого (q), B (q), и C (q) полиномы в и соответственно. Диаграммы Боде этих моделей:
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. Передаточная функция в имеет более высокое усиление (удвойте амплитуду) в низких частотах.
Вы оценили, что две модели ARMAX получили поведение нелинейного объекта CSTR в двух условиях работы. Оценка была сделана во время операции с обратной связью с адаптивным контроллером. Вы посмотрели на два сигнала подтвердить результаты оценки: Один шаг вперед ошибки прогноза и ошибки между объектом CSTR вывод и симуляцией модели оценки. Оба из этих ошибочных сигналов были ограничены и маленькие по сравнению с объектом CSTR вывод. Это обеспечило уверенность в предполагаемых параметрах модели ARMAX.
bdclose('iddemo_cstr');